diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 545ec24266db..cdd04e32c364 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -163,6 +163,22 @@ eg: `/datum/thing`, not `datum/thing` In DM, this is optional, but omitting it makes finding definitions harder. To be specific, you can declare the path `/arbitrary`, but it will still be, in actuality, `/datum/arbitrary`. Write your code to reflect this. +### Do not use list operators in strings + +The use of list operators to augment strings is not allowed. This is roughly 10 times slower than using a list with a Join() Function. + +```dm +//Bad +var/text = "text" +text += "More text" +to_chat(world, text) + +//Good +var/list/text = list("text") +text += "More text" +to_chat(world, text.Join("")) +``` + ### Do not use text/string based type paths It is rarely allowed to put type paths in a text format, as there are no compile errors if the type path no longer exists. Here is an example: diff --git a/.github/workflows/auto_translate.yml b/.github/workflows/auto_translate.yml index d247f222853d..1c892a2f4b02 100644 --- a/.github/workflows/auto_translate.yml +++ b/.github/workflows/auto_translate.yml @@ -53,6 +53,7 @@ jobs: - name: 'Push Translation' run: | + git fetch origin translate git checkout origin/translate git config --local user.email "action@github.com" git config --local user.name "ss220bot" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a8f6b2e869bc..5652bd39f35f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ on: jobs: run_linters: name: Run Linters - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Setup Cache @@ -22,7 +22,7 @@ jobs: run: | bash tools/ci/install_build_deps.sh bash tools/ci/install_dreamchecker.sh - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' @@ -47,7 +47,7 @@ jobs: odlint: name: Lint with OpenDream - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Setup OD @@ -59,7 +59,7 @@ jobs: compile_all_maps: name: Compile All Maps - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Setup Cache @@ -76,7 +76,7 @@ jobs: unit_tests_and_sql: name: Unit Tests + SQL Validation - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: fail-fast: false # Let all map tests run to completion matrix: @@ -106,12 +106,8 @@ jobs: run: | sudo dpkg --add-architecture i386 sudo apt update || true - sudo apt install libssl1.1:i386 - ldd librust_g.so - - name: Start Redis - uses: supercharge/redis-github-action@1.7.0 - with: - redis-version: 6 + sudo apt install zlib1g-dev:i386 + tools/ci/install_rustg.sh - name: Compile & Run Unit Tests run: | tools/ci/install_byond.sh '${{ matrix.byondtype }}' @@ -125,7 +121,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: '3.8.2' # Script was made for 3.8.2 architecture: 'x86' # This MUST be x86 diff --git a/.gitignore b/.gitignore index b033c5b5cab4..075188c1d7c6 100644 --- a/.gitignore +++ b/.gitignore @@ -58,5 +58,12 @@ __pycache__/ dmm-tools.exe OpenDream paradise.json + +# Misc windows shenanigans $RECYCLE.BIN + +# Linux libs +/*.so + +# SS220 EDIT sound/tts_cache/* diff --git a/.tgs.yml b/.tgs.yml index 9602553bd3e6..6970078ff70d 100644 --- a/.tgs.yml +++ b/.tgs.yml @@ -1,6 +1,9 @@ -# This file is stolen from tg +# This file is used by TGS (https://github.com/tgstation/tgstation-server) clients to quickly initialize a server instance for the codebase +# The format isn't documented anywhere but hopefully we never have to change it. If there are questions, contact the TGS maintainer Cyberboss/@Dominion#0444 version: 1 -byond: "515.1619" +# The BYOND version to use +# Must be interpreted as a string, keep quoted +byond: "515.1620" # Folders to create in "/Configuration/GameStaticFiles/" static_files: # Config directory should be static @@ -9,8 +12,7 @@ static_files: populate: true # Data directory must be static - name: data -# String dictionary. The value is the location of the file in the repo to upload to TGS. The key is the name of the file to upload to "/Configuration/EventScripts/" -# This one is for Linux hosted servers +# Scripts linux needs linux_scripts: PreCompile.sh: tools/tgs_scripts/PreCompile.sh WatchdogLaunch.sh: tools/tgs_scripts/WatchdogLaunch.sh diff --git a/README.md b/README.md index 196fb7376a2d..8e91c5e0afc9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -# Paradise +# Paradise WyccStation SS220 + [![CI](https://github.com/ParadiseSS13/Paradise/workflows/CI/badge.svg)](https://github.com/ParadiseSS13/Paradise/actions?query=workflow%3ACI) [![Render Nanomaps](https://github.com/ParadiseSS13/Paradise/workflows/Render%20Nanomaps/badge.svg)](https://github.com/ParadiseSS13/Paradise/actions?query=workflow%3A%22Render+Nanomaps%22) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/paradisess13/paradise.svg)](http://isitmaintained.com/project/paradisess13/paradise "Average time to resolve an issue") @@ -8,13 +9,13 @@ [![forthebadge](http://forthebadge.com/images/badges/contains-technical-debt.svg)](http://forthebadge.com) [![forthebadge](http://forthebadge.com/images/badges/fuck-it-ship-it.svg)](http://forthebadge.com) -# Useful Links +# Полезные ссылки -- [Discord](https://discordapp.com/invite/YJDsXFE) -- [Documentation](https://codedocs.paradisestation.org) -- [Website](https://www.paradisestation.org/) +- [Discord](https://discord.com/invite/ss220) +- [Wiki](https://wiki.ss220.club/) +- [Documentation](https://ss220club.github.io/Paradise-SS220/) -# Useful Documents +# Полезные материалы - [Autodocumentation Guide](.github/AUTODOC_GUIDE.md) - [Code of Conduct](./CODE_OF_CONDUCT.md) @@ -23,7 +24,6 @@ --- - ### LICENSE Paradise is licensed under the GNU Affero General Public License version 3. @@ -44,8 +44,8 @@ Any files located in the `Paradise/sound/goonstation` directories, or any subdirectories of mentioned directories are licensed under the Creative Commons 3.0 BY-NC-SA license -(https://creativecommons.org/licenses/by-nc-sa/3.0) +() All other assets including icons and sound files are licensed under the -Creative Commons 3.0 BY-SA license (https://creativecommons.org/licenses/by-sa/3.0/), +Creative Commons 3.0 BY-SA license (), unless otherwise indicated. diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index d00d5e14da36..6855c02dabe0 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -297,6 +297,7 @@ CREATE TABLE `player` ( `server_region` VARCHAR(32) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci', `muted_adminsounds_ckeys` MEDIUMTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci', `viewrange` VARCHAR(5) NOT NULL DEFAULT '19x15' COLLATE 'utf8mb4_general_ci', + `species_whitelist` LONGTEXT COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `ckey` (`ckey`), KEY `lastseen` (`lastseen`), diff --git a/SQL/updates220/53.220.5-53.220.6.sql b/SQL/updates220/53.220.5-53.220.6.sql new file mode 100644 index 000000000000..d39755af7e84 --- /dev/null +++ b/SQL/updates220/53.220.5-53.220.6.sql @@ -0,0 +1,4 @@ +# Updating DB from 53.220.5 to 53.220.6 +# Adds species whitelist ~legendaxe + +ALTER TABLE `player` ADD `species_whitelist` LONGTEXT COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '["human"]'; diff --git a/_build_dependencies.sh b/_build_dependencies.sh index 8cded2a078a7..d146ad1c518d 100644 --- a/_build_dependencies.sh +++ b/_build_dependencies.sh @@ -6,10 +6,12 @@ export NODE_VERSION=18 # Stable Byond Major export STABLE_BYOND_MAJOR=515 # Stable Byond Minor -export STABLE_BYOND_MINOR=1619 +export STABLE_BYOND_MINOR=1620 # Beta Byond Major export BETA_BYOND_MAJOR=515 # Beta Byond Minor -export BETA_BYOND_MINOR=1619 +export BETA_BYOND_MINOR=1620 # Python version for mapmerge and other tools export PYTHON_VERSION=3.11.6 +# RUSTG version +export RUSTG_VERSION=v3.0.0-P diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index aaf4019e4b77..30469b847cec 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -55190,13 +55190,12 @@ d2 = 8; icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /obj/machinery/door/airlock/engineering/glass{ heat_proof = 1; name = "Supermatter Chamber" }, /obj/effect/mapping_helpers/airlock/access/any/engineering/atmos, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/simulated/floor/engine, /area/station/engineering/engine/supermatter) "gvN" = ( @@ -74829,13 +74828,12 @@ /turf/simulated/floor/plating, /area/station/maintenance/xenobio_south) "peF" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /obj/machinery/door/airlock/engineering/glass{ heat_proof = 1; name = "Supermatter Chamber" }, /obj/effect/mapping_helpers/airlock/access/any/engineering/atmos, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/simulated/floor/engine, /area/station/engineering/engine/supermatter) "pfh" = ( diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk1.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk1.dmm index cb963246b394..a470f776aa87 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk1.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk1.dmm @@ -6,52 +6,62 @@ /turf/simulated/mineral/random/volcanic, /area/lavaland/surface/outdoors) "c" = ( +/obj/effect/mapping_helpers/no_lava, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "d" = ( /obj/structure/stone_tile/block{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "e" = ( /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "f" = ( /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "g" = ( /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "h" = ( /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "i" = ( /obj/structure/stone_tile{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "j" = ( /obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "k" = ( /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "l" = ( @@ -59,6 +69,7 @@ /obj/structure/stone_tile{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "m" = ( @@ -68,22 +79,26 @@ /obj/structure/stone_tile{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "n" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "o" = ( /obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "p" = ( /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "q" = ( @@ -99,6 +114,7 @@ /obj/structure/stone_tile/block{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "s" = ( @@ -129,6 +145,7 @@ dir = 4 }, /obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "w" = ( @@ -145,10 +162,16 @@ /obj/structure/stone_tile/block{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "y" = ( /obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"I" = ( +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) @@ -157,13 +180,15 @@ a a a b +a b +a b b b b a -a +b a a a @@ -171,10 +196,12 @@ a (2,1,1) = {" a a +a +b +b +b b b -c -c b b b @@ -185,75 +212,85 @@ a a "} (3,1,1) = {" +a b b b -c -d -c -c -b b +I +d +I +I +I +I +I b b b b -a "} (4,1,1) = {" b b -c -c +b +I +I +I k o +I +I c -c -c -c -b -b +I +I b b +a "} (5,1,1) = {" +a b -c +I +I d g -c +I p -c +I v -c -c -c -c +I +I +I +I b b "} (6,1,1) = {" b -c -c +b +I +I +I h l e s j -c +I d e -c -c +I +b b "} (7,1,1) = {" +a b -c -c -c -c +I +I +I +I +I q t w @@ -261,86 +298,96 @@ x y p e -c +b b "} (8,1,1) = {" b -c +b +I +I e i m j u e -c +I f d y -c +b b "} (9,1,1) = {" b -c +b +I +I f j -c +I r -c +I o -c -c -c -c +I +I +I +I b b "} (10,1,1) = {" +a b b -c -c -c +I +I +I +k o -c -c -b -b -c -b +I +I +I +I +I b b +a "} (11,1,1) = {" b b b -c -n -c -c b b +I +n +I +I +I +I +I b b b b -a "} (12,1,1) = {" a +a +a +b +b +b +b b b -c -c -c b b b b b -a a a "} @@ -348,15 +395,17 @@ a a a b +a +a +a b b b -b -a -a a +b a a +b a a "} diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk2.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk2.dmm index 3d224a617d6f..4007379ec985 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk2.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk2.dmm @@ -9,65 +9,69 @@ /obj/structure/stone_tile/surrounding_tile{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "d" = ( /obj/structure/stone_tile/block{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "e" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "f" = ( /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"g" = ( -/obj/structure/stone_tile{ - dir = 4 - }, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "h" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "i" = ( /obj/structure/stone_tile/surrounding_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "j" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "k" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "l" = ( /obj/structure/stone_tile/surrounding_tile, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "m" = ( /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "n" = ( /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "o" = ( @@ -78,6 +82,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "p" = ( @@ -85,6 +90,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "q" = ( @@ -94,6 +100,7 @@ /obj/structure/stone_tile{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "r" = ( @@ -101,6 +108,7 @@ dir = 8 }, /obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "s" = ( @@ -113,75 +121,101 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "t" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "v" = ( /obj/structure/stone_tile/block/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "w" = ( /obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "x" = ( /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "y" = ( /obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "z" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "A" = ( /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "B" = ( /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/guidance{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"G" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"Q" = ( +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) (1,1,1) = {" a +b a b b b b a +a +b +b b b a -a -a -a +b a a "} (2,1,1) = {" -a b b b b b +f +b +b +b +b b b b @@ -189,153 +223,207 @@ b b a a +"} +(3,1,1) = {" a +b +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +b +f +b +b a "} -(3,1,1) = {" +(4,1,1) = {" b b +Q c h k -f -f -f +Q +Q +Q k -f +Q +Q +Q +Q +b b b -a -a -a "} -(4,1,1) = {" +(5,1,1) = {" b b +Q d c l -f -f -f +Q +Q +Q v -f -b +Q +Q +Q +Q +Q b -b -a a "} -(5,1,1) = {" -b +(6,1,1) = {" +a b +Q e i m k -f +Q t w -f -f -b +Q +Q +Q +Q +Q b b -a "} -(6,1,1) = {" +(7,1,1) = {" a b -f -f -f +b +Q +Q +G o r q w -f -f -f -f +Q +Q +Q +Q +Q b b "} -(7,1,1) = {" +(8,1,1) = {" b b b -f -f +Q +Q +Q p B s -f -f +Q +Q q n A -f +Q b -"} -(8,1,1) = {" b +"} +(9,1,1) = {" +a b -g -f +Q +Q +Q c q s q k x -f +Q z d -f +Q +b b "} -(9,1,1) = {" -a +(10,1,1) = {" b -f +b +Q +G j n j -f +Q e n y -f +Q n y +Q +b +a +"} +(11,1,1) = {" b b +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +b +b +a "} -(10,1,1) = {" +(12,1,1) = {" a b -b -f -f -f -f -f +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q f b b -f -f b b "} -(11,1,1) = {" -a -a +(13,1,1) = {" b b b b b +f +f +b +b b b b @@ -345,8 +433,7 @@ b b a "} -(12,1,1) = {" -a +(14,1,1) = {" a a b @@ -355,10 +442,13 @@ b b b b -a +b a b b a a +b +a +a "} diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk3.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk3.dmm index 0f6c96fb0413..808acab4c180 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk3.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk3.dmm @@ -15,6 +15,7 @@ /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "e" = ( @@ -24,6 +25,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "f" = ( @@ -33,18 +35,21 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "g" = ( /obj/structure/stone_tile{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "h" = ( /obj/structure/stone_tile{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "i" = ( @@ -55,6 +60,7 @@ dir = 1 }, /obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "k" = ( @@ -65,6 +71,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "l" = ( @@ -75,6 +82,7 @@ /obj/structure/stone_tile{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "m" = ( @@ -85,6 +93,7 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "n" = ( @@ -95,12 +104,14 @@ dir = 8 }, /obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "o" = ( /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "p" = ( @@ -111,6 +122,7 @@ dir = 8 }, /obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "q" = ( @@ -121,6 +133,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "r" = ( @@ -131,20 +144,24 @@ dir = 8 }, /obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "s" = ( /obj/structure/stone_tile/surrounding_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "t" = ( /obj/structure/stone_tile/block/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "u" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "v" = ( @@ -152,6 +169,7 @@ dir = 6 }, /obj/structure/stone_tile/center, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "w" = ( @@ -162,18 +180,52 @@ dir = 4 }, /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"E" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"U" = ( +/turf/simulated/mineral/random/volcanic, +/area/template_noop) (1,1,1) = {" a a a a +b +a +a +a +b +a +b +a +b +b +a +a a a a a +"} +(2,1,1) = {" +a +b +b +b +b +b +a +b +b +b +b +b b b b @@ -183,80 +235,166 @@ a a a "} -(2,1,1) = {" +(3,1,1) = {" +a a b b b +b +b +a +b +b +E +E +E +b +b +b +b +b +a +a +"} +(4,1,1) = {" a a b +E +E +E b b -c -c b +E +E +c b +E +E +E +E b a a "} -(3,1,1) = {" +(5,1,1) = {" +a b b b b +E +E +b +E +E +c +E +E +E b b b b +b +a +"} +(6,1,1) = {" +b +b +E +E +b c -g -n +E +E +E c +E +E +c +b +b +b c b b a "} -(4,1,1) = {" +(7,1,1) = {" +a +b b +E +E +E c +E +E +E +E c +E +g +n +E +E +b +b +b +"} +(8,1,1) = {" +b b b b c -c +E +E +E +E +E +E +E g l h q -c -c +E +E b b "} -(5,1,1) = {" +(9,1,1) = {" b -c -c -c -c -c -c +b +b +E +E +E +E +E +E +E +E g i -c -c +E +E h s -c -c +E b +a "} -(6,1,1) = {" +(10,1,1) = {" +b b +c +c +E d e e @@ -270,67 +408,145 @@ w f t v -c +b b "} -(7,1,1) = {" +(11,1,1) = {" b -c -c -c -c -c -c +b +b +E +E +E +E +E +E +E +E h k -c -c +E +E o u -c +E b b "} -(8,1,1) = {" +(12,1,1) = {" +a b b b c -c -c -c -c +E +E +E +E +E +E +E h m o r -c -b -b +E +E b +a "} -(9,1,1) = {" +(13,1,1) = {" a b +c +E +E +E +c +E +E +E +E +c +E +h +p +E +E +c +b +b +"} +(14,1,1) = {" b b +E +E b c +E +E +E c +E +E c +b +b c -h -p +b +b +b +b +"} +(15,1,1) = {" +a +b +b +b +b +E +E c +E +E c +E +E +E +b +b +b b b a "} -(10,1,1) = {" +(16,1,1) = {" a +b +b +E +E +E +b +b +c +E +E +b +b +E +E +E +E +b a a +"} +(17,1,1) = {" +b +b +b b b b @@ -338,18 +554,23 @@ b b c c -c -c +E +E +E +b +b +b b b a a "} -(11,1,1) = {" -a -a +(18,1,1) = {" a +b a +b +b a b b @@ -361,5 +582,30 @@ b b b a +b +a +a +a +"} +(19,1,1) = {" +a +a +a +b +a +a +a +b +a +U +b +b +a +a +a +a +a +a +a a "} diff --git a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm index 7443d3fa731e..9346dea8c35e 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm @@ -7,7 +7,7 @@ dir = 1 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ac" = ( /obj/structure/sign/directions/medical{ pixel_x = -32; @@ -18,10 +18,10 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ad" = ( /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ae" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 4 @@ -32,14 +32,14 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "af" = ( /obj/effect/spawner/random_spawners/wall_rusted_always, /turf/simulated/wall/r_wall, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ag" = ( /turf/simulated/wall/r_wall, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ah" = ( /obj/structure/cable{ d1 = 1; @@ -50,24 +50,24 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ai" = ( /obj/structure/railing/corner, /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aj" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/alien, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ak" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "al" = ( /obj/structure/railing/cap{ dir = 10 @@ -75,7 +75,7 @@ /turf/simulated/floor/plasteel{ icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "am" = ( /obj/structure/window/reinforced, /obj/structure/chair{ @@ -86,14 +86,14 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ao" = ( /obj/structure/closet/crate, /obj/item/flashlight/flare, /obj/item/flashlight/flare, /obj/item/flashlight/flare, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ap" = ( /obj/machinery/shower{ dir = 8 @@ -101,7 +101,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/noslip, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery/partial{ @@ -111,7 +111,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "as" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal, @@ -119,7 +119,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "at" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks{ @@ -131,7 +131,7 @@ pixel_y = 8 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "au" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 @@ -141,12 +141,12 @@ }, /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "av" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid2" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -161,7 +161,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ax" = ( /obj/machinery/computer/arcade/recruiter{ dir = 1 @@ -170,7 +170,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ay" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 @@ -181,10 +181,10 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid10" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aA" = ( /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aB" = ( /obj/structure/railing, /obj/item/storage/toolbox/mechanical{ @@ -195,7 +195,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aC" = ( /obj/structure/table/glass, /obj/machinery/atmospherics/pipe/simple/hidden{ @@ -204,7 +204,7 @@ /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aD" = ( /obj/structure/toilet{ pixel_y = 8 @@ -214,14 +214,14 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aE" = ( /obj/structure/railing{ dir = 1 }, /obj/structure/chair/sofa/bench/right, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aF" = ( /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -232,7 +232,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aG" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal{ @@ -250,14 +250,14 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aH" = ( /obj/structure/railing/cap{ dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aI" = ( /obj/structure/railing{ dir = 4 @@ -272,7 +272,7 @@ pixel_x = -2 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aJ" = ( /obj/structure/railing, /obj/effect/turf_decal/stripes/asteroid/line, @@ -282,34 +282,34 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid12" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aK" = ( /obj/structure/window/reinforced{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aL" = ( /turf/simulated/wall, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aM" = ( /obj/effect/spawner/random_spawners/wall_rusted_always, /turf/simulated/wall, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aN" = ( /obj/machinery/door/airlock/medical/glass{ req_access_txt = "271"; name = "Storage Room" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aO" = ( /obj/structure/table/glass/reinforced/titanium, /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aP" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 @@ -318,7 +318,7 @@ dir = 1 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aQ" = ( /obj/structure/disposaloutlet{ dir = 8 @@ -332,7 +332,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aR" = ( /obj/structure/railing/cap{ dir = 1 @@ -345,7 +345,7 @@ icon_state = "whitehall"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aS" = ( /obj/structure/railing, /obj/effect/turf_decal/stripes/asteroid/line, @@ -355,7 +355,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid8" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aU" = ( /turf/simulated/floor/mineral/titanium, /area/ruin/space/powered) @@ -363,7 +363,7 @@ /obj/effect/decal/remains/human, /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aW" = ( /obj/structure/window/reinforced{ dir = 1 @@ -376,7 +376,7 @@ dir = 9; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aX" = ( /obj/structure/railing{ dir = 8 @@ -387,7 +387,7 @@ icon_state = "black"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aY" = ( /obj/structure/chair/office/light{ dir = 1 @@ -395,7 +395,7 @@ /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "aZ" = ( /obj/machinery/door/poddoor/impassable{ id_tag = "awaymlock" @@ -405,7 +405,7 @@ name = "Medical Ward" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ba" = ( /obj/machinery/door/airlock/multi_tile/glass{ req_access_txt = "271" @@ -413,14 +413,14 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bb" = ( /obj/machinery/door/airlock/multi_tile/glass, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bd" = ( /obj/structure/sign/nosmoking_1{ pixel_x = 32 @@ -430,7 +430,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "be" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -439,7 +439,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bf" = ( /obj/structure/window/reinforced{ dir = 4 @@ -449,7 +449,7 @@ dir = 5; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bh" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, @@ -457,39 +457,39 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bi" = ( /obj/structure/railing{ dir = 1 }, /obj/structure/chair/sofa/bench/left, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bj" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/structure/barricade/wooden/crude{ layer = 4 }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bk" = ( /obj/machinery/economy/vending/snack, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bl" = ( /obj/structure/chair/office{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bm" = ( /obj/structure/closet, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bp" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -503,7 +503,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bq" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/security_space_law, @@ -512,14 +512,14 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bs" = ( /obj/structure/table/glass, /turf/simulated/floor/plasteel{ icon_state = "whitehall"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bt" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -531,7 +531,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bu" = ( /obj/structure/railing{ dir = 4 @@ -539,11 +539,11 @@ /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bv" = ( /obj/structure/ore_box, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bw" = ( /obj/structure/window/reinforced{ dir = 1 @@ -552,7 +552,7 @@ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bx" = ( /obj/machinery/door/airlock/external/glass, /turf/simulated/floor/mineral/titanium, @@ -560,7 +560,7 @@ "bz" = ( /obj/structure/girder, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bB" = ( /obj/machinery/light/small{ dir = 4 @@ -573,7 +573,7 @@ dir = 4; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bC" = ( /obj/machinery/atmospherics/unary/cryo_cell, /obj/structure/window/reinforced{ @@ -584,7 +584,7 @@ }, /obj/effect/turf_decal/delivery/white/hollow, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bD" = ( /obj/structure/railing{ dir = 1 @@ -594,7 +594,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bE" = ( /obj/effect/turf_decal/stripes/corner, /obj/structure/sign/vacuum{ @@ -609,7 +609,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bF" = ( /obj/structure/railing, /obj/effect/turf_decal/stripes/asteroid/end{ @@ -620,7 +620,7 @@ }, /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, @@ -630,7 +630,7 @@ dir = 9; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bH" = ( /obj/structure/sign/restroom{ pixel_y = -32 @@ -638,7 +638,7 @@ /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bJ" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal{ @@ -648,14 +648,14 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bK" = ( /obj/effect/turf_decal/delivery, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bN" = ( /obj/structure/window/reinforced{ dir = 1 @@ -668,15 +668,15 @@ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bO" = ( /obj/item/cigbutt, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bP" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bS" = ( /obj/effect/turf_decal/loading_area/white{ dir = 1 @@ -685,7 +685,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bU" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, @@ -693,7 +693,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -702,11 +702,11 @@ color = "red" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bY" = ( /obj/structure/railing, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "bZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 @@ -715,7 +715,7 @@ dir = 5 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ca" = ( /obj/structure/railing/cap{ dir = 8 @@ -723,30 +723,30 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cb" = ( /obj/structure/railing/corner, /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cc" = ( /obj/structure/flora/tree/jungle/small, /obj/structure/flora/rock/pile/largejungle, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ce" = ( /obj/structure/window/reinforced, /obj/machinery/light/small, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cf" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -761,13 +761,13 @@ icon_state = "whitehall"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ch" = ( /obj/structure/chair/office{ dir = 8 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ci" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/cable{ @@ -778,22 +778,22 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cj" = ( /obj/structure/chair/office/dark{ dir = 1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cm" = ( /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cn" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 8 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "co" = ( /obj/structure/railing/cap{ dir = 1 @@ -805,11 +805,11 @@ icon_state = "yellowsiding"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cp" = ( /obj/effect/landmark/damageturf, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cq" = ( /obj/structure/railing/corner{ dir = 4 @@ -817,17 +817,17 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cr" = ( /obj/effect/landmark/damageturf, /turf/simulated/floor/plating/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cs" = ( /obj/structure/flora/ausbushes/sunnybush, /obj/structure/flora/ausbushes/ppflowers, /obj/structure/window/full/basic, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ct" = ( /obj/structure/railing, /obj/machinery/optable, @@ -836,7 +836,7 @@ icon_state = "darkblue"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cv" = ( /obj/structure/table/glass/reinforced/titanium, /obj/machinery/door_control{ @@ -852,7 +852,7 @@ id = "awaycargogate" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cw" = ( /obj/machinery/sleeper, /obj/effect/turf_decal/delivery/white/hollow, @@ -860,7 +860,7 @@ /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cx" = ( /obj/machinery/door/airlock/security/glass{ req_access_txt = "271" @@ -872,14 +872,14 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cy" = ( /obj/structure/closet, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cA" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -888,7 +888,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cB" = ( /obj/structure/railing{ dir = 4 @@ -898,7 +898,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -906,7 +906,7 @@ /turf/simulated/floor/plasteel{ icon_state = "blackcorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cD" = ( /obj/structure/railing/cap{ dir = 5 @@ -919,7 +919,7 @@ }, /obj/effect/landmark/damageturf, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cF" = ( /obj/structure/barricade/wooden/crude{ layer = 4 @@ -929,7 +929,7 @@ req_access_txt = "271" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cI" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 32 @@ -940,7 +940,7 @@ dir = 5; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cJ" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, @@ -948,7 +948,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cK" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -957,13 +957,13 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cL" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cM" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -972,7 +972,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cN" = ( /obj/machinery/bodyscanner{ dir = 4 @@ -984,7 +984,7 @@ /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cR" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -997,7 +997,7 @@ dir = 5 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cS" = ( /obj/effect/decal/cleanable/cobweb2, /obj/structure/largecrate, @@ -1008,7 +1008,7 @@ dir = 1; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "cY" = ( /obj/structure/railing{ dir = 8 @@ -1021,7 +1021,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "da" = ( /obj/structure/chair{ dir = 8 @@ -1030,18 +1030,18 @@ icon_state = "black"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "db" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dc" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dd" = ( /obj/structure/table/glass, /obj/machinery/light/small{ @@ -1055,7 +1055,7 @@ /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "df" = ( /obj/structure/railing{ dir = 1 @@ -1063,7 +1063,7 @@ /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dg" = ( /obj/structure/shuttle/engine/propulsion/burst{ dir = 4 @@ -1080,7 +1080,7 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dj" = ( /obj/structure/closet/crate, /turf/simulated/floor/mineral/titanium, @@ -1088,26 +1088,26 @@ "dk" = ( /obj/structure/window/reinforced, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dm" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/structure/flora/ausbushes/fullgrass, /obj/structure/railing/corner, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "do" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid12" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dp" = ( /obj/structure/window/reinforced{ dir = 8 @@ -1120,7 +1120,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ds" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -1132,7 +1132,7 @@ icon_state = "cautioncorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dt" = ( /obj/effect/turf_decal/stripes/asteroid/corner{ dir = 8 @@ -1165,30 +1165,30 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dw" = ( /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dx" = ( /obj/machinery/suit_storage_unit/standard_unit, /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dz" = ( /obj/structure/flora/ausbushes/fernybush, /obj/structure/flora/ausbushes/brflowers, /obj/structure/window/full/basic, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dA" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid1" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dB" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -1200,20 +1200,20 @@ dir = 9; icon_state = "whitecorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dD" = ( /obj/structure/closet/walllocker/emerglocker{ pixel_y = 32 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dE" = ( /obj/effect/turf_decal/loading_area/white, /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dG" = ( /obj/machinery/door/poddoor/impassable{ id_tag = "awaycontlockdown" @@ -1223,7 +1223,7 @@ name = "Specimen Containtment Zone" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dH" = ( /obj/structure/window/reinforced{ dir = 8 @@ -1235,7 +1235,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, @@ -1245,18 +1245,18 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dL" = ( /turf/simulated/floor/plasteel{ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dM" = ( /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dN" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 @@ -1266,7 +1266,7 @@ }, /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dO" = ( /obj/structure/table/glass/reinforced/plastitanium, /obj/item/clipboard, @@ -1278,7 +1278,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dQ" = ( /obj/structure/table/glass, /obj/structure/railing{ @@ -1291,7 +1291,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter{ @@ -1302,20 +1302,20 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dS" = ( /obj/effect/decal/cleanable/generic, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dT" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dU" = ( /obj/machinery/computer/arcade/orion_trail{ dir = 1 @@ -1324,18 +1324,18 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dV" = ( /obj/structure/reagent_dispensers/fueltank, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dW" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dX" = ( /obj/structure/sign/security{ pixel_y = 32 @@ -1344,13 +1344,13 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "dY" = ( /turf/simulated/floor/plasteel{ dir = 9; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eb" = ( /obj/structure/closet/crate/can, /obj/effect/spawner/lootdrop/maintenance, @@ -1358,7 +1358,7 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ed" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -1373,14 +1373,14 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ee" = ( /obj/structure/table/glass/reinforced/titanium, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eg" = ( /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eh" = ( /obj/effect/turf_decal/caution{ dir = 4 @@ -1393,7 +1393,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ek" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/effect/decal/cleanable/dirt, @@ -1401,19 +1401,19 @@ dir = 8 }, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "el" = ( /obj/machinery/door/airlock, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "em" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "blackcorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eo" = ( /obj/machinery/door/poddoor/impassable{ id_tag = "awaymlock" @@ -1423,7 +1423,7 @@ name = "Medical Ward" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ep" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -1431,14 +1431,14 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eq" = ( /obj/effect/turf_decal/loading_area/white{ dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "er" = ( /obj/structure/window/reinforced{ dir = 8 @@ -1451,11 +1451,11 @@ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "es" = ( /obj/structure/flora/ausbushes/fernybush, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ev" = ( /obj/structure/chair{ dir = 8 @@ -1464,7 +1464,7 @@ icon_state = "whitehall"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ew" = ( /obj/machinery/computer/security{ desc = "Used to access the various cameras on the outpost."; @@ -1475,7 +1475,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ey" = ( /obj/item/kirbyplants, /obj/machinery/light/small{ @@ -1485,7 +1485,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ez" = ( /obj/structure/chair{ dir = 8 @@ -1500,16 +1500,16 @@ pixel_x = 32 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eA" = ( /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eC" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eE" = ( /obj/machinery/light/small{ dir = 8 @@ -1527,11 +1527,11 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eJ" = ( /obj/structure/flora/junglebush/large, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eK" = ( /obj/item/kirbyplants, /obj/effect/decal/cleanable/dirt, @@ -1544,7 +1544,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eL" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -32 @@ -1557,13 +1557,13 @@ dir = 8; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eM" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eO" = ( /obj/structure/mirror{ pixel_x = -28 @@ -1577,7 +1577,7 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eR" = ( /obj/structure/railing{ dir = 8 @@ -1586,13 +1586,13 @@ dir = 8; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eU" = ( /turf/simulated/floor/plasteel{ dir = 4; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eW" = ( /obj/structure/railing/corner{ dir = 1 @@ -1600,7 +1600,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eX" = ( /obj/structure/barricade/wooden/crude{ layer = 4 @@ -1609,7 +1609,7 @@ req_access_txt = "271" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "eZ" = ( /obj/structure/window/reinforced{ dir = 1 @@ -1621,7 +1621,7 @@ /obj/effect/turf_decal/box, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fc" = ( /obj/structure/railing{ dir = 4 @@ -1643,7 +1643,7 @@ icon_state = "yellowcornersiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fd" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 8 @@ -1651,14 +1651,14 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid6" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fe" = ( /obj/structure/railing{ dir = 8 }, /obj/structure/closet/crate, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ff" = ( /obj/structure/chair/stool{ dir = 4 @@ -1679,7 +1679,7 @@ icon_state = "1-8" }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fi" = ( /obj/structure/chair/wheelchair, /obj/effect/turf_decal/delivery/white, @@ -1687,11 +1687,11 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fl" = ( /obj/structure/closet/crate, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fm" = ( /obj/effect/decal/cleanable/cobweb, /obj/item/clothing/suit/storage/labcoat, @@ -1705,43 +1705,43 @@ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fn" = ( /obj/machinery/door/airlock/centcom{ req_access_txt = "271" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fp" = ( /obj/structure/window/reinforced{ dir = 8 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fq" = ( /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fr" = ( /obj/structure/window/reinforced{ dir = 4 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fs" = ( /obj/structure/chair/sofa/bench, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fv" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fw" = ( /obj/structure/flora/ash/rock/style_random, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fx" = ( /obj/structure/filingcabinet/chestdrawer, /obj/effect/turf_decal/stripes/corner{ @@ -1754,18 +1754,18 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fy" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fA" = ( /obj/structure/mopbucket, /obj/item/mop, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fB" = ( /obj/structure/railing{ dir = 1 @@ -1777,32 +1777,32 @@ dir = 4 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fC" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fD" = ( /obj/structure/chair, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fF" = ( /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fG" = ( /obj/structure/fans/tiny, /obj/machinery/door/poddoor{ id_tag = "awaycargogate1" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fI" = ( /obj/machinery/atmospherics/pipe/simple/visible, /obj/machinery/atmospherics/meter, @@ -1810,7 +1810,7 @@ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fJ" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal{ @@ -1830,26 +1830,26 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fK" = ( /turf/simulated/floor/plasteel{ dir = 5; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fM" = ( /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fP" = ( /obj/structure/railing{ dir = 4 }, /obj/structure/closet/l3closet/general, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -1859,7 +1859,7 @@ name = "Cafeteria" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fR" = ( /obj/machinery/light/small{ dir = 4 @@ -1869,24 +1869,24 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fV" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fX" = ( /obj/structure/grille/broken, /obj/effect/decal/cleanable/glass, /obj/effect/landmark/damageturf, /turf/simulated/floor/plating/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "fY" = ( /obj/item/stack/sheet/mineral/titanium, /obj/effect/decal/cleanable/glass, /obj/effect/decal/cleanable/molten_object/large, /obj/effect/landmark/damageturf, /turf/simulated/floor/plating/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gb" = ( /obj/machinery/light/small{ dir = 4 @@ -1897,7 +1897,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gc" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -1909,7 +1909,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gd" = ( /obj/structure/sign/directions/science{ dir = 1; @@ -1918,34 +1918,34 @@ /obj/structure/chair, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ge" = ( /obj/structure/flora/ausbushes/fullgrass, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gf" = ( /obj/structure/railing{ dir = 4 }, /obj/structure/filingcabinet/chestdrawer, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gg" = ( /obj/structure/flora/ausbushes/grassybush, /obj/machinery/light/small, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gh" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/alien, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gi" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid4" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gj" = ( /obj/structure/railing, /obj/structure/railing/cap{ @@ -1954,14 +1954,14 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gk" = ( /obj/machinery/atmospherics/unary/portables_connector{ dir = 1 }, /obj/machinery/atmospherics/portable/canister/oxygen, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gl" = ( /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -1972,7 +1972,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gm" = ( /obj/effect/turf_decal/delivery/partial{ dir = 1 @@ -1985,7 +1985,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gn" = ( /obj/machinery/economy/vending/coffee, /obj/effect/decal/cleanable/cobweb, @@ -1993,7 +1993,7 @@ dir = 9; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "go" = ( /obj/structure/railing, /obj/structure/largecrate, @@ -2001,7 +2001,7 @@ icon_state = "caution"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gq" = ( /obj/structure/railing/corner{ dir = 1 @@ -2017,7 +2017,7 @@ pixel_x = 2 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gr" = ( /obj/effect/turf_decal/delivery/red/partial{ dir = 1 @@ -2026,22 +2026,22 @@ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gs" = ( /obj/machinery/economy/vending/snack, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gt" = ( /obj/machinery/economy/vending/cola, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gv" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter{ @@ -2051,7 +2051,7 @@ icon_state = "yellowcornersiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gx" = ( /obj/structure/closet/secure_closet/freezer/kitchen, /obj/effect/decal/cleanable/dirt, @@ -2059,7 +2059,7 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gy" = ( /obj/item/reagent_containers/food/snacks/xenomeatbreadslice{ pixel_y = 5 @@ -2073,7 +2073,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gz" = ( /obj/machinery/light{ active_power_consumption = 0; @@ -2084,21 +2084,21 @@ color = "red" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gA" = ( /obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes, /obj/structure/flora/ausbushes/ywflowers, /obj/structure/window/full/basic, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gB" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "cautioncorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gC" = ( /obj/effect/decal/cleanable/greenglow, /obj/effect/landmark/damageturf, @@ -2108,11 +2108,11 @@ stat = 2 }, /turf/simulated/floor/plating/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gD" = ( /obj/structure/girder, /turf/simulated/floor/plating/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gE" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 @@ -2123,19 +2123,19 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid5" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gH" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gJ" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/structure/railing, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gL" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -2147,7 +2147,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gM" = ( /obj/machinery/shower{ dir = 4 @@ -2156,12 +2156,12 @@ dir = 8 }, /turf/simulated/floor/noslip, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gN" = ( /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gO" = ( /obj/structure/chair/comfy/shuttle{ dir = 8 @@ -2175,28 +2175,28 @@ dir = 9; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gS" = ( /obj/structure/chair{ dir = 8 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gT" = ( /obj/structure/flora/rock/pile, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gU" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gW" = ( /obj/effect/landmark/damageturf, /obj/machinery/door/airlock/titanium{ @@ -2204,7 +2204,7 @@ name = "Escape Pod Hatch" }, /turf/simulated/floor/mineral/titanium/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gX" = ( /obj/structure/rack, /obj/effect/decal/cleanable/cobweb2, @@ -2213,7 +2213,7 @@ dir = 5; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "gZ" = ( /obj/structure/railing{ dir = 1 @@ -2227,7 +2227,7 @@ pixel_y = 8 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hc" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/alien, @@ -2235,7 +2235,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "he" = ( /obj/effect/turf_decal/stripes/asteroid/corner{ dir = 8 @@ -2246,23 +2246,23 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hf" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hg" = ( /turf/simulated/floor/plasteel{ icon_state = "yellowsiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hh" = ( /turf/simulated/floor/plasteel{ icon_state = "whitehall"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hi" = ( /obj/structure/falsewall/rock_ancient, /obj/effect/decal/cleanable/blood/tracks{ @@ -2274,7 +2274,7 @@ pixel_y = 9 }, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hj" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -2286,7 +2286,7 @@ icon_state = "caution"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hk" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -2302,7 +2302,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hl" = ( /obj/structure/window/reinforced{ dir = 1 @@ -2314,12 +2314,12 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hm" = ( /obj/structure/closet/cabinet, /obj/item/clothing/under/suit/navy, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hn" = ( /obj/structure/railing/corner{ dir = 8 @@ -2328,14 +2328,14 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ho" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "darkbluefull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/xeno{ @@ -2345,7 +2345,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hq" = ( /obj/item/storage/toolbox/mechanical{ pixel_x = 2; @@ -2356,7 +2356,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hr" = ( /obj/structure/window/reinforced{ dir = 8 @@ -2366,14 +2366,14 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hs" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hu" = ( /turf/simulated/wall/mineral/titanium, /area/ruin/space/powered) @@ -2387,7 +2387,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hw" = ( /obj/structure/cable{ d1 = 4; @@ -2402,7 +2402,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hx" = ( /obj/machinery/light/small{ dir = 8 @@ -2418,7 +2418,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hy" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -2431,11 +2431,11 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hz" = ( /obj/structure/flora/junglebush, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hA" = ( /obj/structure/chair/sofa/bench{ dir = 4 @@ -2444,7 +2444,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hC" = ( /obj/structure/chair/office/dark{ dir = 8 @@ -2453,7 +2453,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hD" = ( /obj/structure/chair/office/dark{ dir = 1 @@ -2463,10 +2463,10 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hE" = ( /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hF" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -2477,33 +2477,33 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hG" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid10" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hH" = ( /obj/effect/decal/remains/xeno, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid8" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hI" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid5" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hK" = ( /obj/machinery/door/airlock/external/glass, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hL" = ( /turf/simulated/floor/plasteel{ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hN" = ( /obj/structure/railing, /obj/structure/railing{ @@ -2512,7 +2512,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hO" = ( /obj/effect/spawner/window/shuttle, /turf/simulated/floor/plating, @@ -2522,7 +2522,7 @@ color = "red" }, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hQ" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 5 @@ -2533,7 +2533,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hR" = ( /obj/structure/window/reinforced{ dir = 1 @@ -2542,21 +2542,21 @@ dir = 4 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hS" = ( /obj/structure/railing{ dir = 1 }, /obj/structure/closet, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hT" = ( /obj/structure/window/reinforced{ dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hU" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal{ @@ -2571,7 +2571,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hV" = ( /obj/structure/railing, /obj/structure/closet/secure_closet, @@ -2587,12 +2587,12 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hW" = ( /obj/structure/bed, /obj/item/bedsheet, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hX" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal{ @@ -2603,30 +2603,30 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hY" = ( /obj/effect/decal/cleanable/blood/oil{ color = "black" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "hZ" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid8" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ia" = ( /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ib" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ic" = ( /obj/structure/railing{ dir = 4 @@ -2639,11 +2639,11 @@ dir = 1 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "id" = ( /obj/structure/largecrate, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ie" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -2651,7 +2651,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "if" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -2659,14 +2659,14 @@ /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ig" = ( /obj/machinery/door/poddoor/impassable{ id_tag = "awaymlock" }, /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ii" = ( /obj/machinery/light/small{ dir = 1 @@ -2679,14 +2679,14 @@ dir = 1; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ij" = ( /obj/structure/fans/tiny, /obj/machinery/door/poddoor/multi_tile/impassable/four_tile_ver{ id_tag = "awaycargogate" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "il" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -2696,7 +2696,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "im" = ( /obj/effect/turf_decal/stripes/asteroid/corner{ dir = 4 @@ -2707,14 +2707,14 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "in" = ( /obj/structure/largecrate, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "io" = ( /obj/item/kirbyplants, /obj/structure/sign/directions/engineering{ @@ -2728,7 +2728,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iq" = ( /obj/structure/railing{ dir = 1 @@ -2738,7 +2738,7 @@ }, /obj/effect/turf_decal/stripes/asteroid/line, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ir" = ( /obj/structure/railing{ dir = 1 @@ -2750,7 +2750,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid8" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "is" = ( /obj/structure/railing/cap{ dir = 5 @@ -2759,7 +2759,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "it" = ( /obj/structure/railing/cap{ dir = 1 @@ -2768,20 +2768,20 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iu" = ( /obj/structure/railing{ dir = 1 }, /obj/structure/table, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iv" = ( /turf/simulated/floor/plasteel{ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -2794,13 +2794,13 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ix" = ( /turf/simulated/floor/plasteel{ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iy" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks{ @@ -2812,13 +2812,13 @@ pixel_y = -1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iz" = ( /obj/structure/flora/ausbushes/stalkybush, /obj/structure/flora/ausbushes/ppflowers, /obj/structure/window/full/basic, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iA" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -2828,7 +2828,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -2836,7 +2836,7 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -2844,7 +2844,7 @@ dir = 8; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -2858,14 +2858,14 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iE" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" }, /obj/effect/decal/remains/human, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iF" = ( /obj/machinery/door/window/reinforced/normal{ dir = 8 @@ -2873,13 +2873,13 @@ /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iG" = ( /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iI" = ( /obj/machinery/door/window/reinforced/normal{ dir = 4 @@ -2887,21 +2887,21 @@ /turf/simulated/floor/plasteel/stairs{ dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iJ" = ( /obj/machinery/light/small, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iL" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid6" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iM" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid12" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iN" = ( /obj/effect/turf_decal/caution{ dir = 4 @@ -2913,21 +2913,21 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iO" = ( /obj/effect/turf_decal/delivery/white/partial, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iP" = ( /obj/structure/window/reinforced{ dir = 4 }, /obj/structure/window/reinforced, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iQ" = ( /obj/structure/kitchenspike, /obj/effect/decal/cleanable/cobweb, @@ -2935,7 +2935,7 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iR" = ( /obj/structure/railing{ dir = 1 @@ -2947,7 +2947,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid12" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iS" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -2964,11 +2964,11 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iT" = ( /obj/structure/fans/tiny, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iW" = ( /obj/structure/chair{ dir = 4 @@ -2977,19 +2977,19 @@ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iX" = ( /obj/structure/bed, /obj/item/bedsheet, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iY" = ( /obj/structure/flora/junglebush, /obj/structure/flora/ausbushes/brflowers, /obj/structure/window/full/basic, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "iZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/cable{ @@ -3002,24 +3002,24 @@ name = "Workshop" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ja" = ( /obj/machinery/economy/arcade/claw, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jb" = ( /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jc" = ( /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jf" = ( /obj/machinery/atmospherics/unary/cryo_cell, /obj/structure/window/reinforced{ @@ -3030,7 +3030,7 @@ }, /obj/effect/turf_decal/delivery/white/hollow, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jg" = ( /obj/structure/railing{ dir = 9 @@ -3038,14 +3038,14 @@ /turf/simulated/floor/plasteel{ icon_state = "whitecorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jh" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ji" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 8 @@ -3056,19 +3056,19 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jj" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jk" = ( /obj/structure/flora/ausbushes/ppflowers, /obj/structure/flora/ash/rock/style_random, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jl" = ( /obj/structure/table/reinforced, /obj/structure/railing/cap{ @@ -3083,7 +3083,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jm" = ( /obj/structure/railing{ dir = 1 @@ -3093,19 +3093,19 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jn" = ( /obj/machinery/door/airlock/centcom, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jo" = ( /obj/structure/closet/cabinet, /obj/item/clothing/under/misc/assistantformal, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jp" = ( /obj/structure/railing, /obj/item/kirbyplants, @@ -3113,24 +3113,24 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jq" = ( /obj/structure/window/reinforced{ dir = 1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jr" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jt" = ( /obj/structure/railing/cap, /obj/structure/railing/cap{ dir = 5 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jw" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal{ @@ -3141,19 +3141,19 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/grille/broken, /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jy" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/candy, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jz" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -3165,7 +3165,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jB" = ( /obj/structure/window/reinforced{ dir = 8 @@ -3177,22 +3177,22 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jC" = ( /obj/effect/landmark/damageturf, /mob/living/simple_animal/hostile/alien, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jD" = ( /obj/structure/closet/crate, /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jE" = ( /obj/structure/grille, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jF" = ( /obj/structure/railing, /obj/effect/turf_decal/stripes/asteroid/end{ @@ -3202,13 +3202,13 @@ dir = 8 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jH" = ( /turf/simulated/floor/plasteel{ icon_state = "cautioncorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jI" = ( /obj/structure/window/reinforced{ dir = 1 @@ -3221,7 +3221,7 @@ dir = 5; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jJ" = ( /obj/structure/window/reinforced, /obj/machinery/computer/security{ @@ -3233,7 +3233,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jK" = ( /obj/structure/railing{ dir = 4 @@ -3242,17 +3242,17 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jL" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jM" = ( /obj/structure/chair/office/dark{ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jP" = ( /obj/structure/railing, /obj/effect/turf_decal/stripes/asteroid/line, @@ -3260,7 +3260,7 @@ dir = 1 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jQ" = ( /obj/machinery/door/poddoor/shutters{ dir = 2 @@ -3272,24 +3272,24 @@ dir = 4; icon_state = "blackcorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jS" = ( /turf/simulated/floor/plasteel{ icon_state = "cautioncorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jU" = ( /obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/ywflowers, /obj/structure/window/full/basic, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jW" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid8" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jY" = ( /obj/structure/chair{ dir = 4 @@ -3304,7 +3304,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "jZ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -3320,7 +3320,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ka" = ( /obj/structure/railing/corner{ dir = 4 @@ -3329,12 +3329,12 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kb" = ( /obj/structure/closet, /obj/item/storage/box/lights/mixed, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kc" = ( /obj/structure/railing{ dir = 1 @@ -3353,7 +3353,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid6" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kd" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -3364,7 +3364,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ke" = ( /obj/structure/window/reinforced, /obj/structure/chair{ @@ -3378,7 +3378,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kf" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, @@ -3386,7 +3386,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kg" = ( /obj/item/kirbyplants, /obj/effect/landmark/damageturf, @@ -3394,7 +3394,7 @@ dir = 6; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/poddoor/impassable{ @@ -3405,11 +3405,11 @@ name = "Research Division" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ki" = ( /obj/machinery/door/airlock/external, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kj" = ( /obj/structure/window/reinforced{ dir = 1 @@ -3420,13 +3420,13 @@ }, /obj/effect/turf_decal/box, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kk" = ( /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "km" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -3435,17 +3435,17 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ko" = ( /obj/structure/railing, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kp" = ( /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kr" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -3455,7 +3455,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ks" = ( /obj/structure/window/reinforced{ dir = 8 @@ -3474,7 +3474,7 @@ icon_state = "yellowsiding"; dir = 9 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ku" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/portable/scrubber, @@ -3482,7 +3482,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kw" = ( /obj/structure/window/reinforced{ dir = 1 @@ -3495,14 +3495,14 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kx" = ( /obj/structure/table/glass, /turf/simulated/floor/plasteel{ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ky" = ( /obj/structure/railing/cap{ dir = 9 @@ -3510,7 +3510,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kz" = ( /obj/structure/cable{ d2 = 2; @@ -3520,14 +3520,14 @@ id = "mo19rdoffice" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kB" = ( /obj/item/kirbyplants, /obj/structure/railing{ dir = 10 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kC" = ( /obj/machinery/light/small{ dir = 8 @@ -3542,7 +3542,7 @@ icon_state = "whitehall"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kE" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -3552,14 +3552,14 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kG" = ( /obj/item/kirbyplants, /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/plasteel{ icon_state = "whitecorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kJ" = ( /obj/machinery/power/port_gen/pacman{ desc = "A portable generator for emergency backup power."; @@ -3569,13 +3569,13 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kM" = ( /obj/structure/flora/ausbushes/sunnybush, /obj/structure/flora/ausbushes/ywflowers, /obj/structure/window/full/basic, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kN" = ( /obj/item/kirbyplants, /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -3590,7 +3590,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kO" = ( /obj/machinery/computer/security/telescreen{ desc = "Used for monitoring the research division and the labs within."; @@ -3599,7 +3599,7 @@ pixel_y = 32 }, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kQ" = ( /obj/structure/window/reinforced{ dir = 1 @@ -3612,11 +3612,11 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kR" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kW" = ( /obj/machinery/door/airlock/centcom{ req_access_txt = "271" @@ -3625,7 +3625,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kX" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced, @@ -3637,18 +3637,18 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "kZ" = ( /obj/structure/flora/rock/jungle, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "la" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /mob/living/simple_animal/hostile/alien, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lc" = ( /obj/machinery/shieldwallgen{ locked = 0; @@ -3660,7 +3660,7 @@ }, /obj/effect/turf_decal/box, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "li" = ( /obj/structure/railing{ dir = 1 @@ -3669,13 +3669,13 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lk" = ( /obj/machinery/light/small, /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lm" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/effect/decal/cleanable/dirt, @@ -3683,20 +3683,20 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lo" = ( /obj/structure/barricade/wooden{ layer = 4 }, /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lp" = ( /turf/simulated/floor/plasteel{ dir = 9; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lq" = ( /obj/machinery/door/airlock{ req_access_txt = "271" @@ -3708,20 +3708,20 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lv" = ( /obj/structure/largecrate, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lz" = ( /obj/machinery/photocopier, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lC" = ( /obj/item/reagent_containers/food/snacks/beans, /obj/item/reagent_containers/food/snacks/beans{ @@ -3741,7 +3741,7 @@ icon_state = "black"; dir = 9 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lD" = ( /obj/item/kirbyplants, /obj/machinery/light/small, @@ -3749,7 +3749,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -3763,7 +3763,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lH" = ( /obj/machinery/power/port_gen/pacman{ desc = "A portable generator for emergency backup power."; @@ -3778,7 +3778,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lI" = ( /obj/item/kirbyplants, /obj/effect/decal/cleanable/dirt, @@ -3786,7 +3786,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lL" = ( /obj/structure/railing{ dir = 8 @@ -3797,39 +3797,39 @@ icon_state = "4-8" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lM" = ( /obj/structure/closet/firecloset, /obj/structure/window/reinforced{ dir = 1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lN" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lQ" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lS" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid4" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lT" = ( /obj/structure/chair/office/dark{ dir = 8 @@ -3839,23 +3839,23 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "lY" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mb" = ( /obj/structure/closet/cabinet, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "md" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -3864,7 +3864,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mh" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -3878,7 +3878,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line, @@ -3886,7 +3886,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mk" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -3899,7 +3899,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mm" = ( /obj/machinery/conveyor/east{ id = "awayfusrodah" @@ -3908,7 +3908,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -3920,14 +3920,14 @@ dir = 8; icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mq" = ( /obj/machinery/atmospherics/unary/outlet_injector/on{ dir = 4; volume_rate = 200 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mr" = ( /obj/machinery/light/small{ dir = 8 @@ -3937,7 +3937,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ms" = ( /obj/machinery/door/window{ dir = 8 @@ -3948,7 +3948,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mt" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -3960,7 +3960,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery/partial{ @@ -3970,21 +3970,21 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mv" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mw" = ( /obj/structure/alien/resin/wall, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mx" = ( /obj/machinery/shieldwallgen{ locked = 0; @@ -3993,7 +3993,7 @@ /obj/structure/cable, /obj/effect/turf_decal/box, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "my" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -4002,7 +4002,7 @@ dir = 8; icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter{ @@ -4011,7 +4011,7 @@ /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mB" = ( /obj/machinery/economy/vending/cigarette, /obj/machinery/light/small{ @@ -4026,7 +4026,7 @@ dir = 8; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mC" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -4038,7 +4038,7 @@ icon_state = "whitehall"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mH" = ( /obj/machinery/light/small{ dir = 1 @@ -4053,26 +4053,26 @@ dir = 1; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mJ" = ( /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mK" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/alien/resin/wall, /obj/machinery/atmospherics/air_sensor, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mM" = ( /obj/machinery/floodlight, /turf/simulated/floor/plasteel{ icon_state = "yellowsiding"; dir = 5 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mS" = ( /obj/machinery/conveyor/east{ id = "awayfusrodah" @@ -4094,7 +4094,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mT" = ( /obj/item/kitchen/knife, /obj/item/kitchen/rollingpin, @@ -4103,7 +4103,7 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mU" = ( /obj/machinery/shieldwallgen{ locked = 0; @@ -4125,7 +4125,7 @@ }, /obj/effect/turf_decal/box, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -4137,7 +4137,7 @@ }, /mob/living/simple_animal/hostile/alien/sentinel, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mW" = ( /obj/effect/decal/cleanable/cobweb, /obj/machinery/computer/security{ @@ -4147,7 +4147,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "mX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -4156,7 +4156,7 @@ dir = 4 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "na" = ( /obj/structure/sign/nosmoking_1{ pixel_x = -32 @@ -4176,7 +4176,7 @@ icon_state = "tracks" }, /turf/simulated/floor/plasteel/stairs, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nc" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/light/small{ @@ -4187,28 +4187,28 @@ dir = 9; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nf" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 }, /obj/structure/alien/resin/wall, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ng" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "darkblue"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nh" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nk" = ( /obj/structure/sign/electricshock{ pixel_y = 32 @@ -4218,7 +4218,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nl" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -4235,23 +4235,23 @@ }, /obj/effect/spawner/window/reinforced/tinted/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nn" = ( /obj/effect/spawner/window/reinforced/tinted/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nt" = ( /turf/simulated/floor/plasteel{ dir = 8; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nu" = ( /obj/structure/lattice, /obj/item/stack/sheet/plasteel, @@ -4261,14 +4261,14 @@ /obj/machinery/door/airlock, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nx" = ( /obj/machinery/door/airlock/centcom{ req_access_txt = "271"; name = "Engineering Division" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ny" = ( /obj/effect/landmark/damageturf, /turf/simulated/floor/plating/airless, @@ -4280,7 +4280,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nA" = ( /obj/structure/rack, /obj/item/flashlight/flare, @@ -4291,7 +4291,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nC" = ( /obj/structure/closet/secure_closet, /obj/machinery/camera{ @@ -4304,7 +4304,7 @@ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nE" = ( /obj/structure/cable{ d1 = 1; @@ -4317,7 +4317,7 @@ icon_state = "2-8" }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter{ @@ -4327,14 +4327,14 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nJ" = ( /obj/structure/railing/cap{ dir = 10 @@ -4349,7 +4349,7 @@ dir = 4; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nK" = ( /obj/structure/cable{ d1 = 1; @@ -4360,7 +4360,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nO" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/light/small{ @@ -4371,14 +4371,14 @@ icon_state = "black"; dir = 9 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nQ" = ( /obj/structure/railing, /obj/structure/closet/cardboard, /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nV" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -4387,7 +4387,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nW" = ( /obj/structure/railing{ dir = 10 @@ -4396,7 +4396,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -4406,14 +4406,14 @@ }, /mob/living/simple_animal/hostile/alien, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "nZ" = ( /obj/structure/window/reinforced, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -4428,13 +4428,13 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "od" = ( /obj/structure/chair/office/dark, /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oh" = ( /obj/structure/sign/poster/contraband/lusty_xenomorph{ pixel_y = 32 @@ -4445,7 +4445,7 @@ dir = 5; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oi" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -4460,7 +4460,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ok" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -4471,13 +4471,13 @@ }, /mob/living/simple_animal/hostile/alien, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "on" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oo" = ( /obj/structure/chair/office/dark, /obj/effect/decal/cleanable/dirt, @@ -4485,14 +4485,14 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "op" = ( /mob/living/simple_animal/hostile/alien/sentinel, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "or" = ( /obj/machinery/light/small{ dir = 4 @@ -4501,13 +4501,13 @@ /obj/structure/window/basic, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ot" = ( /obj/structure/railing{ dir = 8 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ov" = ( /obj/effect/turf_decal/caution/stand_clear/white{ dir = 4 @@ -4516,14 +4516,14 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ow" = ( /obj/structure/window/reinforced, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oA" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -4536,7 +4536,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oD" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 @@ -4544,7 +4544,7 @@ /turf/simulated/floor/plasteel{ icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oF" = ( /obj/structure/chair/sofa/bench/left, /obj/machinery/camera{ @@ -4556,7 +4556,7 @@ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oH" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable{ @@ -4573,7 +4573,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks{ @@ -4585,7 +4585,7 @@ pixel_y = 9 }, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oL" = ( /obj/structure/rack, /obj/structure/window/reinforced{ @@ -4593,7 +4593,7 @@ }, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oM" = ( /obj/structure/chair{ dir = 1 @@ -4602,7 +4602,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ @@ -4615,12 +4615,12 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/grille/broken, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oS" = ( /obj/structure/railing{ dir = 8 @@ -4629,7 +4629,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -4637,14 +4637,14 @@ dir = 4; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oU" = ( /obj/item/kirbyplants, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -4652,7 +4652,7 @@ /turf/simulated/floor/plasteel{ icon_state = "greencorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "oZ" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -4667,14 +4667,14 @@ pixel_x = 10 }, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pa" = ( /obj/structure/table, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pe" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -4691,13 +4691,13 @@ }, /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ph" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid4" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pi" = ( /obj/effect/turf_decal/loading_area{ dir = 4 @@ -4709,20 +4709,20 @@ /turf/simulated/floor/plasteel{ icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pm" = ( /obj/structure/largecrate, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pn" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid3" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pp" = ( /obj/structure/cable{ d1 = 1; @@ -4737,7 +4737,7 @@ /obj/item/clothing/gloves/color/yellow, /obj/structure/table/reinforced, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pq" = ( /obj/structure/railing/cap{ dir = 5 @@ -4747,7 +4747,7 @@ dir = 4; icon_state = "blackcorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pr" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -4758,7 +4758,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ps" = ( /obj/structure/window/reinforced{ dir = 1 @@ -4768,7 +4768,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pt" = ( /obj/structure/railing{ dir = 1 @@ -4776,7 +4776,7 @@ /obj/structure/rack, /obj/item/flashlight/flare/glowstick, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pu" = ( /obj/effect/decal/cleanable/greenglow, /obj/structure/railing/cap{ @@ -4786,19 +4786,19 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pz" = ( /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pB" = ( /obj/structure/rack, /obj/item/paicard{ pixel_x = -4 }, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pD" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -4807,12 +4807,12 @@ icon_state = "caution"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pE" = ( /turf/simulated/floor/plasteel{ icon_state = "yellowsiding" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pF" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/decal/cleanable/dirt, @@ -4820,7 +4820,7 @@ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -4829,17 +4829,17 @@ icon_state = "blackcorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pK" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pL" = ( /obj/structure/rack, /obj/effect/decal/cleanable/cobweb2, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/xeno{ @@ -4850,7 +4850,7 @@ desc = "They look like the remains of something... alien. The front of skull appears to have been completely obliterated." }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -4860,7 +4860,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 @@ -4878,11 +4878,11 @@ dir = 8; icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pR" = ( /obj/structure/closet/secure_closet/freezer/fridge, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pS" = ( /obj/machinery/light/small{ dir = 8 @@ -4892,7 +4892,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pV" = ( /obj/machinery/door/poddoor/impassable{ id_tag = "awayscilock" @@ -4902,7 +4902,7 @@ name = "Research Division" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pW" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable{ @@ -4914,12 +4914,12 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "pZ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/food/snacks/badrecipe, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qa" = ( /obj/structure/chair/sofa/bench{ dir = 8 @@ -4934,7 +4934,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qb" = ( /obj/structure/railing/cap{ dir = 10 @@ -4946,7 +4946,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qc" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/alien/sentinel, @@ -4954,7 +4954,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qj" = ( /obj/structure/railing/cap{ dir = 9 @@ -4962,7 +4962,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qm" = ( /obj/structure/cable{ d1 = 1; @@ -4977,7 +4977,7 @@ id = "mo19rdoffice" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -4988,7 +4988,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qp" = ( /obj/structure/railing{ dir = 8 @@ -4997,7 +4997,7 @@ icon_state = "yellowsiding"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qq" = ( /obj/structure/table/reinforced, /obj/item/clipboard{ @@ -5012,7 +5012,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qr" = ( /obj/structure/window/reinforced{ dir = 8 @@ -5021,7 +5021,7 @@ dir = 8 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qt" = ( /obj/machinery/power/smes{ input_level = 10000; @@ -5031,14 +5031,14 @@ }, /obj/structure/cable, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qu" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qv" = ( /obj/structure/disposalpipe/segment{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; @@ -5050,14 +5050,14 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qx" = ( /obj/machinery/door/airlock/centcom{ req_access_txt = "271"; name = "Cafeteria" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qA" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -5070,7 +5070,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qB" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -5083,7 +5083,7 @@ dir = 6; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qC" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -5097,7 +5097,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qD" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -5106,14 +5106,14 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qF" = ( /obj/structure/closet/firecloset, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qI" = ( /obj/structure/railing{ dir = 1 @@ -5122,7 +5122,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qM" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -5134,7 +5134,7 @@ icon_state = "1-2" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qQ" = ( /obj/machinery/kitchen_machine/grill, /obj/machinery/light/small{ @@ -5145,24 +5145,24 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, /obj/effect/turf_decal/delivery/hollow, /obj/structure/rack, -/obj/item/assembly/signaler/anomaly/random, +/obj/item/paper/researchnotes, /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "qY" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "re" = ( /obj/structure/railing/cap{ dir = 8 @@ -5174,14 +5174,14 @@ icon_state = "darkblue"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rf" = ( /obj/structure/bed, /obj/item/bedsheet, /obj/effect/decal/cleanable/cobweb2, /obj/item/toy/plushie/lizardplushie, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ri" = ( /obj/item/radio/off{ pixel_x = -8 @@ -5201,7 +5201,7 @@ /obj/item/coin/antagtoken/syndicate, /obj/structure/table, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/damageturf, @@ -5212,7 +5212,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rl" = ( /obj/structure/sink{ dir = 8; @@ -5223,7 +5223,7 @@ icon_state = "darkblue"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rm" = ( /obj/structure/railing/cap, /obj/structure/railing/cap{ @@ -5236,7 +5236,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ro" = ( /obj/structure/railing/cap, /obj/structure/alien/resin/wall, @@ -5244,7 +5244,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rp" = ( /obj/effect/decal/cleanable/blood/xeno{ color = "green" @@ -5253,7 +5253,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rq" = ( /obj/structure/railing/cap{ dir = 6 @@ -5261,7 +5261,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/remains/human, @@ -5277,27 +5277,27 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ru" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rv" = ( /turf/simulated/floor/plasteel{ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rx" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ry" = ( /obj/structure/table/reinforced, /obj/item/clothing/glasses/meson, @@ -5308,7 +5308,7 @@ }, /obj/item/paper/fluff/ruins/moonoutpost19/engineering, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rB" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -5318,7 +5318,7 @@ dir = 8; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rC" = ( /obj/structure/railing/corner{ dir = 8 @@ -5326,7 +5326,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid5" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -5336,7 +5336,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rE" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -5346,26 +5346,26 @@ dir = 8 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rH" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rJ" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rK" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -5385,14 +5385,14 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rL" = ( /obj/structure/chair/sofa/bench/left, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rN" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -5401,11 +5401,11 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rP" = ( /obj/structure/flora/ash/rock/style_random, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rQ" = ( /obj/structure/railing/cap, /obj/effect/decal/cleanable/blood/splatter{ @@ -5415,7 +5415,7 @@ icon_state = "yellowsiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rS" = ( /obj/structure/cable{ d1 = 1; @@ -5434,7 +5434,7 @@ stat = 2 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rT" = ( /obj/structure/window/reinforced{ dir = 8 @@ -5447,7 +5447,7 @@ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rV" = ( /obj/machinery/door/airlock{ req_access_txt = "271"; @@ -5457,13 +5457,13 @@ dir = 8; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rW" = ( /turf/simulated/floor/plasteel{ icon_state = "escapecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rY" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 @@ -5472,13 +5472,13 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "rZ" = ( /obj/machinery/door/airlock/maintenance_hatch{ req_access_txt = "271" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sa" = ( /obj/structure/sign/radiation/rad_area{ pixel_y = 32 @@ -5489,14 +5489,14 @@ /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter{ color = "red" }, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "se" = ( /obj/effect/turf_decal/stripes/asteroid/corner{ dir = 8 @@ -5504,7 +5504,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sg" = ( /obj/effect/decal/cleanable/cobweb, /obj/structure/railing, @@ -5512,7 +5512,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sh" = ( /obj/machinery/recharger{ pixel_y = 4 @@ -5524,7 +5524,7 @@ }, /obj/structure/table/reinforced, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "si" = ( /obj/structure/cable{ d1 = 1; @@ -5532,7 +5532,7 @@ icon_state = "1-2" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -5540,7 +5540,7 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -5557,7 +5557,7 @@ icon_state = "cautioncorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sl" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -5569,11 +5569,11 @@ }, /obj/structure/alien/resin/wall, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sm" = ( /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sn" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -5586,7 +5586,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "so" = ( /obj/structure/railing/corner{ dir = 8 @@ -5594,7 +5594,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid6" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sp" = ( /obj/item/kirbyplants, /obj/structure/railing, @@ -5607,7 +5607,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sq" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -5617,7 +5617,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sv" = ( /obj/machinery/power/terminal{ dir = 1 @@ -5627,15 +5627,15 @@ icon_state = "0-2" }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sy" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/wall/r_wall, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sF" = ( /obj/effect/spawner/random_spawners/wall_rusted_always, /turf/simulated/wall/indestructible/riveted, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sK" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -5644,34 +5644,34 @@ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sL" = ( /obj/machinery/door/airlock/external/glass, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sR" = ( /obj/structure/chair/sofa/bench/left, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sV" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sY" = ( /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "sZ" = ( /obj/structure/chair/office/dark, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tb" = ( /obj/structure/sign/securearea{ pixel_x = -32 @@ -5683,14 +5683,14 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tc" = ( /obj/structure/railing{ dir = 4 }, /obj/item/kirbyplants, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "td" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -5698,7 +5698,7 @@ icon_state = "cautioncorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "te" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -5708,7 +5708,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tf" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -5720,20 +5720,20 @@ }, /obj/machinery/atmospherics/air_sensor, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "th" = ( /obj/structure/chair/office/dark{ dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tj" = ( /obj/structure/railing/cap, /obj/structure/flora/ash/rock/style_random, /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -5753,7 +5753,7 @@ pixel_x = 2 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tl" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/blood/tracks{ @@ -5765,21 +5765,21 @@ pixel_x = 2 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "to" = ( /obj/structure/railing{ dir = 4 }, /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tp" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -5791,11 +5791,11 @@ }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tv" = ( /obj/structure/largecrate, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tw" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -5808,12 +5808,12 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tx" = ( /obj/structure/window/reinforced, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/noticeboard{ @@ -5822,12 +5822,12 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tE" = ( /obj/structure/closet/crate/secure/loot, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tG" = ( /obj/structure/cable{ d1 = 1; @@ -5841,7 +5841,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter{ @@ -5850,7 +5850,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tR" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -5863,7 +5863,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tV" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -5872,21 +5872,21 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tW" = ( /obj/structure/grille/broken, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tX" = ( /turf/simulated/wall/indestructible/rock, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tY" = ( /obj/machinery/economy/vending/dinnerware, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "tZ" = ( /obj/structure/railing/corner{ dir = 4 @@ -5898,7 +5898,7 @@ stat = 2 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ub" = ( /obj/structure/cable, /obj/machinery/power/smes{ @@ -5908,7 +5908,7 @@ outputting = 0 }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uf" = ( /obj/structure/window/reinforced, /mob/living/simple_animal/hostile/alien/drone, @@ -5916,14 +5916,14 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ug" = ( /obj/structure/railing{ dir = 6 }, /obj/structure/chair, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uh" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -5938,12 +5938,12 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uj" = ( /obj/effect/decal/remains/human, /obj/item/reagent_containers/hypospray/autoinjector/survival, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "up" = ( /obj/structure/chair/sofa/bench{ dir = 8 @@ -5952,7 +5952,7 @@ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ur" = ( /obj/machinery/light/small{ active_power_consumption = 0; @@ -5965,7 +5965,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uv" = ( /obj/structure/railing/cap{ dir = 9 @@ -5973,7 +5973,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid12" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uw" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -5983,14 +5983,14 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uA" = ( /obj/structure/closet/crate, /turf/simulated/floor/plasteel{ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uG" = ( /obj/structure/railing{ dir = 4 @@ -5998,7 +5998,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -6016,7 +6016,7 @@ }, /obj/effect/spawner/window/reinforced/tinted/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uM" = ( /obj/machinery/light/small, /obj/structure/noticeboard{ @@ -6025,7 +6025,7 @@ /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uO" = ( /obj/structure/table/reinforced, /obj/item/storage/fancy/vials, @@ -6033,14 +6033,14 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uP" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 }, /obj/structure/alien/resin/wall, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uR" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -6050,7 +6050,7 @@ dir = 1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uS" = ( /obj/structure/railing{ dir = 8 @@ -6062,7 +6062,7 @@ icon_state = "black"; dir = 9 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uT" = ( /obj/structure/railing/cap{ dir = 10 @@ -6071,26 +6071,26 @@ icon_state = "yellowsiding"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "uX" = ( /obj/structure/table/glass/reinforced/titanium, /obj/item/paper_bin, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "va" = ( /obj/machinery/economy/vending/cola, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vd" = ( /obj/structure/cable{ d1 = 1; @@ -6103,14 +6103,14 @@ icon_state = "4-8" }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ve" = ( /obj/structure/window/reinforced{ dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vf" = ( /obj/machinery/light/small{ dir = 1 @@ -6120,7 +6120,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vh" = ( /obj/structure/rack, /obj/item/mecha_parts/core, @@ -6129,26 +6129,26 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vm" = ( /obj/machinery/atmospherics/portable/canister/air, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vn" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vq" = ( /obj/structure/railing/cap{ dir = 1 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vy" = ( /obj/structure/railing/cap{ dir = 1 @@ -6159,14 +6159,14 @@ /turf/simulated/floor/plasteel/stairs{ dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vz" = ( /obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/plasteel{ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vA" = ( /obj/structure/table/reinforced, /obj/item/paper_bin{ @@ -6182,7 +6182,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vB" = ( /obj/item/kirbyplants, /obj/machinery/light/small{ @@ -6192,7 +6192,7 @@ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vC" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -6201,26 +6201,26 @@ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vD" = ( /obj/structure/railing{ dir = 1 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vF" = ( /obj/structure/table, /turf/simulated/floor/plasteel{ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vH" = ( /obj/structure/railing/cap{ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vL" = ( /obj/structure/noticeboard{ pixel_y = 32 @@ -6229,14 +6229,14 @@ dir = 1 }, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vN" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vO" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -6247,14 +6247,14 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vS" = ( /obj/structure/alien/resin/door, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vT" = ( /obj/structure/railing/cap{ dir = 6 @@ -6262,7 +6262,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vV" = ( /obj/structure/flora/ausbushes/pointybush, /obj/structure/flora/ausbushes/ppflowers, @@ -6270,7 +6270,7 @@ dir = 4 }, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "vY" = ( /obj/structure/railing, /obj/structure/railing{ @@ -6283,7 +6283,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wb" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -6295,7 +6295,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wc" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -6307,7 +6307,7 @@ icon_state = "darkbluecorners"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wd" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -6320,7 +6320,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "we" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/structure/sign/poster/contraband/donut_corp{ @@ -6331,7 +6331,7 @@ dir = 8; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wh" = ( /obj/item/chair{ dir = 4; @@ -6342,17 +6342,17 @@ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wj" = ( /obj/structure/railing/cap, /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wk" = ( /obj/machinery/computer, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wl" = ( /obj/item/stack/ore/slag, /turf/simulated/floor/engine/vacuum, @@ -6367,14 +6367,14 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wp" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 5 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wq" = ( /obj/machinery/light/small, /obj/structure/closet/l3closet/general, @@ -6382,26 +6382,26 @@ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wt" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wv" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wC" = ( /obj/structure/closet/cabinet, /obj/effect/decal/cleanable/dirt, /obj/item/clothing/under/syndicate, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wD" = ( /obj/machinery/economy/vending/cola, /obj/effect/decal/cleanable/dirt, @@ -6409,7 +6409,7 @@ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wF" = ( /obj/structure/window/reinforced{ dir = 4 @@ -6421,26 +6421,26 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wH" = ( /obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wL" = ( /obj/item/reagent_containers/food/drinks/drinkingglass, /obj/structure/table, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wP" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Engine Room" }, /obj/machinery/door/firedoor/closed, /turf/simulated/floor/plating/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wQ" = ( /obj/structure/railing{ dir = 4 @@ -6448,7 +6448,7 @@ /obj/structure/rack, /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wR" = ( /obj/structure/sign/monkey_paint{ pixel_x = -28; @@ -6461,7 +6461,7 @@ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wS" = ( /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, @@ -6470,7 +6470,7 @@ }, /obj/effect/decal/remains/human, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "wU" = ( /obj/structure/chair/office/dark, /obj/effect/turf_decal/delivery/red/partial, @@ -6479,7 +6479,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xf" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -6496,20 +6496,20 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xh" = ( /obj/structure/railing/cap, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xi" = ( /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel/stairs{ dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xl" = ( /obj/structure/cable{ d1 = 4; @@ -6523,7 +6523,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xm" = ( /obj/structure/window/reinforced{ dir = 4 @@ -6537,7 +6537,7 @@ dir = 4; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xn" = ( /obj/structure/railing{ dir = 4 @@ -6545,13 +6545,13 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid10" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xo" = ( /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xs" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -6570,7 +6570,7 @@ icon_state = "1-8" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xt" = ( /obj/structure/railing{ dir = 8 @@ -6582,7 +6582,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xu" = ( /obj/machinery/atmospherics/pipe/manifold/visible{ dir = 1 @@ -6590,12 +6590,12 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xw" = ( /obj/structure/closet/crate/can, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xz" = ( /obj/structure/sign/lifestar{ pixel_y = 32 @@ -6611,7 +6611,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -6619,7 +6619,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -6631,7 +6631,7 @@ dir = 1; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xE" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -6640,7 +6640,7 @@ dir = 6; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xF" = ( /obj/structure/chair/sofa/bench/right{ dir = 8 @@ -6649,15 +6649,15 @@ dir = 5; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xG" = ( /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xL" = ( /turf/simulated/floor/plasteel/stairs{ dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -6666,7 +6666,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xS" = ( /obj/structure/railing/cap{ dir = 10 @@ -6677,18 +6677,18 @@ icon_state = "yellowsiding"; dir = 5 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xW" = ( /obj/machinery/door/airlock, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "xZ" = ( /obj/machinery/disposal/deliveryChute{ dir = 8 @@ -6699,7 +6699,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ya" = ( /obj/structure/chair/sofa/bench{ dir = 8 @@ -6711,13 +6711,13 @@ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yb" = ( /obj/machinery/light/small{ dir = 1 }, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yc" = ( /obj/machinery/computer{ dir = 8 @@ -6726,13 +6726,13 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yd" = ( /obj/structure/railing, /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yf" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -6741,7 +6741,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yi" = ( /obj/structure/rack, /obj/item/pickaxe, @@ -6750,7 +6750,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yj" = ( /obj/item/storage/belt/utility, /obj/structure/table, @@ -6758,7 +6758,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ym" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -6775,7 +6775,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ys" = ( /obj/structure/railing{ dir = 8 @@ -6783,7 +6783,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yu" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -6796,7 +6796,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yv" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -6819,7 +6819,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yx" = ( /obj/structure/window/reinforced{ dir = 8 @@ -6828,14 +6828,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yy" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -6843,7 +6843,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yD" = ( /obj/structure/rack, /obj/effect/turf_decal/delivery, @@ -6857,7 +6857,7 @@ icon_state = "yellowsiding"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yE" = ( /obj/item/stack/sheet/metal, /obj/effect/landmark/damageturf, @@ -6868,12 +6868,12 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yF" = ( /obj/structure/table/wood, /obj/item/toy/plushie/nianplushie, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -6882,7 +6882,7 @@ pixel_y = -3 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yI" = ( /obj/structure/railing/cap{ dir = 1 @@ -6891,7 +6891,7 @@ dir = 10 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yM" = ( /obj/structure/railing/cap{ dir = 4 @@ -6900,13 +6900,13 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yO" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid8" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yQ" = ( /obj/structure/table/glass/reinforced/plastitanium, /obj/machinery/door_control{ @@ -6933,7 +6933,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yR" = ( /obj/item/reagent_containers/food/snacks/xenomeatbreadslice, /obj/item/reagent_containers/food/snacks/xenomeatbreadslice{ @@ -6952,12 +6952,12 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yU" = ( /obj/item/reagent_containers/food/snacks/candy, /obj/structure/table, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yX" = ( /obj/structure/railing/cap{ dir = 4 @@ -6970,20 +6970,20 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "yZ" = ( /obj/structure/closet/cabinet, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zh" = ( /obj/item/reagent_containers/food/snacks/badrecipe, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -7002,7 +7002,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -7013,33 +7013,33 @@ icon_state = "1-2" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zl" = ( /obj/structure/closet/firecloset, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zm" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "escapecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zn" = ( /obj/effect/spawner/random_spawners/wall_rusted_always, /obj/effect/spawner/random_spawners/wall_rusted_always, /turf/simulated/wall/r_wall, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zr" = ( /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zu" = ( /obj/structure/alien/resin/wall, /obj/structure/cable{ @@ -7048,7 +7048,7 @@ icon_state = "1-8" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zv" = ( /obj/structure/rack, /obj/item/reagent_containers/food/snacks/cornchips, @@ -7056,14 +7056,14 @@ dir = 8; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zw" = ( /obj/machinery/computer/aifixer, /obj/machinery/light/small{ dir = 1 }, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zy" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -7083,7 +7083,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zz" = ( /obj/structure/window/reinforced, /obj/structure/chair/comfy/corp{ @@ -7092,11 +7092,11 @@ /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zG" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -7107,13 +7107,13 @@ icon_state = "caution"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zI" = ( /turf/simulated/floor/plasteel{ dir = 8; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zK" = ( /obj/item/kirbyplants, /obj/structure/sign/biohazard{ @@ -7131,7 +7131,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zL" = ( /obj/structure/window/reinforced{ dir = 8 @@ -7143,21 +7143,21 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zM" = ( /obj/machinery/cooker/deepfryer, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zN" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zP" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/effect/decal/cleanable/dirt, @@ -7165,7 +7165,7 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zQ" = ( /obj/structure/disposalpipe/segment/corner{ dir = 8 @@ -7180,12 +7180,12 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zT" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid3" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zV" = ( /obj/machinery/economy/vending/medical{ req_access_txt = "271" @@ -7194,24 +7194,24 @@ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "zW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Aa" = ( /obj/structure/filingcabinet/chestdrawer, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ae" = ( /obj/machinery/economy/vending/coffee, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Af" = ( /obj/machinery/door/airlock/command/glass{ req_access_txt = "271"; @@ -7224,18 +7224,18 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Aj" = ( /mob/living/simple_animal/hostile/alien/sentinel, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ak" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "cautioncorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Al" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/corner{ @@ -7245,7 +7245,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Am" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 6 @@ -7253,7 +7253,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "An" = ( /obj/structure/punching_bag, /obj/effect/turf_decal/delivery/hollow, @@ -7265,7 +7265,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ao" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -7274,7 +7274,7 @@ color = "red" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ap" = ( /obj/structure/chair{ dir = 1 @@ -7283,7 +7283,7 @@ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ar" = ( /obj/effect/turf_decal/delivery, /obj/structure/railing{ @@ -7293,7 +7293,7 @@ /turf/simulated/floor/plasteel{ icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "As" = ( /obj/structure/closet/secure_closet, /obj/item/clothing/gloves/color/latex, @@ -7306,7 +7306,7 @@ /obj/item/laser_pointer, /obj/item/clothing/suit/storage/labcoat, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Av" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -7320,7 +7320,7 @@ icon_state = "whitehall"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Aw" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -7333,37 +7333,37 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ay" = ( /obj/structure/railing{ dir = 5 }, /obj/structure/closet/l3closet/general, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Az" = ( /obj/structure/bed, /obj/item/bedsheet, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AA" = ( /obj/structure/chair{ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AH" = ( /obj/effect/decal/cleanable/dirt, /obj/item/chair{ pixel_y = -3 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AI" = ( /obj/structure/table, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AJ" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -7373,13 +7373,13 @@ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AM" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -7390,7 +7390,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AN" = ( /obj/structure/grille/broken, /obj/effect/decal/cleanable/glass, @@ -7399,7 +7399,7 @@ icon_state = "medium" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AO" = ( /obj/structure/railing/cap{ dir = 5 @@ -7412,10 +7412,10 @@ /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AP" = ( /turf/simulated/wall/indestructible/riveted, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AQ" = ( /obj/machinery/light/small{ dir = 1 @@ -7431,14 +7431,14 @@ icon_state = "yellowsiding"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AR" = ( /obj/structure/window/reinforced, /turf/simulated/floor/plasteel{ icon_state = "yellowsiding"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AS" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -7448,7 +7448,7 @@ dir = 1; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AV" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/glass/beaker{ @@ -7467,7 +7467,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "AZ" = ( /obj/machinery/atmospherics/unary/tank/air{ dir = 8 @@ -7478,7 +7478,7 @@ icon_state = "yellowsiding"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Bd" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -7487,19 +7487,19 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Be" = ( /obj/effect/turf_decal/stripes/corner, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Bg" = ( /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Bj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -7512,14 +7512,14 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Bk" = ( /obj/effect/turf_decal/stripes/corner, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Br" = ( /obj/structure/railing{ dir = 4 @@ -7531,7 +7531,7 @@ icon_state = "black"; dir = 5 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Bt" = ( /obj/structure/disposalpipe/segment{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; @@ -7541,7 +7541,7 @@ /obj/structure/alien/resin/wall, /obj/effect/landmark/damageturf, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Bu" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -7553,7 +7553,7 @@ pixel_x = 2 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Bv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -7565,7 +7565,7 @@ dir = 6; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Bw" = ( /obj/structure/railing/cap{ dir = 6 @@ -7577,7 +7577,7 @@ dir = 1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Bx" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -7588,7 +7588,7 @@ icon_state = "1-2" }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BA" = ( /obj/structure/railing{ dir = 4 @@ -7600,7 +7600,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid12" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BB" = ( /obj/structure/railing{ dir = 8 @@ -7610,11 +7610,11 @@ icon_state = "yellowsiding"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BC" = ( /obj/machinery/economy/vending/boozeomat, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BE" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal{ @@ -7628,7 +7628,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BF" = ( /obj/item/chair{ pixel_y = -6; @@ -7639,7 +7639,7 @@ icon_state = "yellowsiding"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BI" = ( /obj/machinery/door/poddoor/impassable{ id_tag = "awayscilock" @@ -7648,12 +7648,12 @@ req_access_txt = "271" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BK" = ( /obj/structure/railing, /obj/structure/chair, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BO" = ( /obj/machinery/door/airlock/engineering/glass{ req_access_txt = "271"; @@ -7671,13 +7671,13 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BQ" = ( /obj/structure/railing{ dir = 9 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BY" = ( /obj/structure/railing{ dir = 8 @@ -7687,7 +7687,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "BZ" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -7696,20 +7696,20 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Cc" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid6" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Cd" = ( /obj/structure/table, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ci" = ( /obj/structure/railing{ dir = 1 @@ -7718,7 +7718,7 @@ /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Cm" = ( /obj/structure/table/glass/reinforced/plastitanium, /obj/item/paper/fluff/ruins/moonoutpost19/boreraccountant, @@ -7726,7 +7726,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Cr" = ( /obj/structure/cable{ d1 = 4; @@ -7741,7 +7741,7 @@ name = "Specimen Containtment Zone" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Cs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/remains/human, @@ -7749,7 +7749,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ct" = ( /obj/machinery/door/airlock/highsecurity{ req_access_txt = "271" @@ -7761,7 +7761,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Cv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -7780,7 +7780,7 @@ name = "Engineering Division" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Cw" = ( /obj/item/chair{ pixel_x = 4; @@ -7790,7 +7790,7 @@ icon_state = "black"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Cy" = ( /obj/structure/rack, /obj/item/mop, @@ -7799,7 +7799,7 @@ dir = 9; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CB" = ( /obj/machinery/economy/vending/coffee, /obj/effect/decal/cleanable/dirt, @@ -7807,7 +7807,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CC" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -7817,25 +7817,25 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CE" = ( /obj/structure/table, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CH" = ( /obj/structure/rack, /obj/effect/decal/cleanable/cobweb2, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CI" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CJ" = ( /obj/structure/chair/stool/bar{ dir = 8 @@ -7850,14 +7850,14 @@ dir = 8; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CL" = ( /obj/structure/filingcabinet/chestdrawer, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CM" = ( /obj/structure/cable{ d1 = 4; @@ -7868,7 +7868,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -7881,18 +7881,18 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CS" = ( /turf/simulated/floor/plasteel{ dir = 1; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CV" = ( /obj/effect/decal/cleanable/cobweb, /obj/machinery/atmospherics/portable/scrubber, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -7906,11 +7906,11 @@ icon_state = "1-4" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CY" = ( /obj/structure/rack, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "CZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -7920,10 +7920,10 @@ }, /obj/effect/decal/remains/human, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Da" = ( /turf/simulated/floor/plasteel/stairs, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dc" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -7932,13 +7932,13 @@ dir = 10; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dd" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid1" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "De" = ( /obj/structure/closet/crate, /obj/item/reagent_containers/glass/beaker/waterbottle, @@ -7948,14 +7948,14 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Df" = ( /obj/structure/chair{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Di" = ( /obj/machinery/light{ dir = 8 @@ -7964,7 +7964,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dk" = ( /obj/effect/turf_decal/delivery/white/partial{ dir = 1 @@ -7974,12 +7974,12 @@ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dl" = ( /obj/structure/rack, /obj/item/tank/internals/emergency_oxygen, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dn" = ( /obj/structure/railing{ dir = 9 @@ -7989,14 +7989,14 @@ }, /obj/machinery/light/small, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dp" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dr" = ( /obj/effect/turf_decal/delivery/hollow, /obj/structure/railing{ @@ -8005,7 +8005,7 @@ /turf/simulated/floor/plasteel{ icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ds" = ( /obj/effect/turf_decal/caution/stand_clear{ dir = 8 @@ -8017,7 +8017,7 @@ /turf/simulated/floor/plasteel{ icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dt" = ( /obj/machinery/door/airlock/medical/glass{ req_access_txt = "271" @@ -8032,14 +8032,14 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dw" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Dy" = ( /obj/item/kirbyplants, /obj/structure/sign/biohazard{ @@ -8052,7 +8052,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DA" = ( /obj/effect/turf_decal/delivery, /obj/structure/cable{ @@ -8061,13 +8061,13 @@ icon_state = "2-4" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DB" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DG" = ( /obj/structure/chair/sofa/bench/right{ dir = 8 @@ -8076,7 +8076,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DJ" = ( /obj/structure/window/reinforced{ dir = 4 @@ -8089,7 +8089,7 @@ dir = 4; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DK" = ( /obj/structure/railing/cap{ dir = 5 @@ -8098,7 +8098,7 @@ icon_state = "yellowsiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DM" = ( /obj/structure/rack, /obj/machinery/light/small{ @@ -8106,7 +8106,7 @@ }, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DO" = ( /obj/machinery/light/small{ dir = 4 @@ -8119,12 +8119,12 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DR" = ( /obj/item/kitchen/utensil/spoon, /obj/structure/table, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DU" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1; @@ -8134,18 +8134,18 @@ dir = 10 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "DV" = ( /obj/structure/closet/crate, /obj/item/reagent_containers/food/snacks/beans, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ef" = ( /turf/simulated/floor/plasteel{ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Eg" = ( /obj/effect/decal/cleanable/blood/xeno{ color = "green" @@ -8158,7 +8158,7 @@ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "El" = ( /obj/machinery/light/small{ dir = 1 @@ -8178,7 +8178,7 @@ /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Em" = ( /obj/structure/rack, /obj/effect/decal/cleanable/cobweb2, @@ -8199,7 +8199,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Eo" = ( /obj/structure/filingcabinet, /obj/structure/sign/poster/official/fruit_bowl{ @@ -8207,7 +8207,7 @@ }, /obj/item/paper/fluff/ruins/moonoutpost19/rdnote, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ep" = ( /obj/item/kirbyplants, /obj/effect/decal/cleanable/dirt, @@ -8215,7 +8215,7 @@ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Er" = ( /obj/structure/railing/corner{ dir = 8 @@ -8229,7 +8229,7 @@ /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Es" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -8252,13 +8252,13 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Et" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid1" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ev" = ( /obj/structure/window/reinforced{ dir = 8 @@ -8266,7 +8266,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ex" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/snacks/sliceable/xenomeatbread{ @@ -8277,14 +8277,14 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ey" = ( /obj/machinery/shower{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/noslip, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "EE" = ( /obj/item/stack/ore/slag, /turf/simulated/floor/plating/airless, @@ -8305,12 +8305,12 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "EH" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/decal/cleanable/vomit/green, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "EL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 @@ -8320,7 +8320,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "EN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/greenglow, @@ -8328,18 +8328,18 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "EP" = ( /obj/machinery/light/small, /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "EQ" = ( /obj/structure/window/reinforced, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ER" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 5 @@ -8350,7 +8350,7 @@ /turf/simulated/floor/plasteel{ icon_state = "yellowsiding" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ET" = ( /obj/effect/decal/cleanable/cobweb, /obj/structure/table, @@ -8358,7 +8358,7 @@ dir = 9; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "EV" = ( /obj/structure/closet, /obj/item/soap, @@ -8368,14 +8368,14 @@ dir = 6; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "EZ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/xeno{ color = "green" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fa" = ( /obj/effect/turf_decal/delivery/white/partial{ dir = 1 @@ -8387,13 +8387,13 @@ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fb" = ( /obj/structure/chair/office/dark{ dir = 4 }, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fc" = ( /obj/structure/cable{ d1 = 1; @@ -8404,7 +8404,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fd" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -8412,7 +8412,7 @@ }, /mob/living/simple_animal/hostile/alien/sentinel, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fe" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high, @@ -8422,7 +8422,7 @@ icon_state = "1-2" }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ff" = ( /obj/machinery/computer{ dir = 1 @@ -8431,27 +8431,27 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fk" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fm" = ( /obj/structure/safe, -/obj/item/paper/researchnotes, -/obj/item/clothing/glasses/hud/security/sunglasses/fluff/eyepro, /obj/machinery/light/small{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery/hollow, +/obj/item/assembly/signaler/anomaly/random, +/obj/item/storage/lockbox/experimental_weapon, /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fo" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -8461,7 +8461,7 @@ }, /obj/machinery/atmospherics/air_sensor, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fp" = ( /obj/structure/sink{ dir = 4; @@ -8471,12 +8471,12 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fq" = ( /obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/brflowers, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/greenglow, @@ -8486,7 +8486,7 @@ stat = 2 }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ft" = ( /obj/effect/turf_decal/stripes/corner, /mob/living/simple_animal/hostile/alien/sentinel, @@ -8497,25 +8497,25 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Fz" = ( /obj/structure/disposalpipe/segment/corner{ dir = 8 }, /turf/simulated/wall/r_wall, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FC" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance, @@ -8523,7 +8523,7 @@ icon_state = "caution"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FH" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -8532,7 +8532,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FM" = ( /obj/structure/railing{ dir = 8 @@ -8541,7 +8541,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FN" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/cobweb2, @@ -8549,7 +8549,7 @@ dir = 5; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FO" = ( /obj/item/kirbyplants, /obj/structure/railing{ @@ -8559,7 +8559,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FP" = ( /obj/structure/mopbucket, /obj/machinery/light/small{ @@ -8569,7 +8569,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FT" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, @@ -8577,7 +8577,7 @@ dir = 9; icon_state = "whitecorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FV" = ( /obj/item/kirbyplants, /obj/effect/decal/cleanable/cobweb, @@ -8585,7 +8585,7 @@ dir = 9; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FW" = ( /obj/structure/flora/ausbushes/grassybush, /obj/structure/flora/ausbushes/ywflowers, @@ -8593,20 +8593,20 @@ dir = 8 }, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FX" = ( /obj/structure/railing{ dir = 1 }, /obj/structure/chair/sofa/bench, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FY" = ( /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "FZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -8617,7 +8617,7 @@ icon_state = "1-2" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gd" = ( /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -8627,14 +8627,14 @@ dir = 4 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ge" = ( /obj/structure/closet/crate/secure/loot, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gg" = ( /turf/simulated/mineral/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, @@ -8642,7 +8642,7 @@ icon_state = "darkbluecorners"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gk" = ( /obj/machinery/door/airlock/medical/glass{ req_access_txt = "271"; @@ -8652,7 +8652,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gl" = ( /obj/structure/railing/cap{ dir = 9 @@ -8662,7 +8662,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks{ @@ -8673,7 +8673,7 @@ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gq" = ( /obj/structure/cable{ d1 = 4; @@ -8681,7 +8681,7 @@ icon_state = "4-8" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gs" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 @@ -8702,7 +8702,7 @@ icon_state = "tracks" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gw" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -8722,25 +8722,25 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gx" = ( /obj/structure/closet/crate/freezer, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/grille/broken, /obj/item/stack/rods, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Gz" = ( /obj/structure/table/wood, /obj/item/toy/plushie/slimeplushie, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "GC" = ( /obj/effect/turf_decal/caution/stand_clear/white{ dir = 8 @@ -8749,7 +8749,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "GD" = ( /obj/structure/holosign/barrier/engineering, /obj/effect/landmark/damageturf, @@ -8762,7 +8762,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "GH" = ( /obj/machinery/light/small{ dir = 8 @@ -8771,7 +8771,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "GJ" = ( /obj/structure/railing{ dir = 1 @@ -8787,7 +8787,7 @@ dir = 8; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "GL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter{ @@ -8797,7 +8797,7 @@ icon_state = "yellowsiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "GP" = ( /obj/machinery/computer, /obj/structure/window/reinforced{ @@ -8810,19 +8810,19 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "GS" = ( /obj/structure/grille/broken, /obj/effect/decal/cleanable/glass, /obj/item/stack/rods, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "GT" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "GX" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/decal/cleanable/dirt, @@ -8830,7 +8830,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hb" = ( /obj/structure/table/wood, /obj/item/toy/plushie/greyplushie{ @@ -8841,7 +8841,7 @@ pixel_y = 4 }, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hd" = ( /obj/machinery/light/small{ dir = 4 @@ -8851,7 +8851,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hg" = ( /obj/structure/table/reinforced, /obj/machinery/door/window{ @@ -8872,7 +8872,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hh" = ( /obj/structure/railing/cap{ dir = 10 @@ -8880,7 +8880,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hj" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -8889,7 +8889,7 @@ dir = 8 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hm" = ( /obj/structure/railing, /obj/effect/decal/cleanable/blood/splatter{ @@ -8899,14 +8899,14 @@ /turf/simulated/floor/plasteel/stairs{ dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hp" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 }, /obj/structure/table, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hq" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -8915,7 +8915,7 @@ icon_state = "whitehall"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hr" = ( /obj/structure/railing{ dir = 8 @@ -8928,13 +8928,13 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hu" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "yellowsiding" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -8948,7 +8948,7 @@ icon_state = "2-4" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Hx" = ( /obj/structure/window/reinforced{ dir = 4 @@ -8957,21 +8957,21 @@ dir = 4 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HA" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HE" = ( /obj/structure/chair/sofa/bench/right, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HL" = ( /obj/machinery/light{ active_power_consumption = 0; @@ -8985,7 +8985,7 @@ icon_state = "2-8" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HM" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, @@ -9004,7 +9004,7 @@ pixel_x = 6 }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HO" = ( /obj/machinery/door/airlock/highsecurity{ req_access_txt = "271"; @@ -9015,13 +9015,13 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HP" = ( /obj/item/chair{ pixel_y = -3 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HU" = ( /obj/structure/rack, /obj/item/stack/sheet/metal/fifty{ @@ -9035,7 +9035,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HV" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, @@ -9044,14 +9044,14 @@ icon_state = "yellowsiding"; dir = 9 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "HY" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -9063,12 +9063,12 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ib" = ( /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid11" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ic" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/railing{ @@ -9076,15 +9076,15 @@ }, /obj/structure/table, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ie" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "If" = ( /turf/simulated/floor/bluegrid, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ij" = ( /obj/machinery/light/small{ dir = 1 @@ -9097,13 +9097,13 @@ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Io" = ( /turf/simulated/floor/plasteel{ icon_state = "darkbluecorners"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ip" = ( /obj/structure/cable{ d1 = 1; @@ -9111,7 +9111,7 @@ icon_state = "1-4" }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Iq" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -9119,7 +9119,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/alien/weeds/node, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ix" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -9128,11 +9128,11 @@ icon_state = "greencorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Iz" = ( /obj/structure/reagent_dispensers/watertank, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IB" = ( /obj/machinery/light/small{ dir = 4 @@ -9142,7 +9142,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IC" = ( /obj/structure/railing{ dir = 4 @@ -9151,7 +9151,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid1" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ID" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -9160,7 +9160,7 @@ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IE" = ( /obj/structure/window/reinforced{ dir = 1 @@ -9169,7 +9169,7 @@ dir = 1 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IH" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, @@ -9177,7 +9177,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IJ" = ( /obj/structure/window/reinforced{ dir = 1 @@ -9194,7 +9194,7 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IM" = ( /obj/structure/chair{ dir = 8 @@ -9207,12 +9207,12 @@ icon_state = "tracks" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IN" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IO" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/light/small{ @@ -9223,7 +9223,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IS" = ( /obj/effect/turf_decal/stripes/corner, /obj/structure/filingcabinet/chestdrawer, @@ -9235,7 +9235,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IU" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/airlock/highsecurity{ @@ -9246,11 +9246,11 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IV" = ( /obj/machinery/light/small, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "IW" = ( /turf/simulated/floor/engine/vacuum, /area/space/nearstation) @@ -9271,27 +9271,27 @@ id_tag = "awayscilock1" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Jc" = ( /obj/structure/rack, /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ji" = ( /obj/structure/railing/cap, /turf/simulated/floor/plasteel{ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Jl" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 }, /obj/structure/alien/resin/wall, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Jm" = ( /obj/structure/punching_bag, /obj/effect/turf_decal/delivery/hollow, @@ -9299,20 +9299,20 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Jo" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Jr" = ( /obj/structure/alien/resin/wall, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ju" = ( /obj/machinery/autolathe, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Jv" = ( /obj/effect/decal/cleanable/dirt, /obj/item/chair{ @@ -9324,7 +9324,7 @@ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Jx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden{ @@ -9333,13 +9333,13 @@ /turf/simulated/floor/plasteel{ icon_state = "whitecorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Jy" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Jz" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4; @@ -9347,14 +9347,14 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JA" = ( /obj/structure/table/glass, /obj/item/storage/backpack/duffel/medical, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JB" = ( /obj/item/clothing/gloves/color/black, /obj/item/stack/tape_roll, @@ -9363,18 +9363,18 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JE" = ( /obj/machinery/door/airlock/external{ req_access_txt = "271" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JG" = ( /obj/structure/flora/ash/rock/style_random, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JI" = ( /obj/structure/railing/cap{ dir = 10 @@ -9383,14 +9383,14 @@ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JJ" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 5 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JK" = ( /obj/effect/turf_decal/delivery/partial, /obj/effect/turf_decal/caution{ @@ -9402,13 +9402,13 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JN" = ( /obj/structure/chair{ dir = 1 @@ -9419,28 +9419,28 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JP" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /obj/machinery/newscaster{ pixel_y = 30 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JQ" = ( /obj/structure/window/reinforced{ dir = 1 }, /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JR" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/structure/sign/poster/official/nanotrasen_logo{ pixel_y = 32 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks{ @@ -9456,7 +9456,7 @@ icon_state = "whitecorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JU" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/power/apc/off_station/empty_charge{ @@ -9483,21 +9483,21 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JW" = ( /obj/machinery/light/small{ dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "JZ" = ( /obj/structure/table/wood, /obj/item/lighter/zippo, /obj/effect/decal/cleanable/dirt, /obj/item/toy/plushie/tabby_cat, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ka" = ( /obj/item/chair{ pixel_y = -3 @@ -9512,14 +9512,14 @@ pixel_x = 32 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Kb" = ( /obj/structure/barricade/wooden/crude{ layer = 4 }, /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Kc" = ( /obj/structure/railing/cap, /obj/effect/decal/cleanable/dirt, @@ -9527,14 +9527,14 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Kd" = ( /obj/structure/table, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "whitecorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ki" = ( /obj/machinery/light/small{ dir = 4 @@ -9543,7 +9543,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Km" = ( /obj/structure/railing{ dir = 6 @@ -9552,13 +9552,13 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Kp" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Kr" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -9573,7 +9573,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Kt" = ( /obj/machinery/light/small{ dir = 4 @@ -9583,34 +9583,34 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ku" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Kv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 }, /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Kx" = ( /obj/structure/closet/toolcloset, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Kz" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KC" = ( /obj/machinery/disposal/deliveryChute, /obj/structure/disposalpipe/trunk{ @@ -9627,7 +9627,7 @@ }, /obj/machinery/door/window/reinforced/normal, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KE" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 @@ -9636,7 +9636,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KG" = ( /obj/structure/railing/cap{ dir = 9 @@ -9650,7 +9650,7 @@ pixel_y = -1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KI" = ( /obj/structure/cable{ d2 = 8; @@ -9658,13 +9658,13 @@ }, /obj/effect/turf_decal/box, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KJ" = ( /obj/structure/railing{ dir = 4 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KN" = ( /obj/structure/railing{ dir = 4 @@ -9674,13 +9674,13 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KO" = ( /turf/simulated/floor/plasteel{ dir = 8; icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KP" = ( /obj/machinery/light{ dir = 4 @@ -9703,7 +9703,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KQ" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -9712,14 +9712,14 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter{ color = "red" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KS" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -9732,11 +9732,11 @@ icon_state = "escapecorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KW" = ( /obj/structure/chair/sofa/bench/right, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "KZ" = ( /obj/machinery/door/poddoor/impassable{ id_tag = "awaycontlockdown" @@ -9747,7 +9747,7 @@ }, /obj/effect/spawner/window/reinforced/tinted/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "La" = ( /obj/structure/closet/crate/freezer, /obj/item/clothing/mask/facehugger{ @@ -9758,12 +9758,12 @@ /turf/simulated/floor/plasteel{ icon_state = "darkbluecorners" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Lb" = ( /obj/structure/rack, /obj/effect/landmark/damageturf, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ld" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks{ @@ -9776,7 +9776,7 @@ pixel_x = 2 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Lf" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9787,7 +9787,7 @@ stat = 2 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Lj" = ( /obj/effect/decal/cleanable/dirt, /obj/item/chair{ @@ -9799,7 +9799,7 @@ icon_state = "whitehall"; dir = 9 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Lk" = ( /obj/machinery/light/small{ dir = 1 @@ -9810,21 +9810,21 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ll" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ln" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" }, /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Lq" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -9833,7 +9833,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Lw" = ( /obj/structure/railing{ dir = 4 @@ -9841,7 +9841,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid4" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Lz" = ( /obj/structure/railing{ dir = 4 @@ -9852,17 +9852,17 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LA" = ( /obj/structure/shuttle/engine/propulsion/burst, /turf/simulated/wall/mineral/titanium, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LC" = ( /obj/structure/largecrate, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid3" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LD" = ( /obj/structure/window/reinforced{ dir = 8 @@ -9872,7 +9872,7 @@ icon_state = "whitecorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LG" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, @@ -9881,7 +9881,7 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 @@ -9895,7 +9895,7 @@ icon_state = "1-4" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LK" = ( /obj/structure/filingcabinet/chestdrawer, /obj/effect/turf_decal/stripes/corner{ @@ -9907,7 +9907,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LL" = ( /obj/structure/table/reinforced, /obj/item/paper_bin{ @@ -9919,7 +9919,7 @@ pixel_x = -7 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LS" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -9929,21 +9929,21 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LY" = ( /obj/structure/railing{ dir = 1 }, /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "LZ" = ( /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/structure/disposaloutlet, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Me" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/structure/railing, @@ -9953,7 +9953,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Mg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -9963,7 +9963,7 @@ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Mk" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -9973,20 +9973,20 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ml" = ( /obj/structure/bed, /obj/item/bedsheet, /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Mn" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Mp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/railing/corner{ @@ -9996,7 +9996,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Mq" = ( /obj/structure/window/reinforced{ dir = 4 @@ -10010,7 +10010,7 @@ dir = 4; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Mt" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -10019,7 +10019,7 @@ icon_state = "black"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Mv" = ( /obj/structure/rack, /obj/item/storage/toolbox/mechanical{ @@ -10034,20 +10034,20 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Mx" = ( /obj/machinery/door/airlock/maintenance_hatch{ req_access_txt = "271" }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "My" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Mz" = ( /obj/item/t_scanner, /obj/structure/table, @@ -10055,7 +10055,7 @@ dir = 8; icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/newscaster{ @@ -10070,7 +10070,7 @@ icon_state = "black"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MG" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -10083,21 +10083,21 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MH" = ( /obj/structure/closet/emcloset, /obj/structure/window/basic{ dir = 4 }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MI" = ( /obj/structure/chair/sofa/bench, /obj/machinery/light/small{ dir = 1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -10106,7 +10106,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MK" = ( /obj/machinery/door_control{ id = "awaykitchen"; @@ -10117,7 +10117,7 @@ icon_state = "black"; dir = 5 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MN" = ( /obj/effect/decal/cleanable/cobweb2, /obj/effect/turf_decal/stripes/corner{ @@ -10127,7 +10127,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MS" = ( /obj/effect/turf_decal/stripes/corner, /obj/machinery/light/small, @@ -10144,7 +10144,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MT" = ( /obj/structure/lattice, /turf/template_noop, @@ -10154,7 +10154,7 @@ dir = 1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MY" = ( /obj/item/kirbyplants, /obj/machinery/atmospherics/unary/vent_scrubber/on, @@ -10163,13 +10163,13 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "MZ" = ( /obj/structure/railing/corner{ dir = 8 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Nb" = ( /obj/structure/chair/sofa/bench{ dir = 1 @@ -10177,7 +10177,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Nc" = ( /obj/structure/cable{ d2 = 8; @@ -10185,7 +10185,7 @@ }, /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Nd" = ( /obj/structure/filingcabinet/chestdrawer, /obj/effect/decal/cleanable/dirt, @@ -10193,7 +10193,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ne" = ( /obj/structure/table/reinforced, /obj/machinery/flasher_button{ @@ -10216,11 +10216,11 @@ icon_state = "black"; dir = 5 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ni" = ( /obj/structure/falsewall/rock_ancient, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Nm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -10236,7 +10236,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Nn" = ( /obj/machinery/camera{ c_tag = "South Cafeteria"; @@ -10250,7 +10250,7 @@ dir = 8; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Np" = ( /obj/structure/chair/sofa/bench{ dir = 4 @@ -10262,7 +10262,7 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Nu" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -10278,12 +10278,12 @@ dir = 5 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Nv" = ( /obj/effect/decal/cleanable/cobweb2, /obj/structure/grille/broken, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Nx" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -10294,7 +10294,7 @@ icon_state = "yellowsiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ny" = ( /obj/structure/alien/resin/wall, /obj/structure/cable{ @@ -10306,7 +10306,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "NC" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -10318,7 +10318,7 @@ pixel_x = 2 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "NE" = ( /obj/machinery/light/small{ active_power_consumption = 0; @@ -10329,7 +10329,7 @@ /obj/effect/decal/cleanable/cobweb2, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "NF" = ( /obj/structure/railing, /obj/effect/turf_decal/delivery/red/partial{ @@ -10339,14 +10339,14 @@ /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "NJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "NM" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -10361,14 +10361,14 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "NS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "NT" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, @@ -10384,14 +10384,14 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "NU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil{ color = "black" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "NZ" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -10407,7 +10407,7 @@ dir = 8; icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Oa" = ( /obj/structure/chair/sofa/bench{ dir = 1 @@ -10416,13 +10416,13 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ob" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid12" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Oc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter{ @@ -10432,7 +10432,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Od" = ( /obj/item/kirbyplants, /obj/effect/decal/cleanable/cobweb, @@ -10440,7 +10440,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Oe" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal{ @@ -10450,18 +10450,18 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Of" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Og" = ( /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Oi" = ( /obj/effect/decal/cleanable/blood/tracks{ color = "red"; @@ -10474,7 +10474,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Oj" = ( /obj/structure/table/glass, /obj/item/storage/fancy/donut_box, @@ -10483,7 +10483,7 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ol" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -10497,7 +10497,7 @@ dir = 1 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Om" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -10507,7 +10507,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "On" = ( /obj/structure/safe/floor{ known_by = list("captain") @@ -10519,7 +10519,7 @@ /obj/item/coin/mythril, /obj/item/coin/adamantine, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Oo" = ( /obj/item/kirbyplants, /obj/machinery/light/small{ @@ -10532,21 +10532,21 @@ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Op" = ( /obj/structure/window/reinforced, /obj/structure/table, /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Oq" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "yellowsiding"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Os" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -10556,7 +10556,7 @@ icon_state = "1-2" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ot" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -10566,13 +10566,13 @@ }, /obj/effect/decal/remains/human, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ou" = ( /obj/structure/rack, /turf/simulated/floor/plasteel{ icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ox" = ( /obj/machinery/light{ active_power_consumption = 0; @@ -10580,7 +10580,7 @@ status = 2 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -10588,7 +10588,7 @@ icon_state = "black"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -10598,10 +10598,10 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OG" = ( /turf/simulated/wall/mineral/titanium, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OL" = ( /obj/structure/railing/cap{ dir = 1 @@ -10611,7 +10611,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OM" = ( /obj/effect/decal/cleanable/cobweb, /obj/item/shard{ @@ -10621,7 +10621,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ON" = ( /turf/template_noop, /area/space/nearstation) @@ -10631,7 +10631,7 @@ icon_state = "black"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OP" = ( /obj/machinery/light/small{ dir = 4 @@ -10642,7 +10642,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OR" = ( /obj/structure/railing{ dir = 10 @@ -10659,7 +10659,7 @@ icon_state = "darkblue"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OT" = ( /obj/effect/turf_decal/delivery/partial{ dir = 4 @@ -10673,13 +10673,13 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OW" = ( /obj/structure/railing{ dir = 10 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OX" = ( /obj/structure/cable{ d1 = 4; @@ -10691,7 +10691,7 @@ color = "green" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "OZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -10700,7 +10700,7 @@ dir = 8; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Pa" = ( /obj/structure/table/glass, /obj/machinery/light/small{ @@ -10710,7 +10710,7 @@ /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Pd" = ( /obj/machinery/light/small{ active_power_consumption = 0; @@ -10719,21 +10719,21 @@ status = 2 }, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Pf" = ( /obj/structure/railing/cap{ dir = 1 }, /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ph" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Pj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/cable{ @@ -10745,7 +10745,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Po" = ( /obj/structure/alien/resin/wall, /obj/effect/decal/cleanable/dirt, @@ -10753,7 +10753,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Pq" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -10761,10 +10761,10 @@ /obj/structure/alien/resin/wall, /obj/machinery/atmospherics/air_sensor, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Pr" = ( /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ps" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -10773,7 +10773,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Pt" = ( /obj/structure/chair/comfy/brown{ dir = 4 @@ -10782,7 +10782,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Pv" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -10791,18 +10791,18 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PA" = ( /turf/simulated/floor/plasteel{ icon_state = "yellowsiding"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/grille, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PE" = ( /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/food/snacks/badrecipe, @@ -10810,7 +10810,7 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PF" = ( /obj/machinery/door/airlock/security{ req_access_txt = "271"; @@ -10820,25 +10820,25 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PK" = ( /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PL" = ( /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PM" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, /obj/effect/landmark/damageturf, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -10851,20 +10851,20 @@ icon_state = "tracks" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PQ" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PS" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid5" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PT" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -10876,7 +10876,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PU" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -10885,7 +10885,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PY" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -10906,19 +10906,19 @@ id_tag = "awayscilock1" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "PZ" = ( /obj/structure/railing{ dir = 8 }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qc" = ( /obj/structure/railing/cap{ dir = 10 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qe" = ( /obj/structure/railing/cap{ dir = 1 @@ -10928,14 +10928,14 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qf" = ( /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qh" = ( /obj/structure/cable{ d1 = 2; @@ -10943,7 +10943,7 @@ icon_state = "2-8" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qj" = ( /obj/machinery/light/small{ active_power_consumption = 0; @@ -10953,11 +10953,11 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qk" = ( /mob/living/simple_animal/hostile/alien, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ql" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -10971,12 +10971,12 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qm" = ( /obj/structure/flora/junglebush, /obj/structure/flora/ausbushes/ywflowers, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qn" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -10988,7 +10988,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qt" = ( /obj/structure/window/reinforced{ dir = 8 @@ -11001,7 +11001,7 @@ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qu" = ( /obj/structure/rack, /obj/item/stack/sheet/mineral/plasma{ @@ -11014,7 +11014,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qv" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 10 @@ -11022,7 +11022,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qx" = ( /obj/structure/table/reinforced, /obj/machinery/door/window{ @@ -11032,7 +11032,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qy" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -11042,7 +11042,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Qz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks{ @@ -11052,7 +11052,7 @@ icon_state = "tracks" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QB" = ( /obj/structure/sign/biohazard{ pixel_y = 32 @@ -11060,7 +11060,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QD" = ( /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, @@ -11069,14 +11069,14 @@ dir = 10; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QE" = ( /obj/structure/table/reinforced, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QF" = ( /obj/structure/railing{ dir = 4 @@ -11087,7 +11087,7 @@ }, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QG" = ( /obj/structure/railing{ dir = 1 @@ -11096,7 +11096,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QI" = ( /obj/structure/railing/cap{ dir = 10 @@ -11105,11 +11105,11 @@ icon_state = "darkbluefull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QK" = ( /obj/machinery/light/small, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QL" = ( /obj/effect/decal/cleanable/glass, /obj/item/shard{ @@ -11117,7 +11117,7 @@ }, /obj/item/stack/rods, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QM" = ( /obj/structure/railing/cap{ dir = 1 @@ -11126,7 +11126,7 @@ dir = 1; icon_state = "blackcorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -11139,45 +11139,45 @@ name = "Cafeteria" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QP" = ( /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel/stairs, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QQ" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 5 }, /turf/simulated/floor/plating/asteroid/ancient, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QS" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QT" = ( /obj/machinery/light/small{ dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QW" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QX" = ( /obj/structure/alien/weeds/node, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "QZ" = ( /obj/structure/alien/resin/wall, /obj/structure/cable{ @@ -11186,7 +11186,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel/stairs, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Rc" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -11210,7 +11210,7 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Rf" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -11223,7 +11223,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Rg" = ( /obj/machinery/door/airlock/freezer{ req_access_txt = "271" @@ -11232,13 +11232,13 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Rh" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid10" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ri" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/blood/splatter{ @@ -11246,7 +11246,7 @@ }, /obj/effect/decal/remains/human, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Rl" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -11254,7 +11254,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/stairs, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ro" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -11272,7 +11272,7 @@ icon_state = "cautioncorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Rr" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -11281,7 +11281,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ru" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -11290,14 +11290,14 @@ dir = 10 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Rv" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "RA" = ( /obj/structure/flora/rock, /turf/simulated/floor/engine/vacuum, @@ -11306,7 +11306,7 @@ /obj/structure/table/reinforced, /obj/structure/alien/egg/burst, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "RD" = ( /obj/machinery/door/airlock/multi_tile/glass{ req_access_txt = "271" @@ -11317,20 +11317,20 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "RF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "RH" = ( /obj/machinery/kitchen_machine/oven, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "RI" = ( /obj/structure/railing/cap{ dir = 8 @@ -11339,7 +11339,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "RK" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -11348,7 +11348,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "RN" = ( /obj/structure/sign/radiation/rad_area{ pixel_y = 32 @@ -11359,7 +11359,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "RQ" = ( /obj/effect/turf_decal/delivery/hollow, /obj/machinery/porta_turret{ @@ -11368,35 +11368,35 @@ lethal = 1 }, /turf/simulated/floor/bluegrid, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "RU" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 8 }, /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sa" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sb" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sc" = ( /obj/machinery/computer/monitor/secret{ dir = 4 }, /obj/structure/cable, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -11410,7 +11410,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sg" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -11423,7 +11423,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Si" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/xeno{ @@ -11433,7 +11433,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sj" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -11442,28 +11442,28 @@ icon_state = "black"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sk" = ( /obj/structure/flora/ausbushes/fernybush, /obj/structure/flora/ausbushes/ppflowers, /turf/simulated/floor/grass, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sm" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "whitehall"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sp" = ( /mob/living/simple_animal/cockroach, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sq" = ( /turf/simulated/floor/plasteel{ icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "St" = ( /obj/structure/table/reinforced, /obj/machinery/door/window, @@ -11475,24 +11475,24 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Su" = ( /obj/structure/closet/crate, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sv" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid10" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sx" = ( /obj/effect/decal/cleanable/greenglow, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Sz" = ( /obj/effect/landmark/damageturf, /obj/structure/cable{ @@ -11504,7 +11504,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "SG" = ( /obj/structure/railing{ dir = 4 @@ -11514,7 +11514,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "SI" = ( /obj/structure/table/glass, /obj/effect/decal/cleanable/dirt, @@ -11524,14 +11524,14 @@ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "SL" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 }, /obj/structure/alien/resin/wall, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "SO" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/structure/railing, @@ -11539,7 +11539,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ST" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -11554,7 +11554,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "SV" = ( /obj/structure/chair/stool/bar{ dir = 8 @@ -11563,7 +11563,7 @@ dir = 8; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tc" = ( /obj/machinery/computer{ dir = 4 @@ -11572,7 +11572,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Td" = ( /obj/structure/weightmachine/stacklifter, /obj/effect/turf_decal/delivery/hollow, @@ -11580,7 +11580,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Te" = ( /obj/machinery/shieldwallgen{ locked = 0; @@ -11600,7 +11600,7 @@ }, /obj/effect/turf_decal/box, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tf" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -11611,7 +11611,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ti" = ( /obj/machinery/door/airlock/command/glass{ req_access_txt = "271"; @@ -11626,7 +11626,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tm" = ( /obj/structure/railing/cap{ dir = 9 @@ -11636,7 +11636,7 @@ icon_state = "whitehall"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tn" = ( /obj/structure/cable{ d1 = 1; @@ -11651,7 +11651,7 @@ id = "mo19rdoffice" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tr" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/alien, @@ -11659,7 +11659,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tu" = ( /obj/structure/railing/corner{ dir = 8 @@ -11668,7 +11668,7 @@ dir = 8; icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tv" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -11677,7 +11677,7 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tw" = ( /obj/machinery/light/small{ active_power_consumption = 0; @@ -11687,7 +11687,7 @@ }, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tx" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -11696,14 +11696,14 @@ dir = 1; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Tz" = ( /obj/structure/chair/office/dark, /turf/simulated/floor/plasteel{ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TB" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -11719,14 +11719,14 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TD" = ( /obj/structure/chair/comfy/corp, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TF" = ( /obj/structure/cable{ d1 = 1; @@ -11736,7 +11736,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -11753,14 +11753,14 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TK" = ( /obj/structure/bed, /obj/item/bedsheet, /obj/effect/decal/cleanable/cobweb, /obj/item/toy/plushie/voxplushie, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -11770,7 +11770,7 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TS" = ( /obj/machinery/reagentgrinder, /obj/structure/table, @@ -11778,7 +11778,7 @@ icon_state = "whitecorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TW" = ( /obj/structure/railing/cap{ dir = 1 @@ -11788,7 +11788,7 @@ icon_state = "yellowsiding"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TY" = ( /obj/structure/sign/biohazard{ pixel_y = -32 @@ -11806,7 +11806,7 @@ icon_state = "1-8" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "TZ" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, @@ -11815,7 +11815,7 @@ dir = 8; icon_state = "cautioncorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ua" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/office/dark{ @@ -11825,7 +11825,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ub" = ( /obj/structure/filingcabinet, /obj/structure/sign/poster/contraband/fun_police{ @@ -11835,7 +11835,7 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ue" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -11847,7 +11847,7 @@ dir = 4; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ug" = ( /obj/structure/chair, /obj/machinery/light/small{ @@ -11857,7 +11857,7 @@ icon_state = "yellowsiding"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ul" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 @@ -11873,7 +11873,7 @@ color = "red" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Un" = ( /obj/item/shard{ icon_state = "medium" @@ -11883,14 +11883,14 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Up" = ( /obj/item/chair{ pixel_y = 1; dir = 4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ur" = ( /obj/structure/cable{ d1 = 2; @@ -11898,7 +11898,7 @@ icon_state = "2-4" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ut" = ( /obj/item/chair{ dir = 4; @@ -11909,7 +11909,7 @@ icon_state = "black"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Uu" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -11922,7 +11922,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Uv" = ( /obj/machinery/flasher{ pixel_x = 28 @@ -11937,7 +11937,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Uz" = ( /obj/structure/barricade/wooden/crude{ layer = 4 @@ -11953,7 +11953,7 @@ req_access_txt = "271" }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UA" = ( /obj/structure/table/glass/reinforced/plastitanium, /obj/machinery/computer/id_upgrader, @@ -11961,7 +11961,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UB" = ( /obj/structure/weightmachine/weightlifter, /obj/effect/turf_decal/delivery/hollow, @@ -11974,30 +11974,30 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UD" = ( /mob/living/simple_animal/hostile/alien/drone, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UG" = ( /obj/structure/rack, /obj/effect/decal/cleanable/cobweb2, /obj/item/stack/cable_coil, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UH" = ( /obj/structure/railing/cap{ dir = 6 }, /turf/simulated/floor/plasteel/stairs, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UI" = ( /obj/structure/railing{ dir = 4 @@ -12013,7 +12013,7 @@ icon_state = "yellowsiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UK" = ( /obj/structure/railing{ dir = 10 @@ -12023,7 +12023,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UO" = ( /obj/structure/lattice, /obj/item/shard{ @@ -12036,7 +12036,7 @@ dir = 1 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UV" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -12046,12 +12046,12 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UX" = ( /obj/structure/alien/resin/wall, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "UZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -12060,11 +12060,11 @@ dir = 6 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Va" = ( /obj/machinery/door/airlock/maintenance_hatch, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vf" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -12073,7 +12073,7 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vg" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 @@ -12082,7 +12082,7 @@ dir = 4; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vh" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -12091,7 +12091,7 @@ icon_state = "blackcorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vi" = ( /obj/effect/turf_decal/delivery/white/partial, /obj/machinery/atmospherics/pipe/simple/hidden{ @@ -12106,18 +12106,18 @@ /turf/simulated/floor/plasteel{ icon_state = "whitecorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vl" = ( /obj/structure/railing, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vm" = ( /obj/structure/railing/corner{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vo" = ( /obj/structure/closet/crate/can, /obj/effect/decal/cleanable/cobweb2, @@ -12126,13 +12126,13 @@ dir = 5; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vs" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kitchen/utensil/fork, /obj/structure/table, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -12144,7 +12144,7 @@ }, /obj/structure/table, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vx" = ( /obj/machinery/light/small{ dir = 1 @@ -12153,14 +12153,14 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Vy" = ( /obj/machinery/floodlight, /turf/simulated/floor/plasteel{ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VC" = ( /obj/structure/window/reinforced{ dir = 8 @@ -12173,14 +12173,14 @@ icon_state = "yellowsiding"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VG" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "caution"; dir = 9 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VH" = ( /obj/structure/cable{ d1 = 1; @@ -12188,7 +12188,7 @@ icon_state = "1-2" }, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VK" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -12201,7 +12201,7 @@ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VL" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 @@ -12212,7 +12212,7 @@ /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VM" = ( /obj/structure/rack, /obj/item/flashlight/flare, @@ -12222,18 +12222,18 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VN" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, /turf/simulated/wall/r_wall, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VO" = ( /obj/machinery/computer, /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VR" = ( /obj/structure/chair{ dir = 1 @@ -12242,7 +12242,7 @@ dir = 10; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VS" = ( /obj/structure/disposalpipe/segment{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; @@ -12255,12 +12255,12 @@ icon_state = "1-8" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VT" = ( /obj/structure/bed, /obj/structure/closet/crate/secure/loot, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/xeno{ @@ -12270,7 +12270,7 @@ icon_state = "darkbluefull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VV" = ( /obj/structure/railing{ dir = 4 @@ -12283,7 +12283,7 @@ icon_state = "yellowsiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "VX" = ( /obj/machinery/shower{ dir = 8 @@ -12294,17 +12294,17 @@ dir = 4 }, /turf/simulated/floor/noslip, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wb" = ( /obj/effect/decal/cleanable/blood/xeno{ color = "green" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wd" = ( /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "We" = ( /obj/machinery/door/airlock/maintenance_hatch{ req_access_txt = "271" @@ -12314,12 +12314,12 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wg" = ( /obj/structure/lattice, /obj/machinery/door/firedoor/closed, /turf/template_noop, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wi" = ( /obj/effect/decal/cleanable/blood/splatter{ color = "red" @@ -12328,20 +12328,20 @@ icon_state = "black"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wl" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid6" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wn" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wo" = ( /obj/machinery/light/small{ dir = 4 @@ -12354,24 +12354,24 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wp" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel/stairs, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wq" = ( /turf/simulated/floor/plasteel{ icon_state = "yellowsiding"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ws" = ( /turf/simulated/floor/plasteel{ icon_state = "whitehall"; dir = 5 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wv" = ( /obj/structure/railing{ dir = 8 @@ -12381,7 +12381,7 @@ }, /obj/structure/table, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Wz" = ( /obj/machinery/light/small, /obj/structure/table, @@ -12389,7 +12389,7 @@ dir = 10; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WE" = ( /obj/structure/railing, /obj/item/cigbutt{ @@ -12404,7 +12404,7 @@ }, /obj/item/reagent_containers/food/drinks/cans/beer, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -12416,14 +12416,14 @@ icon_state = "caution"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WG" = ( /obj/machinery/door/airlock/vault{ locked = 1; req_access_txt = "271" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WH" = ( /obj/effect/spawner/lootdrop/maintenance, /obj/structure/table, @@ -12431,14 +12431,14 @@ icon_state = "whitecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WJ" = ( /obj/item/kirbyplants, /obj/structure/railing{ dir = 9 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WK" = ( /obj/effect/turf_decal/stripes/asteroid/corner{ dir = 1 @@ -12456,18 +12456,18 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WN" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/carpet, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WS" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "escapecorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WU" = ( /obj/machinery/light{ active_power_consumption = 0; @@ -12482,7 +12482,7 @@ icon_state = "2-4" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WW" = ( /obj/structure/cable{ d1 = 1; @@ -12493,7 +12493,7 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "WX" = ( /obj/item/stack/rods, /turf/template_noop, @@ -12506,7 +12506,7 @@ color = "red" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xb" = ( /obj/structure/disposalpipe/segment{ desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; @@ -12517,14 +12517,14 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xc" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "black"; dir = 6 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xd" = ( /obj/effect/turf_decal/delivery/white/partial{ dir = 1 @@ -12533,7 +12533,7 @@ icon_state = "whitehall"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xg" = ( /obj/structure/railing{ dir = 4 @@ -12543,7 +12543,7 @@ icon_state = "yellowsiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xi" = ( /obj/machinery/computer, /obj/structure/window/reinforced{ @@ -12553,7 +12553,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xl" = ( /obj/item/shard{ icon_state = "medium" @@ -12574,7 +12574,7 @@ dir = 8; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xp" = ( /obj/structure/chair{ dir = 8 @@ -12584,7 +12584,7 @@ dir = 6; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xq" = ( /obj/structure/cable{ d1 = 4; @@ -12595,7 +12595,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xr" = ( /obj/machinery/atmospherics/unary/thermomachine/freezer/on{ dir = 1 @@ -12603,7 +12603,7 @@ /turf/simulated/floor/plating{ icon_state = "asteroidplating" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xs" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -12615,7 +12615,7 @@ icon_state = "tracks" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xv" = ( /obj/machinery/reagentgrinder, /obj/item/reagent_containers/food/drinks/shaker{ @@ -12624,7 +12624,7 @@ }, /obj/structure/table, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xw" = ( /obj/machinery/processor{ dir = 4 @@ -12633,7 +12633,7 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Xz" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -12644,13 +12644,13 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XB" = ( /obj/structure/railing{ dir = 10 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XD" = ( /obj/structure/chair/sofa/bench/right{ dir = 8 @@ -12659,13 +12659,13 @@ icon_state = "escape"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XF" = ( /obj/structure/table/reinforced, /obj/item/taperecorder{ @@ -12675,7 +12675,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XH" = ( /obj/structure/railing{ dir = 1 @@ -12690,7 +12690,7 @@ dir = 4; icon_state = "green" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XK" = ( /obj/machinery/camera{ c_tag = "Exterior Hangar"; @@ -12698,7 +12698,7 @@ network = list("MO19") }, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XL" = ( /obj/structure/window/reinforced{ dir = 4 @@ -12708,7 +12708,7 @@ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XM" = ( /obj/structure/filingcabinet, /obj/structure/sign/mech{ @@ -12719,7 +12719,7 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XN" = ( /obj/machinery/reagentgrinder, /obj/machinery/light/small{ @@ -12734,7 +12734,7 @@ icon_state = "showroomfloor"; temperature = 273.15 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XO" = ( /obj/structure/railing/cap{ dir = 4 @@ -12742,7 +12742,7 @@ /turf/simulated/floor/plasteel/stairs{ dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XR" = ( /obj/structure/chair{ dir = 1 @@ -12755,7 +12755,7 @@ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XU" = ( /obj/item/airlock_electronics, /obj/item/stack/cable_coil, @@ -12763,14 +12763,14 @@ /turf/simulated/floor/plasteel{ icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XW" = ( /obj/structure/closet/l3closet/general, /turf/simulated/floor/plasteel{ icon_state = "whitecorner"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XX" = ( /obj/structure/closet/crate/can, /obj/effect/spawner/lootdrop/maintenance, @@ -12778,13 +12778,13 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "XY" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "whitehall" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -12794,7 +12794,7 @@ icon_state = "blackcorner"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Ye" = ( /obj/structure/window/reinforced{ dir = 4 @@ -12805,11 +12805,11 @@ /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yh" = ( /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yi" = ( /obj/structure/railing/cap, /obj/effect/turf_decal/stripes/corner{ @@ -12825,7 +12825,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yj" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/engineering/glass{ @@ -12833,7 +12833,7 @@ name = "Engineering Division" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery/white/partial, @@ -12841,7 +12841,7 @@ icon_state = "black"; dir = 1 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yl" = ( /obj/structure/mirror{ pixel_x = -28 @@ -12853,7 +12853,7 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yt" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -12866,7 +12866,7 @@ icon_state = "escapecorner"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yu" = ( /obj/structure/toilet{ pixel_y = 8 @@ -12876,7 +12876,7 @@ /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yw" = ( /obj/machinery/chem_master, /obj/effect/decal/cleanable/dirt, @@ -12884,13 +12884,13 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yy" = ( /obj/structure/chair/office/dark{ dir = 1 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Yz" = ( /obj/machinery/light/small{ active_power_consumption = 0; @@ -12908,7 +12908,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YB" = ( /obj/machinery/door/poddoor/impassable{ id_tag = "awaymlock" @@ -12919,7 +12919,7 @@ name = "Medical Ward" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -12934,18 +12934,18 @@ pixel_x = 2 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YJ" = ( /obj/structure/table, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YK" = ( /obj/structure/railing{ dir = 8 }, /mob/living/simple_animal/hostile/alien/sentinel, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YL" = ( /obj/structure/railing{ dir = 4 @@ -12961,14 +12961,14 @@ icon_state = "yellowsiding"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YM" = ( /obj/machinery/door/airlock/engineering/glass{ req_access_txt = "271"; name = "Workshop" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YQ" = ( /obj/structure/railing{ dir = 8 @@ -12981,7 +12981,7 @@ icon_state = "yellowsiding"; dir = 4 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YS" = ( /obj/structure/alien/resin/wall, /obj/structure/cable{ @@ -12990,7 +12990,7 @@ icon_state = "1-2" }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YX" = ( /obj/structure/railing, /obj/effect/turf_decal/delivery/red/partial{ @@ -13002,7 +13002,7 @@ icon_state = "black"; dir = 10 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "YY" = ( /obj/structure/chair{ dir = 4 @@ -13017,18 +13017,18 @@ icon_state = "caution"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Za" = ( /obj/structure/holosign/barrier/engineering, /obj/effect/landmark/damageturf, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zb" = ( /obj/machinery/door/airlock/external/glass{ locked = 1 }, /turf/simulated/floor/catwalk, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zf" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/hostile/alien/queen/large{ @@ -13039,7 +13039,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -13054,7 +13054,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zh" = ( /obj/effect/decal/cleanable/molten_object/large, /obj/effect/decal/cleanable/glass, @@ -13066,14 +13066,14 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zj" = ( /obj/effect/turf_decal/delivery/white/partial{ dir = 1 @@ -13081,7 +13081,7 @@ /turf/simulated/floor/plasteel{ icon_state = "black" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zk" = ( /obj/machinery/atmospherics/unary/tank/air{ dir = 8 @@ -13095,7 +13095,7 @@ icon_state = "yellowsiding"; dir = 5 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zn" = ( /obj/machinery/light/small{ dir = 8 @@ -13103,7 +13103,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zp" = ( /obj/effect/spawner/lootdrop/maintenance, /obj/structure/table, @@ -13111,7 +13111,7 @@ dir = 10; icon_state = "escape" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zq" = ( /obj/structure/rack, /obj/item/taperecorder{ @@ -13119,7 +13119,7 @@ }, /obj/item/storage/secure/briefcase, /turf/simulated/floor/carpet/royalblue, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zu" = ( /obj/machinery/computer, /obj/structure/window/reinforced{ @@ -13132,7 +13132,7 @@ dir = 1; icon_state = "caution" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -13143,14 +13143,14 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "Zz" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZA" = ( /obj/structure/railing{ dir = 1 @@ -13164,7 +13164,7 @@ /turf/simulated/floor/plasteel{ icon_state = "whitecorner" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZC" = ( /obj/structure/railing, /obj/effect/turf_decal/stripes/asteroid/line, @@ -13173,21 +13173,21 @@ }, /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/plating/asteroid/airless, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZE" = ( /obj/machinery/door/airlock/external/glass, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZI" = ( /obj/effect/decal/cleanable/cobweb2, /obj/structure/table, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZK" = ( /obj/machinery/light/small, /mob/living/simple_animal/cockroach, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZL" = ( /obj/structure/alien/resin/wall, /obj/structure/cable{ @@ -13199,7 +13199,7 @@ dir = 5; icon_state = "cafeteria" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZN" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -13209,7 +13209,7 @@ icon_state = "darkfull"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZO" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -13221,7 +13221,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/engine, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZP" = ( /obj/machinery/door/airlock/medical/glass{ req_access_txt = "271" @@ -13233,7 +13233,7 @@ icon_state = "white"; dir = 8 }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZR" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/space_heater, @@ -13241,7 +13241,7 @@ dir = 8 }, /turf/simulated/floor/plating, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZU" = ( /obj/machinery/kitchen_machine/microwave{ pixel_x = -3; @@ -13249,13 +13249,13 @@ }, /obj/structure/table, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZV" = ( /obj/structure/flora/ausbushes/fullgrass, /turf/simulated/floor/plating/asteroid/airless{ icon_state = "asteroid5" }, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) "ZX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -13266,7 +13266,7 @@ pixel_y = -4 }, /turf/simulated/floor/plasteel, -/area/ruin/space/unpowered) +/area/ruin/space/moonbase19) (1,1,1) = {" aa diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm index d8e6c1eb9300..0afd68199276 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm @@ -1506,7 +1506,7 @@ /turf/simulated/floor/plating/asteroid/airless, /area/ruin/unpowered/syndicate_space_base/inner) "ig" = ( -/obj/structure/kitchenspike, +/obj/machinery/kitchen_machine/candy_maker, /turf/simulated/floor/plasteel{ icon_state = "cafeteria" }, @@ -5033,8 +5033,8 @@ }, /area/ruin/unpowered/syndicate_space_base/dormitories) "BJ" = ( -/obj/machinery/kitchen_machine/candy_maker, /obj/machinery/light, +/obj/machinery/kitchen_machine/oven, /turf/simulated/floor/plasteel{ icon_state = "cafeteria" }, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm index 7f3673136216..b1d1eacd3ca9 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm @@ -1075,6 +1075,7 @@ /area/ruin/space/derelict/crew_quarters) "cK" = ( /obj/structure/table, +/obj/item/soap/deluxe/laundry, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "blue" @@ -1191,6 +1192,7 @@ "cZ" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, +/obj/item/soap/deluxe/laundry, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "blue" diff --git a/_maps/map_files/generic/Lavaland.dmm b/_maps/map_files/generic/Lavaland.dmm index 81202a08678b..1ec95e5fb41d 100644 --- a/_maps/map_files/generic/Lavaland.dmm +++ b/_maps/map_files/generic/Lavaland.dmm @@ -1,6 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/simulated/wall/indestructible/boss, +/turf/simulated/wall/boss, /area/lavaland/surface/outdoors) "ab" = ( /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, @@ -22,12 +22,14 @@ /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "af" = ( /obj/structure/necropolis_gate/legion_gate, /obj/structure/necropolis_arch, /obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors) "ag" = ( @@ -41,6 +43,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ah" = ( @@ -54,6 +57,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ai" = ( @@ -370,6 +374,17 @@ }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"bc" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "be" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -1025,10 +1040,12 @@ /area/mine/outpost/hallway/east) "cu" = ( /obj/item/pickaxe, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cv" = ( /obj/structure/ore_box, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "cw" = ( @@ -1435,6 +1452,16 @@ }, /turf/simulated/floor/plating, /area/mine/outpost/quartermaster) +"dr" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "ds" = ( /obj/machinery/light/small{ dir = 8 @@ -2543,6 +2570,13 @@ icon_state = "darkfull" }, /area/mine/outpost/storage) +"ft" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "fu" = ( /obj/effect/turf_decal/delivery, /obj/effect/spawner/random_spawners/cobweb_right_rare, @@ -2768,21 +2802,10 @@ "fQ" = ( /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/unexplored/danger) -"fR" = ( -/turf/simulated/mineral/random/high_chance/volcanic, -/area/lavaland/surface/outdoors/unexplored) "fS" = ( +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/unexplored) -"fT" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/obj/structure/stone_tile/block{ - dir = 4 - }, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "fU" = ( /obj/machinery/door/airlock/titanium{ id_tag = "s_docking_airlock"; @@ -2973,10 +2996,6 @@ }, /turf/simulated/floor/plasteel, /area/mine/outpost/mechbay) -"go" = ( -/obj/structure/stone_tile/block, -/turf/simulated/floor/plating/lava/smooth/mapping_lava, -/area/lavaland/surface/outdoors) "gp" = ( /obj/machinery/door/airlock/maintenance{ name = "Central Hallway Maintence" @@ -3007,6 +3026,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "gs" = ( @@ -3020,6 +3040,7 @@ dir = 4 }, /obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "gt" = ( @@ -3082,6 +3103,7 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "gB" = ( @@ -3094,6 +3116,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "gC" = ( @@ -3135,6 +3158,7 @@ dir = 8 }, /obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "gH" = ( @@ -3198,12 +3222,6 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) -"gM" = ( -/obj/structure/stone_tile/block{ - dir = 4 - }, -/turf/simulated/floor/plating/lava/smooth/mapping_lava, -/area/lavaland/surface/outdoors) "gN" = ( /obj/machinery/hologram/holopad, /obj/structure/cable{ @@ -3216,12 +3234,6 @@ dir = 8 }, /area/mine/outpost/medbay) -"gO" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/turf/simulated/floor/plating/lava/smooth/mapping_lava, -/area/lavaland/surface/outdoors) "gP" = ( /obj/structure/stone_tile/slab, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, @@ -3231,6 +3243,7 @@ /obj/structure/stone_tile/block{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "hf" = ( @@ -3263,10 +3276,10 @@ }, /turf/simulated/floor/mineral/titanium, /area/shuttle/siberia) -"hs" = ( -/obj/structure/stone_tile/block{ - dir = 1 - }, +"hm" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "hv" = ( @@ -3301,6 +3314,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"hB" = ( +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "hC" = ( /obj/structure/railing{ dir = 1 @@ -3308,6 +3327,14 @@ /obj/structure/lattice/catwalk/mining, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/outpost/catwalk) +"hF" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "hH" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -3316,6 +3343,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "hJ" = ( @@ -3347,6 +3375,11 @@ }, /turf/simulated/floor/carpet, /area/mine/outpost/quartermaster) +"hZ" = ( +/obj/structure/stone_tile/block/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "ic" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/unary/vent_scrubber/on, @@ -3387,6 +3420,11 @@ icon_state = "darkfull" }, /area/mine/outpost/airlock) +"il" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "im" = ( /obj/structure/grille/broken, /obj/structure/sign/poster/random{ @@ -3442,6 +3480,7 @@ dir = 1 }, /obj/structure/stone_tile/block/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "iK" = ( @@ -3514,6 +3553,7 @@ /obj/structure/stone_tile{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ji" = ( @@ -3545,6 +3585,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "jl" = ( @@ -3558,6 +3599,7 @@ dir = 8 }, /obj/structure/stone_tile/center/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "jm" = ( @@ -3571,6 +3613,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "jn" = ( @@ -3622,6 +3665,21 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"jC" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"jD" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "jF" = ( /obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/surrounding_tile{ @@ -3631,6 +3689,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "jH" = ( @@ -3642,6 +3701,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "jJ" = ( @@ -3673,6 +3733,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "jN" = ( @@ -3684,6 +3745,7 @@ }, /obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/center/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "jP" = ( @@ -3722,6 +3784,7 @@ /area/mine/outpost/airlock) "kg" = ( /obj/structure/fluff/drake_statue, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "kj" = ( @@ -3731,10 +3794,12 @@ /obj/structure/stone_tile/block/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "kl" = ( /obj/structure/fluff/drake_statue/falling, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "km" = ( @@ -3753,6 +3818,7 @@ dir = 1 }, /obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "kt" = ( @@ -3762,6 +3828,10 @@ /obj/structure/lattice/catwalk/mining, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/outpost/catwalk) +"kw" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors) "ky" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -3784,6 +3854,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "kD" = ( @@ -3797,6 +3868,7 @@ dir = 8 }, /obj/structure/stone_tile/center, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "kH" = ( @@ -3808,6 +3880,7 @@ dir = 4 }, /obj/structure/stone_tile/center/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "kI" = ( @@ -3824,6 +3897,7 @@ dir = 1 }, /obj/structure/stone_tile/center, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "kM" = ( @@ -3838,10 +3912,6 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"kR" = ( -/obj/structure/stone_tile/slab/cracked, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "kS" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, @@ -3850,6 +3920,16 @@ }, /turf/simulated/floor/plasteel, /area/mine/outpost/mechbay) +"kT" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "le" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -3858,6 +3938,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lf" = ( @@ -3871,6 +3952,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lh" = ( @@ -3886,6 +3968,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ll" = ( @@ -3913,6 +3996,8 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lq" = ( @@ -3920,6 +4005,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lr" = ( @@ -3927,6 +4013,8 @@ /obj/structure/stone_tile/block{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ls" = ( @@ -3942,6 +4030,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lv" = ( @@ -3952,6 +4041,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lw" = ( @@ -3971,6 +4061,7 @@ /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lB" = ( @@ -3989,6 +4080,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lE" = ( @@ -3998,6 +4090,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lF" = ( @@ -4010,6 +4103,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lG" = ( @@ -4017,6 +4111,7 @@ dir = 1 }, /obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lH" = ( @@ -4063,24 +4158,16 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lQ" = ( /obj/structure/stone_tile/surrounding/cracked{ dir = 6 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) -"lR" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/cracked, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "lS" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -4091,6 +4178,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lT" = ( @@ -4107,6 +4195,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lZ" = ( @@ -4116,6 +4205,7 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "ma" = ( @@ -4125,6 +4215,7 @@ /obj/structure/stone_tile/block{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mb" = ( @@ -4135,8 +4226,18 @@ /obj/structure/stone_tile/block{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) +"md" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "mi" = ( /obj/machinery/computer/security{ dir = 4; @@ -4159,6 +4260,7 @@ /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ml" = ( @@ -4166,6 +4268,7 @@ dir = 8 }, /obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "mn" = ( @@ -4173,6 +4276,7 @@ /obj/structure/stone_tile/block{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mp" = ( @@ -4287,13 +4391,6 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"mE" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile{ - dir = 4 - }, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "mF" = ( /obj/structure/stone_tile/block/cracked, /obj/structure/stone_tile{ @@ -4302,6 +4399,7 @@ /obj/structure/stone_tile{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mG" = ( @@ -4311,6 +4409,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mH" = ( @@ -4330,6 +4429,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mJ" = ( @@ -4358,6 +4458,7 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mM" = ( @@ -4372,6 +4473,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mO" = ( @@ -4381,6 +4483,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mP" = ( @@ -4528,6 +4631,14 @@ }, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors) +"nr" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "nw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable{ @@ -4541,6 +4652,16 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) +"nB" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "nI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/lattice/catwalk/mining, @@ -4652,6 +4773,13 @@ }, /turf/simulated/floor/plating, /area/mine/outpost/production) +"or" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "ox" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, @@ -4747,6 +4875,16 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"pn" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "pq" = ( /turf/simulated/floor/mineral/titanium, /area/shuttle/siberia) @@ -4812,10 +4950,28 @@ icon_state = "darkpurplecorners" }, /area/mine/outpost/hallway/west) +"pT" = ( +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "qb" = ( /obj/structure/girder, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"qk" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"qo" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "qv" = ( /obj/structure/table/reinforced, /turf/simulated/floor/plasteel{ @@ -4893,6 +5049,13 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"rb" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "rd" = ( /obj/structure/closet/secure_closet/brig/gulag, /obj/effect/decal/cleanable/dirt, @@ -4981,6 +5144,13 @@ /obj/effect/baseturf_helper/asteroid/basalt, /turf/simulated/floor/mineral/titanium, /area/shuttle/mining) +"rP" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "rS" = ( /obj/structure/cable{ d1 = 4; @@ -4992,6 +5162,21 @@ icon_state = "brown" }, /area/mine/laborcamp) +"rW" = ( +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"sg" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "sk" = ( /obj/machinery/door/firedoor, /obj/effect/spawner/window/reinforced/grilled, @@ -5090,10 +5275,35 @@ icon_state = "darkfull" }, /area/mine/outpost/hallway/west) +"sW" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ta" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "tb" = ( /obj/effect/spawner/window/shuttle, /turf/simulated/floor/plating, /area/shuttle/mining) +"td" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "tj" = ( /obj/effect/decal/cleanable/ash, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, @@ -5255,6 +5465,11 @@ icon_state = "darkyellowcorners" }, /area/mine/outpost/hallway/west) +"ux" = ( +/obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "uB" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 @@ -5288,6 +5503,16 @@ }, /turf/simulated/floor/plating, /area/mine/outpost/airlock) +"uR" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "uT" = ( /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) @@ -5363,6 +5588,14 @@ /obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"vo" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "vq" = ( /obj/structure/disposalpipe/segment/corner{ dir = 1 @@ -5517,6 +5750,13 @@ /obj/structure/lattice/catwalk/mining, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"wd" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "we" = ( /obj/structure/mopbucket/full, /obj/item/mop, @@ -5553,6 +5793,13 @@ /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plating, /area/mine/outpost/cafeteria) +"wr" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "wy" = ( /obj/effect/spawner/random_spawners/dirt_maybe, /obj/structure/sign/fire{ @@ -5560,6 +5807,12 @@ }, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"wA" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/structure/stone_tile/slab/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "wD" = ( /obj/effect/decal/remains/human, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, @@ -5642,6 +5895,11 @@ /obj/structure/shuttle/engine/propulsion, /turf/simulated/floor/plating/lavaland_air, /area/shuttle/siberia) +"xE" = ( +/obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "xG" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -5654,6 +5912,20 @@ icon_state = "darkpurplecorners" }, /area/mine/outpost/hallway/west) +"xJ" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) +"xN" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/mineral/random/volcanic, +/area/lavaland/surface/outdoors/unexplored/danger) "xP" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -5688,6 +5960,11 @@ /obj/effect/spawner/random_spawners/cobweb_left_rare, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"ya" = ( +/obj/effect/mapping_helpers/no_lava, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/wall/boss, +/area/lavaland/surface/outdoors) "yb" = ( /obj/structure/table/glass, /obj/machinery/firealarm{ @@ -5765,6 +6042,9 @@ icon_state = "darkfull" }, /area/mine/outpost/engineering) +"ys" = ( +/turf/simulated/wall/boss, +/area/lavaland/surface/outdoors/unexplored/danger) "yw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -5823,6 +6103,14 @@ /obj/effect/decal/cleanable/spiderling_remains, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"yW" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "yY" = ( /obj/machinery/suit_storage_unit/lavaland, /obj/structure/extinguisher_cabinet{ @@ -5953,6 +6241,11 @@ icon_state = "darkyellowcorners" }, /area/mine/outpost/hallway/east) +"zW" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "zY" = ( /obj/structure/chair{ dir = 1 @@ -5965,6 +6258,16 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"zZ" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Ab" = ( /obj/machinery/light_switch{ name = "custom placement"; @@ -6014,6 +6317,10 @@ }, /turf/simulated/floor/plasteel/dark, /area/mine/outpost/comms) +"Ao" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/wall/indestructible/boss/see_through, +/area/lavaland/surface/outdoors) "At" = ( /obj/effect/spawner/random_spawners/dirt_maybe, /obj/structure/cable{ @@ -6095,6 +6402,14 @@ icon_state = "darkfull" }, /area/mine/outpost/lockers) +"AW" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "AY" = ( /obj/effect/mapping_helpers/no_lava, /turf/simulated/mineral/volcanic/lava_land_surface, @@ -6172,12 +6487,33 @@ /obj/effect/spawner/random_spawners/wall_rusted_maybe, /turf/simulated/wall, /area/mine/outpost/hallway/east) +"BL" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) +"BM" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "BP" = ( /obj/structure/chair/comfy/shuttle{ dir = 8 }, /turf/simulated/floor/mineral/plastitanium/red, /area/shuttle/siberia) +"BX" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/wall/boss, +/area/lavaland/surface/outdoors/unexplored/danger) "BY" = ( /obj/structure/lattice/catwalk/mining, /obj/structure/marker_beacon/dock_marker, @@ -6202,6 +6538,16 @@ "Cf" = ( /turf/simulated/floor/mineral/titanium, /area/shuttle/mining) +"Ci" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Cl" = ( /obj/structure/table/reinforced, /obj/item/clothing/head/that, @@ -6326,6 +6672,13 @@ /obj/structure/closet/crate, /turf/simulated/floor/mineral/titanium, /area/shuttle/siberia) +"CS" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "CT" = ( /obj/effect/spawner/window, /turf/simulated/floor/plating, @@ -6467,6 +6820,13 @@ icon_state = "darkfull" }, /area/mine/outpost/hallway/west) +"DR" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "DT" = ( /obj/machinery/computer/shuttle/labor/one_way, /obj/effect/decal/cleanable/cobweb, @@ -6547,6 +6907,19 @@ }, /turf/simulated/floor/plating, /area/mine/outpost/quartermaster) +"Eq" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Ez" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -6602,6 +6975,14 @@ /obj/item/toy/figure/crew/miner, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"EQ" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Fa" = ( /obj/structure/table, /obj/item/lighter/random, @@ -6656,6 +7037,14 @@ icon_state = "wood-broken7" }, /area/mine/laborcamp) +"Fv" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Fw" = ( /obj/structure/cable{ d1 = 1; @@ -6687,6 +7076,14 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) +"FF" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "FH" = ( /obj/structure/cable, /obj/effect/spawner/random_spawners/dirt_maybe, @@ -6697,6 +7094,14 @@ }, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/east) +"FL" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "FO" = ( /obj/structure/rack, /obj/item/storage/bag/ore, @@ -6743,6 +7148,10 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"Gb" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors/unexplored/danger) "Gl" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -6785,6 +7194,14 @@ /obj/structure/fans/tiny, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"Gu" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Gw" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 @@ -6807,6 +7224,13 @@ icon_state = "darkfull" }, /area/mine/outpost/hallway/west) +"GC" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "GD" = ( /obj/structure/sign/poster/contraband/lusty_xenomorph, /turf/simulated/wall, @@ -6833,6 +7257,16 @@ icon_state = "darkyellowcorners" }, /area/mine/outpost/hallway/east) +"GO" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "He" = ( /obj/machinery/door/airlock/mining/glass{ name = "Hallway" @@ -6878,6 +7312,16 @@ icon_state = "brown" }, /area/mine/laborcamp) +"HE" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "HH" = ( /obj/structure/cable{ d1 = 4; @@ -6999,6 +7443,16 @@ icon_state = "darkfull" }, /area/mine/outpost/lockers) +"IQ" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "IR" = ( /obj/structure/shuttle/engine/heater, /obj/structure/window/reinforced{ @@ -7007,6 +7461,11 @@ }, /turf/simulated/floor/plating/lavaland_air, /area/shuttle/siberia) +"IZ" = ( +/obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Jb" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 @@ -7221,6 +7680,14 @@ /obj/structure/lattice/catwalk/mining, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"KB" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "KD" = ( /obj/effect/spawner/random_spawners/fungus_maybe, /turf/simulated/wall, @@ -7427,6 +7894,16 @@ icon_state = "darkyellowcorners" }, /area/mine/outpost/hallway/west) +"MS" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Nb" = ( /obj/structure/cable{ d1 = 4; @@ -7527,11 +8004,19 @@ dir = 4 }, /obj/effect/mapping_helpers/airlock/access/any/supply/mining, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining_station, /turf/simulated/floor/plasteel{ icon_state = "darkgreencorners" }, /area/mine/outpost/custodial) +"NA" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "ND" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -7565,6 +8050,11 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) +"NI" = ( +/obj/effect/mapping_helpers/no_lava, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "NK" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/spawner/random_spawners/dirt_maybe, @@ -7754,6 +8244,13 @@ icon_state = "darkfull" }, /area/mine/outpost/engineering) +"Pi" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Pp" = ( /obj/machinery/atmospherics/pipe/simple/visible/universal, /obj/structure/railing/cap{ @@ -7795,6 +8292,11 @@ icon_state = "darkfull" }, /area/mine/outpost/hallway/east) +"PF" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "PG" = ( /obj/machinery/door/firedoor, /obj/structure/cable{ @@ -7905,6 +8407,10 @@ /obj/effect/spawner/random_spawners/fungus_maybe, /turf/simulated/wall, /area/mine/outpost/custodial) +"QO" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/mineral/ancient/lava_land_surface_hard, +/area/lavaland/surface/outdoors/unexplored/danger) "QR" = ( /obj/structure/cable{ d1 = 1; @@ -7955,6 +8461,10 @@ icon_state = "brown" }, /area/mine/laborcamp) +"Rl" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/wall/boss, +/area/lavaland/surface/outdoors) "Rs" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/liquidfood, @@ -7979,6 +8489,12 @@ /obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"RJ" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "RR" = ( /obj/structure/firelock_frame, /turf/simulated/floor/plating, @@ -8016,6 +8532,16 @@ }, /turf/simulated/floor/mineral/titanium/blue, /area/shuttle/mining) +"Sd" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Sh" = ( /obj/effect/spawner/random_spawners/wall_rusted_maybe, /obj/effect/spawner/random_spawners/wall_rusted_maybe, @@ -8026,11 +8552,11 @@ name = "Shuttle Dock" }, /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/supply/mining, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, /obj/effect/mapping_helpers/airlock/unres{ dir = 8 }, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining_station, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkredfull" @@ -8107,6 +8633,11 @@ /obj/effect/spawner/random_spawners/wall_rusted_maybe, /turf/simulated/wall, /area/mine/outpost/cafeteria) +"SS" = ( +/obj/structure/stone_tile/center, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "ST" = ( /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/shutters{ @@ -8153,6 +8684,11 @@ icon_state = "darkfull" }, /area/mine/outpost/storage) +"Ti" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Tk" = ( /obj/machinery/camera{ c_tag = "Labor Camp Bedroom 1"; @@ -8284,6 +8820,14 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/catwalk, /area/mine/outpost/engineering) +"Ur" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Uy" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 @@ -8322,6 +8866,14 @@ icon_state = "darkfull" }, /area/mine/outpost/airlock) +"UU" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Ve" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -8363,6 +8915,21 @@ }, /turf/simulated/floor/catwalk, /area/mine/outpost/engineering) +"Vm" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"Vq" = ( +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Vt" = ( /obj/machinery/camera{ c_tag = "Labor Camp Central"; @@ -8514,6 +9081,13 @@ icon_state = "darkfull" }, /area/mine/outpost/hallway/west) +"VU" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "VV" = ( /obj/machinery/firealarm{ dir = 8; @@ -8687,6 +9261,16 @@ dir = 8 }, /area/mine/outpost/medbay) +"Xc" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Xd" = ( /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, @@ -8716,6 +9300,14 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) +"Xl" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Xq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -8756,6 +9348,13 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) +"XE" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "XF" = ( /obj/machinery/economy/vending/wallmed{ pixel_x = 28 @@ -8983,6 +9582,12 @@ /obj/effect/spawner/random_spawners/wall_rusted_maybe, /turf/simulated/wall, /area/mine/outpost/maintenance/south) +"Zj" = ( +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Zk" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -8996,6 +9601,13 @@ }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"Zs" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Zu" = ( /obj/structure/lattice/catwalk/mining, /obj/structure/railing{ @@ -9050,6 +9662,9 @@ /obj/item/cigbutt, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"ZY" = ( +/turf/simulated/mineral/ancient/lava_land_surface_hard, +/area/lavaland/surface/outdoors/unexplored/danger) "ZZ" = ( /obj/effect/decal/cleanable/fungus, /turf/simulated/wall, @@ -22854,17 +23469,17 @@ ak ak ak ak +am +am +am +am +am ak ak ak ak -ak -ak -ak -ak -ak -ak -ak +am +am am am am @@ -23125,9 +23740,9 @@ ak ak ak ak -ak -ak -ak +am +am +am am am am @@ -23384,10 +23999,10 @@ ak ak ak ak -ak -ak -ak -ak +am +am +am +am am am am @@ -23642,10 +24257,10 @@ ak ak ak ak -ak -ak -ak -ak +am +am +am +am am am am @@ -23900,10 +24515,10 @@ ak ak ak ak -ak -ak -ak -ak +am +am +am +am am am am @@ -24158,9 +24773,9 @@ ak ak ak ak -ak -ak -ak +am +am +am am am am @@ -24415,9 +25030,9 @@ ak ak ak ak -ak -ak -ak +am +am +am am am am @@ -24672,9 +25287,9 @@ ak ak ak ak -ak -ak -ak +am +am +am am am am @@ -24929,9 +25544,9 @@ ak ak ak ak -ak -ak -ak +am +am +am am am am @@ -25186,9 +25801,9 @@ ak ak ak ak -ak -ak -ak +am +am +am am am am @@ -25443,9 +26058,9 @@ ak ak ak ak -ak -ak -ak +am +am +am am am am @@ -25700,8 +26315,8 @@ ak ak ak ak -ak -ak +am +am am am am @@ -26468,7 +27083,7 @@ ak ak ak ak -ak +am am am am @@ -26522,7 +27137,7 @@ aj aj aj aj -ab +aj aj aj aj @@ -26778,15 +27393,15 @@ vP vP vP vP -vP -vP -vP -vP -vP -vP -vP -vP -vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (70,1,1) = {" aa @@ -27035,15 +27650,15 @@ vP vP vP vP -vP -vP -vP -vP -vP -vP -vP -vP -vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (71,1,1) = {" aa @@ -27288,19 +27903,19 @@ vP vP vP vP -Ly -vP -vP -vP -vP -vP -vP -vP -vP vP vP vP vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (72,1,1) = {" aa @@ -27494,7 +28109,7 @@ ak ak ak ak -ak +am am am am @@ -27549,15 +28164,15 @@ vP vP vP vP -vP -Ly -vP -vP -Ly -vP -vP -vP -vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (73,1,1) = {" aa @@ -27801,20 +28416,20 @@ vP Ly vP vP -Ly -vP -Ly -vP vP vP -Ly -Ly -vP -vP -Ly vP vP vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (74,1,1) = {" aa @@ -28059,19 +28674,19 @@ vP vP vP vP -Ly -Ly -vP -Ly vP vP -Ly -Ly -Ly -Ly -vP vP vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (75,1,1) = {" aa @@ -28309,13 +28924,7 @@ Ly Ly Ly Ly -vP -Ly -Ly Ly -vP -vP -vP Ly Ly Ly @@ -28323,12 +28932,18 @@ vP vP vP Ly -Ly -Ly vP -Ly vP vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (76,1,1) = {" aa @@ -28563,17 +29178,6 @@ WH WH WH WH -WH -Ly -Ly -vP -Ly -Ly -Ly -vP -vP -Ly -Ly Ly Ly Ly @@ -28581,11 +29185,22 @@ Ly Ly Ly Ly +vP +vP Ly vP vP vP vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (77,1,1) = {" aa @@ -28823,16 +29438,245 @@ WH WH Ly Ly -vP Ly Ly Ly Ly Ly +Ly +WH +vP vP +vP +vP +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(78,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +ab +ab +ab +ab +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +am +am +am +am +am +am +am +am +am +ai +ai +ai +ab +ab +ab +ab +Ly +WH +WH Ly Ly Ly +WH +WH +WH +Ly Ly Ly Ly @@ -28840,11 +29684,39 @@ Ly Ly Ly Ly +Ly +WH +WH +WH +WH vP +vP +vP +Ly +Ly +Ly Ly +Ly +Ly +Ly +WH +Ly +WH +vP +vP +vP vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} -(78,1,1) = {" +(79,1,1) = {" aa aa aa @@ -28857,9 +29729,9 @@ aa aa aa ab -ab -ab -ab +ad +ad +ad ab ab ab @@ -28873,7 +29745,7 @@ aj aj aj aj -aj +ab ab ab ab @@ -29046,37 +29918,21 @@ am am am ai -ai -ai ab ab ab ab -Ly -WH -WH -Ly -Ly -Ly -WH -WH -WH -Ly -Ly -Ly -Ly +ab +ab Ly Ly Ly +NI Ly Ly WH WH WH -WH -vP -vP -vP Ly Ly Ly @@ -29089,6 +29945,10 @@ Ly Ly Ly Ly +vP +vP +vP +vP Ly Ly Ly @@ -29096,12 +29956,24 @@ Ly Ly Ly Ly +WH +WH +ka vP Ly +Ly vP -vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} -(79,1,1) = {" +(80,1,1) = {" aa aa aa @@ -29115,9 +29987,9 @@ aa aa ab ad -ad -ad -ab +ai +ai +ai ab ab aj @@ -29129,7 +30001,7 @@ aj aj aj aj -aj +ab ab ab ab @@ -29302,9 +30174,9 @@ am am am am +am +ai ai -ab -ab ab ab ab @@ -29326,39 +30198,39 @@ Ly Ly Ly Ly -Ly -Ly -Ly -Ly vP vP vP vP -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly +vP +vP +vP +vP vP Ly Ly Ly Ly Ly +WH +ka +ka +ka +WH Ly -Ly -vP -Ly -vP -vP vP vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} -(80,1,1) = {" +(81,1,1) = {" aa aa aa @@ -29375,7 +30247,7 @@ ad ai ai ai -ab +ad ab aj aj @@ -29561,7 +30433,7 @@ am am am ai -ai +ab ab ab ab @@ -29582,7 +30454,7 @@ Ly Ly Ly Ly -Ly +vP vP vP vP @@ -29598,24 +30470,24 @@ Ly Ly Ly Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -vP -vP -Ly -vP +WH +ka +ka +ka +WH vP vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} -(81,1,1) = {" +(82,1,1) = {" aa aa aa @@ -29628,7 +30500,7 @@ aa aa aa ab -ad +ab ai ai ai @@ -29645,7 +30517,7 @@ aj aj ab ab -ab +aj ab ab ab @@ -29817,13 +30689,12 @@ am am am am +am +ai +ai ai ab ab -ab -ab -ab -Ly Ly Ly Ly @@ -29839,9 +30710,11 @@ Ly Ly Ly Ly -vP -vP -vP +Ly +Ly +Ly +Ly +Ly vP vP vP @@ -29850,29 +30723,28 @@ vP vP vP Ly +WH +WH Ly Ly +WH +ka +ka +ka +WH Ly Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -vP -vP -vP -Ly -vP -vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} -(82,1,1) = {" +(83,1,1) = {" aa aa aa @@ -29886,10 +30758,10 @@ aa aa ab ab -ai -ai -ai +ab +ad ad +ix ab aj aj @@ -29898,11 +30770,11 @@ aj aj aj aj -aj -aj ab +aj ab aj +aj ab ab ab @@ -30064,6 +30936,9 @@ ak ak ak ak +ak +am +am am am am @@ -30075,11 +30950,8 @@ am am am am -ai -ai ai ab -ab Ly Ly Ly @@ -30087,8 +30959,6 @@ Ly Ly WH WH -WH -Ly Ly Ly Ly @@ -30099,37 +30969,39 @@ Ly Ly Ly Ly +WH +WH +WH +WH Ly vP vP vP vP -vP -vP -vP -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly Ly Ly Ly +WH Ly Ly Ly +WH +ka +ka +ka +WH vP -vP -vP -vP -vP -vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} -(83,1,1) = {" +(84,1,1) = {" aa aa aa @@ -30144,11 +31016,10 @@ aa ab ab ab -ad -ad -ix ab -aj +ab +ab +ab aj aj aj @@ -30156,10 +31027,11 @@ aj aj aj ab -aj ab aj aj +aj +aj ab ab ab @@ -30246,6 +31118,17 @@ ak ak ak ak +al +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak ak ak ak @@ -30311,17 +31194,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak am am am @@ -30355,38 +31227,38 @@ Ly Ly Ly WH +ka +ka +ka WH -WH -WH -Ly -vP vP vP vP Ly +WH +WH +WH +WH Ly Ly Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -Ly -vP -vP -vP +WH +ka +ka +WH vP vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} -(84,1,1) = {" +(85,1,1) = {" aa aa aa @@ -30503,7 +31375,6 @@ ak ak ak ak -al ak ak ak @@ -30579,8 +31450,8 @@ ak ak ak ak -am -am +ak +ak am am am @@ -30595,55 +31466,56 @@ am ai ab ab -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -ai +Ly +Ly +Ly +Ly +WH +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +WH +vP +vP +Ly +WH +ka +ka +WH +cu +Ly +Ly +Ly +WH +ka +ka +WH +vP +vP +aj +aj aj aj aj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab aj -ab aj aj aj "} -(85,1,1) = {" +(86,1,1) = {" aa aa aa @@ -30671,264 +31543,7 @@ aj ab ab aj -aj -aj -aj -ab -ab -ab -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ai -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -ai -aj -aj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aj -aj -aj -ab -"} -(86,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aj -aj -aj -aj -aj -aj -ab -ab -aj -ab +ab aj aj ab @@ -31108,51 +31723,51 @@ am ai ab ab -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -ai +Ly +Ly +Ly +Ly +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +WH +vP +WH +WH +ka +ka +ka +WH +cv +Ly +Ly +Ly +WH +ka +ka +ka +WH +vP +aj +aj +aj +aj aj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab aj -ab aj aj aj @@ -31365,50 +31980,50 @@ am am ai ab -ab -ab -ab -ab -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -ab -ab -ab -ai -am -ai -ai -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Ly +Ly +Ly +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +Ly +Ly +Ly +WH +ka +WH +WH +WH +ka +ka +ka +ka +ka +WH +Ly +Ly +kw +ka +ka +ka +ka +WH +vP +aj +aj +aj +aj +aj aj aj aj @@ -31622,50 +32237,50 @@ am am am ai +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +WH +WH +ka +WH +WH +Ly +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +WH +ka +ka +ka +ka +WH +Ly +vP ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -ai -ai -am -ai -ai -ab -ai -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aj +aj +aj +aj aj aj aj @@ -31879,52 +32494,52 @@ am am am am -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -ai -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +Ly +Ly +aj +aj +aj +aj +aj +aj aj -ab aj aj "} @@ -32136,50 +32751,50 @@ am am am ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +Ly +vP +aj +aj +aj +aj +aj aj aj aj @@ -32393,53 +33008,53 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +vP +aj +aj +aj +aj +aj +aj +aj +aj aj "} (92,1,1) = {" @@ -32650,54 +33265,54 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (93,1,1) = {" aa @@ -32907,54 +33522,54 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -ai -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (94,1,1) = {" aa @@ -33164,52 +33779,52 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +Ly +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -33421,54 +34036,54 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +Ly ab +aj +aj ab aj aj aj +aj +aj "} (96,1,1) = {" aa @@ -33678,54 +34293,54 @@ am am am am -ai -ab -ab -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +WH aj ab -ab +aj +aj +aj +aj +aj +aj +aj "} (97,1,1) = {" aa @@ -33935,51 +34550,51 @@ am am am ai -ab -ab -ai -ai -ab -ab -ab -ab -ab -ai -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Ly +Ly +WH +WH +Ly +Ly +Ly +Ly +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +Ly +aj +aj +aj +aj +aj +aj aj aj aj @@ -34192,52 +34807,52 @@ am am am ai +Ly +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +Ly ab -ab -ai -ab -ab -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aj +aj +aj +aj +aj +aj aj aj "} @@ -34297,6 +34912,7 @@ ak ak ak ak +ZY ak ak ak @@ -34308,6 +34924,7 @@ ak ak ak ak +ZY ak ak ak @@ -34437,10 +35054,6 @@ ak ak ak ak -ak -ak -am -am am am am @@ -34448,52 +35061,54 @@ am am am am -ai -ab -ab -ai -ab -ab -ab -ab -ab -ab -ai -am -ai -ai -ai -ai -ab -ab -ai -ai -ai am am ai -ai -ad -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Ly +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +WH +ka +WH +WH +WH +WH +Ly +Ly +WH +WH +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +WH +aj +aj +aj +aj +aj +aj aj aj aj @@ -34552,8 +35167,23 @@ ak ak ak ak +ZY ak +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY ak +ZY ak ak ak @@ -34681,23 +35311,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -34705,53 +35318,55 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ai -ab -ab -ai -am -am -am am am ai -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Ly +Ly +Ly +Ly +Ly +Ly +WH +Ly +Ly +WH +ka +ka +ka +ka +ka +WH +Ly +Ly +Ly +Ly +WH +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +ka +ka +ka +ka +ka +ka +WH +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -34807,27 +35422,27 @@ ak ak ak ak +ZY ak +ZY +ZY +ZY +BX +BX +BX +BX +BX +BX +BX +BX +BX +BX +BX +ZY +ZY +ZY ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY ak ak ak @@ -34963,52 +35578,52 @@ am am am am -ai -ab -ab -ab -ab -ab -ai -ai -ab -ai -am -am -ai -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +Ly +Ly +Ly +WH +WH +Ly +WH +ka +ka +WH +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +WH +ka +ka +WH +ka +ka +ka +WH +Ly +WH +WH +ka +ka +ka +ka +WH +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -35063,6 +35678,29 @@ ak ak ak ak +ZY +ZY +ZY +ZY +BX +BX +BX +vP +BX +BX +vP +vP +vP +BX +BX +vP +BX +BX +BX +ZY +ZY +ZY +ZY ak ak ak @@ -35187,31 +35825,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -35221,51 +35834,53 @@ am am am am -ai -ab -ab -ab -ab -ai am -ai -am -am -ai -cu -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +WH +Ly +Ly +Ly +Ly +WH +ka +WH +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +WH +Ly +WH +WH +Ly +WH +ka +WH +Ly +Ly +Ly +WH +Ly +WH +WH +WH +WH +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -35321,6 +35936,27 @@ ak ak ak ak +ZY +BX +BX +BX +vP +BX +vP +vP +vP +vP +vP +vP +vP +vP +vP +BX +vP +BX +BX +BX +ZY ak ak ak @@ -35446,29 +36082,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -35477,51 +36090,53 @@ am am am am -ai -ab -ab -ab -ab -ab -ai -am -am am am -ai -cv -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +WH +Ly +Ly +WH +Ly +Ly +Ly +Ly +WH +Ly +WH +Ly +WH +Ly +aj +aj +aj +aj +aj +aj aj aj aj @@ -35576,6 +36191,31 @@ ak ak ak ak +ZY +ZY +ZY +BX +BX +vP +pT +Ur +BX +BX +vP +vP +vP +vP +vP +BX +BX +qo +il +vP +BX +BX +ZY +ZY +ZY ak ak ak @@ -35699,32 +36339,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am am am am @@ -35734,53 +36348,54 @@ am am am am -ai -ab -ab -ab -ab -ab -ai -am -am -am am -ai -ab -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +Ly +Ly +Ly +WH +ka +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +WH +WH +Ly +Ly +Ly +Ly +Ly +WH +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +Ly +Ly +Ly +aj +aj +aj +aj +aj +aj +aj aj -ab aj "} (105,1,1) = {" @@ -35834,6 +36449,29 @@ ak ak ak ak +ZY +BX +BX +vP +NA +vP +ux +vP +Ly +qk +Ly +Ly +Ly +rW +Ly +vP +CS +vP +pn +vP +BX +BX +ZY ak ak ak @@ -35958,30 +36596,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am am am am @@ -35992,51 +36606,52 @@ am am am am -ai -ab -ab -ab -ai -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ai -am -ai -ai -ai -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +WH +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +WH +ka +WH +WH +WH +Ly +Ly +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +Ly +Ly +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -36089,6 +36704,33 @@ ak ak ak ak +ZY +ZY +ZY +BX +vP +il +vP +NA +rP +Ly +Ly +ft +Ly +Ly +Ly +IZ +Ly +Ly +Vq +pn +vP +pT +vP +BX +ZY +ZY +ZY ak ak ak @@ -36211,91 +36853,64 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am am am am am am -ai -ab -ab -ab -ai -am -am -am -am -am -am -am -ai -ai -ab -ab -ai am am am am am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +WH +Ly +Ly +Ly +WH +ka +ka +ka +ka +ka +ka +ka +WH +WH +Ly +Ly +WH +ka +ka +ka +ka +WH +Ly +Ly +Ly +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +aj +aj +aj +aj +aj +aj +aj +aj aj -ab -ab "} (107,1,1) = {" aa @@ -36347,6 +36962,31 @@ ak ak ak ak +ZY +BX +BX +BX +xJ +Pi +VU +nr +Ly +Ly +Vq +Ly +Ly +Ly +rP +Ly +Ly +nB +sW +Pi +dr +BX +BX +BX +ZY ak ak ak @@ -36470,32 +37110,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am am am am @@ -36506,50 +37120,51 @@ am am am am -ai -ab -ai +ka +WH +Ly +WH fS -am -am -am -am -am -am -am -am -am -ai -ai -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +WH +ka +ka +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +aj +aj +aj +aj +aj +aj aj aj aj @@ -36604,31 +37219,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +BX +vP +vP +BX +vP +Ly +Ly +nr +Ly +Ly +Ly +Ly +Ly +Ly +Ly +nB +Ly +Ly +vP +BX +vP +vP +BX +ZY ak ak ak @@ -36762,54 +37377,54 @@ am am am am -am -am -ai -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +WH +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +aj ab aj aj aj +aj +aj +aj +aj "} (109,1,1) = {" aa @@ -36861,6 +37476,31 @@ ak ak ak ak +ZY +BX +Rl +vP +BX +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +BX +vP +BX +BX +ZY ak ak ak @@ -36985,32 +37625,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am am am am @@ -37020,51 +37634,52 @@ am am am am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -37118,6 +37733,31 @@ ak ak ak ak +ZY +BX +Rl +Ly +Ly +rW +GC +Vq +Ly +Ly +Xc +Ly +Ly +Ly +hF +Ly +Ly +rP +GC +PF +Ly +Ly +BX +BX +ZY ak ak ak @@ -37242,35 +37882,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am am am am @@ -37300,30 +37911,34 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +aj +aj ab aj aj +aj +aj +aj +aj "} (111,1,1) = {" aa @@ -37375,6 +37990,31 @@ ak ak ak ak +ZY +BX +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +VU +IZ +Ly +ft +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +BX +ZY ak ak ak @@ -37499,33 +38139,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -37555,30 +38168,32 @@ am am am am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -37632,6 +38247,31 @@ ak ak ak ak +ZY +BX +Ly +Ly +Ly +Ly +Ly +Ly +Zs +GC +GC +GC +GC +GC +GC +GC +rb +Ly +Ly +Ly +Ly +Ly +Ly +BX +ZY ak ak ak @@ -37757,33 +38397,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -37812,32 +38425,34 @@ am am am am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (113,1,1) = {" aa @@ -37889,6 +38504,31 @@ ak ak ak ak +ZY +BX +Ly +Ly +GC +GC +zZ +jC +jC +jC +Ly +Ly +Ly +Ly +Ly +jC +jC +jC +zZ +GC +GC +Ly +Ly +BX +ZY ak ak ak @@ -38014,36 +38654,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am am am am @@ -38072,29 +38682,34 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +aj +aj +aj +aj +aj +aj +aj +aj aj -ab -ab -ab -ab "} (114,1,1) = {" aa @@ -38146,6 +38761,31 @@ ak ak ak ak +ZY +BX +GO +jC +Ly +Ly +Ly +Ly +Ly +GC +Vq +Ly +Vq +Ly +rP +GC +Ly +Ly +Ly +Ly +Ly +jC +KB +BX +ZY ak ak ak @@ -38272,35 +38912,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am am am am @@ -38328,28 +38939,32 @@ am am am am -am -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +aj +aj +aj +aj +aj aj aj -ab aj aj "} @@ -38403,6 +39018,31 @@ ak ak ak ak +ZY +BX +Ly +Ly +rW +Ly +sW +Ly +Ly +IZ +Ly +ft +sW +IZ +Ly +ft +Ly +Ly +VU +Ly +rW +Ly +Ly +BX +ZY ak ak ak @@ -38530,34 +39170,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am am am am @@ -38584,26 +39196,29 @@ am am am am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +aj +aj +aj +aj aj aj aj @@ -38660,6 +39275,31 @@ ak ak ak ak +ZY +BX +Ly +rP +Ly +Ly +Ly +FL +GC +Ti +Ly +ft +VU +IZ +Ly +or +GC +Ci +Ly +Ly +Ly +Vq +Ly +BX +ZY ak ak ak @@ -38788,33 +39428,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -38840,30 +39453,32 @@ am am am am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +aj +aj +aj +aj +aj aj aj -ab aj aj "} @@ -38917,31 +39532,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +BX +Ly +Ly +Ly +VU +Ly +Ly +Ly +Ly +Ly +ft +sW +IZ +Ly +Ly +Ly +Ly +Ly +sW +Ly +Ly +Ly +BX +ZY ak ak ak @@ -39089,36 +39704,36 @@ ak ak ak ak +ak am am am am am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +aj +aj +aj +aj +aj aj aj aj @@ -39174,31 +39789,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +BX +sW +GC +Ly +ft +Ly +SS +ft +sW +Ly +ft +VU +IZ +Ly +VU +IZ +SS +Ly +IZ +Ly +GC +VU +BX +ZY ak ak ak @@ -39348,34 +39963,34 @@ ak ak ak ak +ak am am am -am -am -am -am -am -am -am -am -am -am -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +aj +aj +aj +aj +aj aj aj aj @@ -39431,31 +40046,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +BX +Ly +Ly +jC +Vq +FL +Ly +Ly +IZ +Ly +Ly +sW +Ly +Ly +ft +Ly +Ly +Ci +rP +jC +Ly +Ly +BX +ZY ak ak ak @@ -39606,37 +40221,37 @@ ak ak ak ak +ak am am -am -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly ab aj aj aj aj +aj +aj +aj +aj "} (120,1,1) = {" aa @@ -39688,31 +40303,32 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +BX +Ly +Ly +Ly +MS +Ly +jC +GC +Vq +Ly +VU +Ly +sW +Ly +rP +GC +jC +Ly +AW +Ly +Ly +Ly +BX +ZY +ZY ak ak ak @@ -39865,31 +40481,30 @@ ak ak ak am -am -am -am -am -am -am -am -am -am -am -am -am -am -ai -ai -ai -ab -ab -ab -ab -ab -ab +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +aj aj ab -ab +aj +aj aj aj aj @@ -39911,7 +40526,7 @@ ae jg gB gB -js +BM ab ab ab @@ -39944,6 +40559,34 @@ ak ak ak ak +ZY +ZY +BX +Ly +Ly +jC +Ly +Ly +Ly +ft +Ly +IQ +Ly +SS +Ly +td +Ly +IZ +Ly +Ly +Ly +jC +Ly +Ly +BX +ZY +ZY +ZY ak ak ak @@ -40094,59 +40737,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -am -am am -am -am -am -am -am -am -ai -ai -ab -ab -ab -ab +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +aj +aj +aj aj aj -ab aj aj aj @@ -40169,7 +40784,7 @@ gr gs gr gr -kR +PF ab ab ab @@ -40201,6 +40816,33 @@ ak ak ak ak +ZY +ZY +BX +Ly +Ly +Ly +Ly +Ly +Ly +IZ +Ly +Ly +IZ +Ly +ft +Ly +Ly +ft +Ly +Ly +Ly +Ly +Ly +Ly +BX +ZY +ZY ak ak ak @@ -40352,55 +40994,28 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am am -ai -ab -ab -ab +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +aj +aj aj aj aj @@ -40424,10 +41039,10 @@ aa gR ag jF -gM +Pi kB jm -ix +hZ ab jS aj @@ -40457,35 +41072,34 @@ al ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +ZY +ZY +BX +Ly +sW +Ly +GC +GC +Ly +Ci +VU +rP +Ly +Ly +Ly +Vq +sW +hF +Ly +GC +GC +Ly +VU +Ly +BX +ZY +ZY ak ak ak @@ -40638,29 +41252,30 @@ ak ak ak am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +aj +aj +aj aj aj -ab aj aj aj @@ -40678,15 +41293,15 @@ aa aa aa aa -aa +Rl gG -go +ux kg -hs +CS gr hH -ab -ab +Ly +Ly aj ly aj @@ -40698,50 +41313,50 @@ aj ls aj aj -jx -jS -iy -al -ak -al -jq -ab -kN -ab -ab -jx -ab -ab +sW +wr +xE +Gb +xN +Gb +Vq +Ly +XE +Ly +Ly +sW +Ly +Ly mN -al -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Gb +QO +ys +ys +BX +GC +GC +jC +Ly +nB +Vq +rP +Ly +VU +Ly +SS +Ly +sW +Ly +Vq +rP +nr +Ly +jC +GC +GC +BX +ZY +ZY ak ak ak @@ -40893,32 +41508,32 @@ ak ak ak ak -ak -ak -am -am -am -am -am -am -am am -am -am -am -am -am -am -am -ai -ab +ka +ka +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +aj +aj aj aj -ab aj aj -ab -ab aj aj aj @@ -40935,15 +41550,15 @@ nc aa aa fV -fV +Ao gr jH -gO +DR kD ag le -aa -aa +Rl +Rl ls aj aj @@ -40955,22 +41570,50 @@ aj aj aj lI -aa -aa -jS -ab -ab -ja -ab -jx -ab -jq -ab -kN -ab -ab -ab +Rl +Rl +wr +Ly +Ly +VU +Ly +sW +Ly +Vq +Ly +XE +Ly +Ly +Ly mO +Ly +rP +rW +FF +FF +FF +Ly +Ly +Ly +Ly +Ly +Ly +Fv +Zs +GC +rb +vo +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +BX +ZY +ZY ak ak ak @@ -41122,60 +41765,32 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am am -am -am -am -am -am -am -am -am -aj +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP aj aj aj aj aj aj -ab aj aj aj @@ -41192,75 +41807,71 @@ ne aa aa fV -fV +Ao jk gr gr gr gr gs -aa -lp +ya lp +Eq lz -lp +Eq lF -lp +Eq lP lS -lp +Eq lZ lS lS -lp -aa -mE -ab -ab -ab -ab -kN -ab -ab -ab -ab -ab -jS -ab -ab -al -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Eq +Rl +hF +Ly +Ly +Ly +Ly +XE +Ly +Ly +Ly +Ly +Ly +wr +Ly +Ly +Ly +Ly +rW +FF +FF +FF +Vq +Fv +Zs +vo +rP +Ly +Zs +Ti +Ly +or +rb +Ly +Vq +Xl +rb +vo +rP +Ly +sW +BX +ZY +ZY +ZY ak ak ak @@ -41412,23 +42023,27 @@ ak ak ak am -am -am -am -am -am -am -am -am -am -am -am -am -am -aj +ka +WH +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly aj aj -ab aj aj aj @@ -41451,13 +42066,13 @@ ac ac af lg -fT +HE kj -fT -fT +HE +HE lg -gP -lq +Zj +md lu lq lD @@ -41470,56 +42085,52 @@ ma lq mk mn -kR +PF mF -ab +Ly mG -ab -ja -ab -jx -ab -ab -kN -ab -ab -jq -jR -ab -ab -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ly +VU +Ly +sW +Ly +Ly +XE +Ly +Ly +Vq +wd +rP +Ly +rW +FF +FF +FF +Ly +Zs +PF +Ti +Ly +SS +ft +Ly +hB +Ly +IZ +SS +Ly +or +PF +rb +Ly +Ly +rW +BX +ZY +ZY +ZY +ZY +ZY ak ak ak @@ -41669,21 +42280,25 @@ ak ak ak am -am -am -am -am -am -am -am -am -am -am -am -am -am -aj -aj +ka +ka +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly aj aj aj @@ -41706,76 +42321,71 @@ ng aa aa fV -fV +Ao jl gr ah gG gs gy -aa +ya lr lv lv lE lv lE -lR +bc lv lv mb -lR +bc ml -lR -aa -it -ab -ab -jx -jR -ab -ab -ab +bc +Rl +IZ +Ly +Ly +sW +wd +Ly +Ly +Ly mL -al -iY -ab -ab -jQ -ab -jx -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Gb +Gu +Ly +Ly +rP +Ly +Ly +rW +FF +FF +FF +VU +Xc +Ti +hF +sW +Ly +or +rb +Ly +Zs +Ti +Ly +VU +Ci +or +hF +sW +Ly +rP +BX +ZY +ZY +ZY ak ak ak @@ -41791,6 +42401,7 @@ ak ak ak ak +al ak ak ak @@ -41926,23 +42537,27 @@ ak ak ak ak -am -am -am -am -am -am -am -am -am -am -am -am -am -aj -aj -aj -aj +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +vP +ab +ab aj aj aj @@ -41963,15 +42578,15 @@ id aa aa fV -fV +Ao jm jL -gM +Pi kH gr hH -aa -aa +Rl +Rl lw aj aj @@ -41983,54 +42598,50 @@ aj aj lw aj -aa -aa -jq -ab -ab -ab -jQ -ab +Rl +Rl +Vq +Ly +Ly +Ly +rP +Ly mI -ab -ab -al -al -ab -ab -ab -ab -ab -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ly +Ly +Gb +Gb +Ly +Ly +Ly +Ly +rP +rW +FF +FF +FF +Ly +Ly +Ly +Ly +Ly +Ly +Xc +or +jC +Ti +hF +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +BX +ZY +ZY ak ak ak @@ -42048,7 +42659,6 @@ ak ak ak ak -al ak ak ak @@ -42184,20 +42794,25 @@ ak ak ak ak -am -am -am -am -am -am -am -am -am -am -am -fR -aj -aj +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +vP aj aj aj @@ -42220,15 +42835,15 @@ aa aa aa aa -aa +Rl gr -go +ux kl -hs +CS gG lj -ab -ab +Ly +Ly aj aj mv @@ -42240,56 +42855,50 @@ aj lI aj aj -kN -jq -jS -jx -jS -ab -ab -ab -ab -ab -ab -jR -ak -jS -kN -ab -ab -jR -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -al -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +XE +Vq +wr +sW +wr +Ly +Ly +Ly +Ly +Ly +Ly +wd +xN +wr +XE +Ly +Ly +ys +ys +BX +jC +jC +GC +Ly +EQ +VU +sW +Ly +Vq +Ly +SS +Ly +rP +Ly +VU +sW +kT +Ly +GC +jC +jC +BX +ZY +ZY ak ak ak @@ -42442,23 +43051,29 @@ ak ak ak ak -am -am -am -am -am -am -am -am -am -am -fS -aj +ka +ka +ka +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +vP aj aj aj aj -ab aj aj aj @@ -42480,10 +43095,10 @@ aa gR ah jN -gO +DR kJ gr -it +IZ ab ab aj @@ -42514,79 +43129,33 @@ al ab ab mP -al -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +ZY +BX +Ly +rP +Ly +jC +jC +Ly +Fv +Vq +sW +Ly +Ly +Ly +VU +rP +vo +Ly +jC +jC +Ly +Vq +Ly +BX +ZY +ZY ak ak ak @@ -42701,61 +43270,6 @@ ak ak ak ak -am -am -am -am -am -am -am -am -fS -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -"} -(132,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -gR -gr -gr -gr -jm -gP -ab -ab -ab -aj -aj -aj -aj -aj -aj -ab -mB -aj -aj -aj -ab -ja ak ak ak @@ -42794,6 +43308,69 @@ ak ak ak ak +xN +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +vP +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(132,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gR +gr +gr +gr +jm +rW +ab +ab +ab +aj +aj +aj +aj +aj +aj +ab +mB +aj +aj +aj +ab +ja ak ak ak @@ -42807,6 +43384,35 @@ ak ak ak ak +al +ZY +ZY +ZY +BX +Ly +Ly +Ly +Ly +Ly +Ly +IZ +Ly +Ly +IZ +Ly +ft +Ly +Ly +ft +Ly +Ly +Ly +Ly +Ly +Ly +BX +ZY +ZY ak ak ak @@ -42959,16 +43565,25 @@ ak ak ak ak -am -am -am -am -am -am -am -am -fS -aj +xN +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP aj aj aj @@ -42995,7 +43610,7 @@ ae gr jm ko -iu +jC ab ab ab @@ -43028,6 +43643,34 @@ ak ak ak ak +ZY +ZY +BX +Ly +Ly +GC +Ly +Ly +Ly +ft +Ly +MS +Ly +SS +Ly +AW +Ly +IZ +Ly +Ly +Ly +GC +Ly +Ly +BX +ZY +ZY +ZY ak ak ak @@ -43179,53 +43822,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -fS -aj +xN +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP aj aj aj @@ -43286,6 +43901,32 @@ ak ak ak ak +ZY +BX +Ly +Ly +Ly +IQ +Ly +GC +jC +VU +Ly +Vq +Ly +rP +Ly +sW +jC +GC +Ly +td +Ly +Ly +Ly +BX +ZY +ZY ak ak ak @@ -43438,54 +44079,28 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -fS -aj +ka +ka +ka +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP ab aj -ab +aj aj aj aj @@ -43543,6 +44158,31 @@ ak ak ak ak +ZY +BX +Ly +Ly +GC +VU +yW +Ly +Ly +IZ +Ly +Ly +rP +Ly +Ly +ft +Ly +Ly +Xl +sW +GC +Ly +Ly +BX +ZY ak ak ak @@ -43696,50 +44336,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -fQ -aj -aj +ka +ka +WH +Ly +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +vP aj aj aj @@ -43800,6 +44415,31 @@ ak ak ak ak +ZY +BX +rP +jC +Ly +ft +Ly +SS +ft +rP +Ly +ft +VU +IZ +Ly +Vq +IZ +SS +Ly +IZ +Ly +jC +Vq +BX +ZY ak ak ak @@ -43953,50 +44593,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -fQ -aj -aj +ka +ka +WH +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +vP aj aj aj @@ -44057,6 +44672,31 @@ ak ak ak ak +ZY +BX +Ly +Ly +Ly +Vq +Ly +Ly +Ly +Ly +Ly +ft +sW +IZ +Ly +Ly +Ly +Ly +Ly +rP +Ly +Ly +Ly +BX +ZY ak ak ak @@ -44210,50 +44850,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -fQ -aj -aj +ka +ka +ka +WH +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +vP +vP aj aj aj @@ -44314,6 +44929,31 @@ ak ak ak ak +ZY +BX +Ly +sW +Ly +Ly +Ly +vo +jC +rb +Ly +ft +VU +IZ +Ly +Zs +jC +Xl +Ly +Ly +Ly +VU +Ly +BX +ZY ak ak ak @@ -44467,50 +45107,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +xN +ka +ka +ka +ka +WH +Ly +WH +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +WH +vP +vP aj aj aj @@ -44571,6 +45186,31 @@ ak ak ak ak +ZY +BX +rb +Ly +rW +Ly +rP +Ly +Ly +IZ +Ly +ft +sW +IZ +Ly +ft +Ly +Ly +Vq +Ly +rW +Ly +Ly +BX +ZY ak ak ak @@ -44724,50 +45364,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +xN +xN +ka +ka +ka +WH +Ly +WH +Ly +WH +Ly +Ly +Ly +Ly +Ly +WH +WH +vP +vP aj aj aj @@ -44828,6 +45443,31 @@ ak ak ak ak +ZY +BX +uR +GC +Ly +Ly +Ly +Ly +Ly +jC +VU +Ly +VU +Ly +sW +jC +Ly +Ly +Ly +Ly +Ly +GC +Vm +BX +ZY ak ak ak @@ -44981,50 +45621,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +xN +xN +ka +ka +ka +ka +WH +WH +Ly +WH +WH +Ly +Ly +Ly +Ly +WH +WH +vP +vP aj aj aj @@ -45085,6 +45700,31 @@ ak ak ak ak +ZY +BX +Ly +Ly +jC +jC +HE +GC +GC +GC +Ly +Ly +Ly +Ly +Ly +GC +GC +GC +HE +jC +jC +Ly +Ly +BX +ZY ak ak ak @@ -45238,50 +45878,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +xN +xN +xN +xN +ka +ka +ka +ka +WH +ka +WH +Ly +WH +Ly +Ly +Ly +WH +vP +vP aj aj aj @@ -45342,6 +45957,31 @@ ak ak ak ak +ZY +BX +Ly +Ly +Ly +Ly +Ly +Ly +or +jC +jC +jC +jC +jC +jC +jC +Ti +Ly +Ly +Ly +Ly +Ly +Ly +BX +ZY ak ak ak @@ -45495,50 +46135,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +xN +xN +xN +xN +xN +ka +ka +ka +ka +ka +ka +WH +ka +WH +WH +Ly +Ly +vP +vP aj aj aj @@ -45599,6 +46214,31 @@ ak ak ak ak +ZY +BX +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +IZ +Ly +ft +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +BX +ZY ak ak ak @@ -45752,50 +46392,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +xN +xN +xN +xN +xN +xN +xN +xN +ka +ka +ka +ka +ka +ka +ka +WH +WH +vP +vP aj aj aj @@ -45856,6 +46471,31 @@ ak ak ak ak +ZY +BX +BX +Ly +Ly +qk +jC +VU +Ly +Ly +Fv +Ly +Ly +Ly +vo +Ly +Ly +sW +jC +wA +Ly +Ly +BX +BX +ZY ak ak ak @@ -46009,50 +46649,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +xN +xN +xN +xN +xN +xN +xN +xN +xN +xN +ka +ka +ka +ka +ka +ka +ka +vP +vP aj aj aj @@ -46113,6 +46728,31 @@ ak ak ak ak +ZY +BX +BX +vP +BX +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +Ly +BX +vP +BX +BX +ZY ak ak ak @@ -46266,50 +46906,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +xN +xN +xN +xN +xN +xN +xN +xN +xN +xN +xN +xN +xN +xN +ka +ka +ka +vP +vP aj aj aj @@ -46370,31 +46985,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +BX +vP +vP +BX +vP +Ly +Ly +kT +Ly +Ly +Ly +Ly +Ly +Ly +Ly +nr +Ly +Ly +vP +BX +vP +vP +BX +ZY ak ak ak @@ -46627,31 +47242,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +BX +BX +BX +ta +DR +Vq +kT +Ly +Ly +VU +Ly +Ly +Ly +sW +Ly +Ly +nr +rP +DR +Sd +BX +BX +BX +ZY ak ak ak @@ -46883,33 +47498,33 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +ZY +ZY +BX +vP +il +vP +BL +sW +Ly +Ly +ft +Ly +Ly +Ly +IZ +Ly +Ly +VU +NA +vP +zW +vP +BX +ZY +ZY +ZY ak ak ak @@ -47142,29 +47757,29 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +BX +BX +vP +BL +vP +ux +vP +Ly +PF +Ly +Ly +Ly +qk +Ly +vP +CS +vP +UU +vP +BX +BX +ZY ak ak ak @@ -47398,31 +48013,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +ZY +ZY +BX +BX +vP +RJ +jD +BX +BX +vP +vP +vP +vP +vP +BX +BX +sg +hm +vP +BX +BX +ZY +ZY +ZY ak ak ak @@ -47657,27 +48272,27 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +BX +BX +BX +vP +BX +vP +vP +vP +vP +vP +vP +vP +vP +vP +BX +vP +BX +BX +BX +ZY ak ak ak @@ -47914,28 +48529,28 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY +ZY +ZY +BX +BX +BX +vP +BX +BX +vP +vP +vP +BX +BX +vP +BX +BX +BX +ZY +ZY +ZY +ZY ak ak ak @@ -48171,8 +48786,27 @@ ak ak ak ak +ZY ak +ZY +ZY +ZY +BX +BX +BX +BX +BX +BX +BX +BX +BX +BX +BX +ZY +ZY +ZY ak +ZY ak ak ak @@ -48182,26 +48816,7 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +al ak ak ak @@ -48430,23 +49045,23 @@ ak ak ak ak +ZY ak +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ZY ak ak ak @@ -48689,6 +49304,7 @@ ak ak ak ak +ZY ak ak ak @@ -48700,8 +49316,7 @@ ak ak ak ak -ak -ak +ZY ak ak ak @@ -49232,7 +49847,7 @@ ak ak ak ak -al +ak ak ak ak @@ -51966,7 +52581,7 @@ aj aj ab aj -ab +aj aj aj aj diff --git a/_maps/map_files220/MetaStation/MetaStation.dmm b/_maps/map_files220/MetaStation/MetaStation.dmm index 04631367e38b..98ce759904a0 100644 --- a/_maps/map_files220/MetaStation/MetaStation.dmm +++ b/_maps/map_files220/MetaStation/MetaStation.dmm @@ -731,7 +731,7 @@ "aih" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "aii" = ( @@ -754,7 +754,7 @@ pixel_y = 3 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "aij" = ( @@ -764,24 +764,24 @@ "ail" = ( /obj/structure/closet/athletic_mixed, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "aim" = ( /obj/structure/closet/boxinggloves, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "ain" = ( /obj/structure/closet/firecloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "aio" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "air" = ( @@ -876,7 +876,7 @@ icon_state = "plant-20" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "ajc" = ( @@ -2984,21 +2984,21 @@ /obj/structure/closet/lasertag/red, /obj/structure/extinguisher_cabinet/directional/west, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "atO" = ( /obj/machinery/newscaster/directional/south, /obj/structure/closet/lasertag/blue, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "atP" = ( /obj/structure/sign/poster/official/random/south, /obj/structure/closet/masks, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "atQ" = ( @@ -3074,7 +3074,7 @@ /obj/machinery/light/directional/south, /obj/machinery/economy/vending/cola, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "atX" = ( @@ -3222,7 +3222,7 @@ /obj/effect/landmark/spawner/rev, /obj/structure/morgue, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "auz" = ( @@ -3261,7 +3261,7 @@ /obj/machinery/economy/vending/coffee, /obj/item/radio/intercom/directional/south, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "auO" = ( @@ -3283,7 +3283,7 @@ pixel_x = -6 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "auV" = ( @@ -3480,7 +3480,7 @@ pixel_y = -30 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/fitness) "avK" = ( @@ -3518,7 +3518,7 @@ pixel_x = -29 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/aisat/interior) "avQ" = ( @@ -3910,7 +3910,7 @@ /obj/item/clothing/under/misc/assistantformal, /obj/machinery/firealarm/directional/north, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "axb" = ( @@ -4072,7 +4072,7 @@ }, /obj/machinery/atmospherics/portable/canister/sleeping_agent, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/execution) "axB" = ( @@ -5179,7 +5179,7 @@ /obj/item/clothing/head/bearpelt, /obj/effect/turf_decal/delivery/white/hollow/right, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "aCy" = ( @@ -5209,7 +5209,7 @@ }, /obj/effect/turf_decal/delivery/white/hollow/left, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "aCD" = ( @@ -5458,7 +5458,7 @@ }, /obj/effect/turf_decal/delivery/white/hollow/right, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "aDF" = ( @@ -5484,7 +5484,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "aDH" = ( @@ -5502,7 +5502,7 @@ }, /obj/effect/turf_decal/delivery/white/hollow/left, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "aDK" = ( @@ -5745,7 +5745,7 @@ /obj/machinery/economy/vending/shoedispenser, /obj/machinery/alarm/directional/east, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aEE" = ( @@ -5839,7 +5839,7 @@ /obj/effect/turf_decal/delivery/white/hollow/right, /obj/item/radio/intercom/directional/west, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "aEZ" = ( @@ -5874,7 +5874,7 @@ }, /obj/effect/turf_decal/delivery/white/hollow/left, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "aFd" = ( @@ -6076,7 +6076,7 @@ network = list("SS13","vault") }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "aGo" = ( @@ -6255,7 +6255,7 @@ }, /obj/machinery/suit_storage_unit/ce, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "aGY" = ( @@ -6390,7 +6390,7 @@ /obj/effect/mapping_helpers/airlock/autoname, /obj/effect/mapping_helpers/airlock/access/all/supply/vault, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "aHD" = ( @@ -6562,7 +6562,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aIn" = ( @@ -6762,7 +6762,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/telecomms/computer) "aIS" = ( @@ -6818,7 +6818,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/supply/lobby) "aJa" = ( @@ -7248,7 +7248,7 @@ icon_state = "2-4" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/supply/lobby) "aKi" = ( @@ -9160,7 +9160,7 @@ /obj/structure/closet/secure_closet/personal, /obj/item/clothing/under/misc/assistantformal, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aQA" = ( @@ -9173,7 +9173,7 @@ }, /obj/machinery/light/directional/north, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aQB" = ( @@ -9185,7 +9185,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aQC" = ( @@ -9215,7 +9215,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aQJ" = ( @@ -9414,7 +9414,7 @@ "aRn" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aRo" = ( @@ -10519,7 +10519,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/smes) "aUP" = ( @@ -10678,7 +10678,7 @@ /obj/machinery/economy/vending/autodrobe, /obj/machinery/light/directional/north, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aVo" = ( @@ -10693,7 +10693,7 @@ "aVp" = ( /obj/machinery/economy/vending/clothing, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aVq" = ( @@ -10715,7 +10715,7 @@ }, /obj/effect/turf_decal/delivery, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "aVs" = ( @@ -11204,7 +11204,7 @@ /obj/machinery/power/apc/super/west, /obj/machinery/computer/security/engineering, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/smes) "aWO" = ( @@ -11265,7 +11265,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/smes) "aWY" = ( @@ -11503,7 +11503,7 @@ pixel_x = 29 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/aisat/interior) "aXL" = ( @@ -11874,7 +11874,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/smes) "aYV" = ( @@ -11887,7 +11887,7 @@ pixel_y = 6 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/smes) "aYW" = ( @@ -12109,7 +12109,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai_upload/foyer) "aZP" = ( @@ -12257,13 +12257,13 @@ /area/station/hallway/secondary/bridge) "bad" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "baf" = ( /obj/structure/closet/wardrobe/grey, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "bag" = ( @@ -12581,7 +12581,7 @@ "bbg" = ( /obj/structure/closet/firecloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/central) "bbh" = ( @@ -12592,7 +12592,7 @@ }, /obj/structure/closet/emcloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/central) "bbj" = ( @@ -12625,7 +12625,7 @@ /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai_upload/foyer) "bbm" = ( @@ -12722,7 +12722,7 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bby" = ( @@ -12753,7 +12753,7 @@ "bbB" = ( /obj/machinery/economy/vending/snack, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/central) "bbC" = ( @@ -12778,7 +12778,7 @@ dir = 6 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/central) "bbE" = ( @@ -12800,7 +12800,7 @@ /obj/machinery/ai_status_display/north, /obj/machinery/computer/station_alert, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bbM" = ( @@ -12956,7 +12956,7 @@ pixel_y = 26 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai_upload/foyer) "bcm" = ( @@ -12994,7 +12994,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai_upload/foyer) "bcq" = ( @@ -13442,7 +13442,7 @@ /area/station/engineering/tech_storage) "bdy" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bdA" = ( @@ -13454,7 +13454,7 @@ c_tag = "Chief Engineer's Office" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bdB" = ( @@ -13500,7 +13500,7 @@ /obj/machinery/status_display/directional/north, /obj/machinery/computer/card/minor/ce, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bdF" = ( @@ -13977,7 +13977,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "beF" = ( @@ -14007,7 +14007,7 @@ }, /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "beH" = ( @@ -14037,7 +14037,7 @@ }, /obj/machinery/light/directional/west, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "beJ" = ( @@ -14073,7 +14073,7 @@ /obj/structure/disposalpipe/segment, /obj/structure/extinguisher_cabinet/directional/east, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "beP" = ( @@ -14167,7 +14167,7 @@ pixel_y = 30 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bff" = ( @@ -14571,13 +14571,13 @@ /obj/item/radio/intercom/directional/east, /obj/machinery/light/small/directional/east, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bgo" = ( /obj/machinery/light/directional/west, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bgp" = ( @@ -14653,7 +14653,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bgt" = ( @@ -14678,7 +14678,7 @@ req_access_txt = "11" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bgv" = ( @@ -14938,7 +14938,7 @@ pixel_y = 12 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bhh" = ( @@ -15120,7 +15120,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bhK" = ( @@ -15144,7 +15144,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bhM" = ( @@ -15158,7 +15158,7 @@ icon_state = "1-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bhQ" = ( @@ -15234,7 +15234,7 @@ }, /obj/machinery/power/apc/directional/west, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bib" = ( @@ -15802,7 +15802,7 @@ "bjw" = ( /obj/machinery/light/small/directional/east, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bjx" = ( @@ -15858,7 +15858,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "bjC" = ( @@ -15901,7 +15901,7 @@ pixel_x = 30 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bjH" = ( @@ -15909,7 +15909,7 @@ /mob/living/simple_animal/parrot/Poly, /obj/machinery/keycard_auth/south, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bjI" = ( @@ -15917,7 +15917,7 @@ /obj/item/megaphone, /obj/machinery/alarm/directional/south, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bjK" = ( @@ -16437,7 +16437,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/starboard) "blm" = ( @@ -16448,7 +16448,7 @@ }, /obj/structure/closet/firecloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/starboard) "bln" = ( @@ -16473,7 +16473,7 @@ /obj/effect/mapping_helpers/airlock/autoname, /obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "blr" = ( @@ -16561,13 +16561,13 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat) "blF" = ( /obj/machinery/ai_slipper, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai) "blI" = ( @@ -16856,7 +16856,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bmn" = ( @@ -16977,7 +16977,7 @@ dir = 9 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bmF" = ( @@ -17048,7 +17048,7 @@ "bmT" = ( /obj/machinery/porta_turret/ai_turret, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai) "bmU" = ( @@ -17078,7 +17078,7 @@ "bmX" = ( /obj/machinery/economy/vending/artvend, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "bmZ" = ( @@ -17233,7 +17233,7 @@ /obj/item/stack/spacecash/c1000, /obj/effect/turf_decal/delivery/white/hollow/left, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/vault) "bnw" = ( @@ -17313,7 +17313,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/visible, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat) "bnM" = ( @@ -17323,7 +17323,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bnN" = ( @@ -17441,7 +17441,7 @@ req_access_txt = "56" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "boc" = ( @@ -17541,7 +17541,7 @@ pixel_y = -30 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "bop" = ( @@ -17653,7 +17653,7 @@ pixel_y = 21 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai) "boI" = ( @@ -19190,7 +19190,7 @@ "bsX" = ( /obj/machinery/teleport/hub, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/aisat/interior) "bsY" = ( @@ -19278,7 +19278,7 @@ "btr" = ( /obj/machinery/economy/vending/coffee, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/port) "bts" = ( @@ -19996,7 +19996,7 @@ icon_state = "2-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat/service) "bvp" = ( @@ -20156,7 +20156,7 @@ /obj/machinery/economy/vending/cola, /obj/machinery/newscaster/directional/west, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/port) "bvF" = ( @@ -20582,7 +20582,7 @@ /obj/machinery/status_display/directional/north, /obj/machinery/teleport/station, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/aisat/interior) "bws" = ( @@ -20860,7 +20860,7 @@ pixel_y = 2 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bxr" = ( @@ -21082,7 +21082,7 @@ "bxP" = ( /obj/machinery/economy/vending/snack, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/port) "bxQ" = ( @@ -21478,7 +21478,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "byZ" = ( @@ -21683,7 +21683,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/port) "bzE" = ( @@ -21714,13 +21714,13 @@ "bzG" = ( /obj/structure/closet/firecloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/port) "bzH" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/port) "bzJ" = ( @@ -21894,7 +21894,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/bridge) "bAi" = ( @@ -21916,7 +21916,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "bAl" = ( @@ -22030,7 +22030,7 @@ }, /obj/machinery/firealarm/directional/south, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/smes) "bAQ" = ( @@ -22782,7 +22782,7 @@ icon_state = "0-4" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat/service) "bDe" = ( @@ -25021,7 +25021,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bKX" = ( @@ -25538,7 +25538,7 @@ "bNl" = ( /obj/machinery/economy/vending/coffee, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/secondary/bridge) "bNm" = ( @@ -26023,7 +26023,7 @@ pixel_y = 6 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bOT" = ( @@ -26066,7 +26066,7 @@ /obj/machinery/newscaster/directional/south, /obj/machinery/economy/vending/cigarette, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/secondary/bridge) "bOZ" = ( @@ -26162,7 +26162,7 @@ /obj/item/storage/belt/utility, /obj/item/clothing/head/welding, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bPj" = ( @@ -26367,7 +26367,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bQe" = ( @@ -26892,7 +26892,7 @@ }, /obj/structure/window/reinforced, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bRS" = ( @@ -27171,7 +27171,7 @@ pixel_x = -4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/teleporter) "bSQ" = ( @@ -27398,7 +27398,7 @@ "bTB" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/library) "bTC" = ( @@ -27425,7 +27425,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bTG" = ( @@ -27713,7 +27713,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bUO" = ( @@ -27825,7 +27825,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bVc" = ( @@ -28267,7 +28267,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bWB" = ( @@ -28813,7 +28813,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/teleporter) "bYa" = ( @@ -28982,7 +28982,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bYy" = ( @@ -29102,7 +29102,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "bYT" = ( @@ -29994,7 +29994,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "cbK" = ( @@ -30286,7 +30286,7 @@ icon_state = "pipe-j2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/central) "ccE" = ( @@ -30783,7 +30783,7 @@ }, /obj/machinery/disposal, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/central) "cek" = ( @@ -31368,7 +31368,7 @@ /obj/item/radio/intercom/directional/east, /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "cgn" = ( @@ -33569,7 +33569,7 @@ pixel_y = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/maintenance/aft2) "cnO" = ( @@ -34180,7 +34180,7 @@ "cqj" = ( /obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "cqk" = ( @@ -34459,7 +34459,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "crq" = ( @@ -36641,7 +36641,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "czo" = ( @@ -36711,7 +36711,7 @@ /obj/machinery/light/directional/south, /obj/effect/turf_decal/delivery, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "czy" = ( @@ -36820,7 +36820,7 @@ autolink_id = "aisat_vent" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat) "czV" = ( @@ -37110,7 +37110,7 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/morgue, /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "cAX" = ( @@ -37335,7 +37335,7 @@ }, /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/research) "cBQ" = ( @@ -37927,7 +37927,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "cDU" = ( @@ -38060,7 +38060,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "cEl" = ( @@ -38169,7 +38169,7 @@ "cEF" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/maintenance/aft2) "cEG" = ( @@ -38331,7 +38331,7 @@ /obj/effect/turf_decal/delivery/hollow, /obj/machinery/atmospherics/portable/canister/oxygen, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "cFf" = ( @@ -38782,7 +38782,7 @@ /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/grown/harebell, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "cGF" = ( @@ -38815,7 +38815,7 @@ }, /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/research) "cGR" = ( @@ -39174,7 +39174,7 @@ "cHX" = ( /obj/structure/chair, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "cHY" = ( @@ -39622,7 +39622,7 @@ "cJB" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "cJD" = ( @@ -40553,7 +40553,7 @@ }, /obj/item/radio/intercom/directional/west, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/ai_monitored/storage/eva) "cNk" = ( @@ -41012,7 +41012,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "cOZ" = ( @@ -41200,7 +41200,7 @@ "cPH" = ( /obj/machinery/light/small/directional/east, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "cPI" = ( @@ -41223,7 +41223,7 @@ }, /obj/structure/closet/firecloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/secondary/exit) "cPM" = ( @@ -41234,7 +41234,7 @@ }, /obj/structure/closet/emcloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/secondary/exit) "cPN" = ( @@ -41970,7 +41970,7 @@ /obj/item/reagent_containers/food/snacks/grown/poppy, /obj/item/reagent_containers/food/snacks/grown/poppy, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "cSS" = ( @@ -41980,7 +41980,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "cST" = ( @@ -41994,7 +41994,7 @@ pixel_y = 29 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "cSU" = ( @@ -42002,7 +42002,7 @@ /obj/structure/table/wood, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "cSV" = ( @@ -42551,7 +42551,7 @@ }, /obj/machinery/light/small/directional/south, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "cVc" = ( @@ -42971,7 +42971,7 @@ pixel_y = -2 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "cWS" = ( @@ -43693,7 +43693,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "dan" = ( @@ -43903,7 +43903,7 @@ "dbb" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/central) "dbc" = ( @@ -44374,7 +44374,7 @@ /obj/structure/table/wood, /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "dep" = ( @@ -44405,7 +44405,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/research) "deu" = ( @@ -44551,7 +44551,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/maintenance/aft2) "deX" = ( @@ -45095,7 +45095,7 @@ autolink_id = "aisat_vent" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat) "dkG" = ( @@ -45453,7 +45453,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai) "dvc" = ( @@ -46126,7 +46126,7 @@ /area/station/maintenance/auxsolarstarboard) "dQb" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "dQq" = ( @@ -46155,7 +46155,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "dRU" = ( @@ -46554,7 +46554,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/evidence) "dZy" = ( @@ -46585,7 +46585,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/research) "dZI" = ( @@ -46875,7 +46875,7 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /obj/effect/mapping_helpers/airlock/access/all/science/minisat, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat) "efX" = ( @@ -47179,7 +47179,7 @@ /obj/structure/closet/wardrobe/black, /obj/machinery/light/directional/east, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "epG" = ( @@ -47981,7 +47981,7 @@ "eFV" = ( /obj/machinery/economy/vending/hatdispenser, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "eGw" = ( @@ -48053,7 +48053,7 @@ /obj/effect/turf_decal/delivery/white/hollow, /obj/machinery/atmospherics/portable/scrubber/huge, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "eJh" = ( @@ -48070,7 +48070,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "eJG" = ( @@ -48617,7 +48617,7 @@ }, /obj/structure/closet/secure_closet/roboticist, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "eVZ" = ( @@ -48793,7 +48793,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/evidence) "fau" = ( @@ -49026,7 +49026,7 @@ "fho" = ( /obj/structure/chair/stool, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "fhs" = ( @@ -49086,7 +49086,7 @@ network = list("Research","SS13") }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "fiV" = ( @@ -49348,7 +49348,7 @@ icon_state = "2-4" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "fpi" = ( @@ -49774,7 +49774,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/evidence) "fyt" = ( @@ -49980,7 +49980,7 @@ /obj/effect/turf_decal/delivery/hollow, /obj/machinery/atmospherics/portable/canister/toxins, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "fCQ" = ( @@ -51333,7 +51333,7 @@ /obj/machinery/atmospherics/portable/canister, /obj/machinery/light/directional/south, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "ghF" = ( @@ -51602,7 +51602,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "gqj" = ( @@ -51774,7 +51774,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, /obj/machinery/door/airlock/engineering/glass{ heat_proof = 1; name = "Supermatter Chamber" @@ -52372,7 +52371,7 @@ }, /obj/effect/turf_decal/caution/stand_clear, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/armory/secure) "gLu" = ( @@ -52862,7 +52861,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "gVX" = ( @@ -52960,7 +52959,7 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /obj/effect/mapping_helpers/airlock/access/all/science/minisat, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat) "gXN" = ( @@ -54072,7 +54071,7 @@ /obj/machinery/atmospherics/pipe/manifold/visible, /obj/item/wrench, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/execution) "hxd" = ( @@ -54732,7 +54731,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/office/ce) "hKu" = ( @@ -54792,7 +54791,7 @@ }, /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "hLt" = ( @@ -54845,7 +54844,7 @@ /obj/item/reagent_containers/food/snacks/grown/harebell, /obj/item/reagent_containers/food/snacks/grown/harebell, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "hLX" = ( @@ -54864,7 +54863,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "hMJ" = ( @@ -55215,7 +55214,7 @@ /area/station/science/toxins/mixing) "hVK" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "hVX" = ( @@ -55292,7 +55291,7 @@ /obj/machinery/disposal, /obj/structure/disposalpipe/trunk, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/secondary/exit) "hYz" = ( @@ -56537,7 +56536,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "iyv" = ( @@ -56663,7 +56662,7 @@ "iBi" = ( /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "iBq" = ( @@ -56958,7 +56957,7 @@ }, /obj/machinery/light_switch/south, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/evidence) "iJz" = ( @@ -57333,7 +57332,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "iQK" = ( @@ -57570,7 +57569,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai) "iYh" = ( @@ -59332,7 +59331,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "jSg" = ( @@ -60455,7 +60454,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/evidence) "kzm" = ( @@ -60978,7 +60977,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "kHZ" = ( @@ -61206,7 +61205,7 @@ /obj/effect/turf_decal/delivery/white/hollow, /obj/machinery/atmospherics/portable/scrubber, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "kNk" = ( @@ -61544,7 +61543,7 @@ /obj/machinery/atmospherics/portable/canister/sleeping_agent, /obj/machinery/light/directional/north, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "kUy" = ( @@ -62877,7 +62876,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "lwx" = ( @@ -63802,7 +63801,7 @@ }, /obj/structure/table/wood, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "lPe" = ( @@ -65404,7 +65403,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "mCT" = ( @@ -66863,7 +66862,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/research) "nia" = ( @@ -67234,7 +67233,7 @@ /obj/item/crowbar, /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "nqt" = ( @@ -67317,7 +67316,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "nsB" = ( @@ -68112,7 +68111,7 @@ }, /obj/machinery/power/port_gen/pacman, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat/service) "nKy" = ( @@ -68294,7 +68293,7 @@ /obj/machinery/economy/vending/suitdispenser, /obj/machinery/light/directional/east, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "nPV" = ( @@ -68328,7 +68327,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "nSs" = ( @@ -68428,7 +68427,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "nUU" = ( @@ -68921,7 +68920,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai) "oeP" = ( @@ -69022,7 +69021,7 @@ /area/station/science/research) "oiv" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/service/chapel) "oiC" = ( @@ -69189,7 +69188,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "ooN" = ( @@ -69354,7 +69353,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "ouq" = ( @@ -69383,7 +69382,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "ovM" = ( @@ -69791,7 +69790,7 @@ }, /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "oIb" = ( @@ -70313,7 +70312,7 @@ }, /obj/machinery/light_switch/north, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "oVx" = ( @@ -70741,7 +70740,6 @@ /turf/simulated/floor/plating, /area/station/maintenance/xenobio_south) "peF" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, /obj/machinery/door/airlock/engineering/glass{ heat_proof = 1; name = "Supermatter Chamber" @@ -71464,13 +71462,13 @@ icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "pxG" = ( /obj/structure/morgue, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "pxM" = ( @@ -71496,7 +71494,7 @@ /obj/item/storage/belt/utility, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "pzQ" = ( @@ -71615,7 +71613,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "pCg" = ( @@ -72656,7 +72654,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "pXX" = ( @@ -73073,7 +73071,7 @@ dir = 10 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/engineering/tech_storage) "qfR" = ( @@ -74023,7 +74021,7 @@ "qFl" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "qFz" = ( @@ -74528,7 +74526,7 @@ pixel_x = -2 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "qTF" = ( @@ -75136,7 +75134,7 @@ dir = 5 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "rif" = ( @@ -75578,7 +75576,7 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /obj/effect/mapping_helpers/airlock/access/all/science/minisat, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat) "rsQ" = ( @@ -75661,7 +75659,7 @@ /obj/machinery/atmospherics/portable/pump, /obj/machinery/light/directional/north, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "ruH" = ( @@ -77043,7 +77041,7 @@ /obj/effect/mapping_helpers/airlock/autoname, /obj/effect/mapping_helpers/airlock/access/all/security/armory, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/armory/secure) "scF" = ( @@ -77087,7 +77085,7 @@ /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "sdO" = ( @@ -77486,7 +77484,7 @@ icon_state = "2-8" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "soO" = ( @@ -77640,7 +77638,7 @@ pixel_y = -24 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/ai) "stc" = ( @@ -77844,7 +77842,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "syP" = ( @@ -78090,7 +78088,7 @@ /obj/machinery/alarm/directional/north, /obj/machinery/atmospherics/unary/tank/air, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/aisat/service) "sFN" = ( @@ -78250,7 +78248,7 @@ /area/station/medical/reception) "sIm" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "sID" = ( @@ -78782,7 +78780,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "sSq" = ( @@ -79134,7 +79132,7 @@ }, /obj/machinery/space_heater, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/execution) "tbE" = ( @@ -80038,7 +80036,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "twN" = ( @@ -80819,7 +80817,7 @@ "tVd" = ( /obj/item/radio/intercom/directional/south, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "tVw" = ( @@ -81040,7 +81038,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "ubB" = ( @@ -81177,7 +81175,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/public/locker) "ueF" = ( @@ -82092,7 +82090,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/command/teleporter) "uEX" = ( @@ -82667,7 +82665,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "uSc" = ( @@ -82694,7 +82692,7 @@ /obj/effect/turf_decal/delivery/hollow, /obj/machinery/atmospherics/portable/canister, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "uSA" = ( @@ -82923,7 +82921,7 @@ sort_type_txt = "14" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/robotics) "uXE" = ( @@ -82937,7 +82935,7 @@ /obj/item/clothing/mask/gas, /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "uXK" = ( @@ -84279,7 +84277,7 @@ icon_state = "1-2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "vDG" = ( @@ -84499,7 +84497,7 @@ /obj/effect/turf_decal/delivery/hollow, /obj/machinery/atmospherics/portable/canister/carbon_dioxide, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "vLQ" = ( @@ -84643,7 +84641,7 @@ /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/research) "vRv" = ( @@ -84890,7 +84888,7 @@ }, /obj/machinery/power/apc/directional/north, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "vXb" = ( @@ -85382,7 +85380,7 @@ "wkM" = ( /obj/machinery/economy/vending/cola, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/secondary/bridge) "wlo" = ( @@ -85731,7 +85729,7 @@ network = list("Research","SS13") }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "wul" = ( @@ -85838,7 +85836,7 @@ /obj/machinery/firealarm/directional/west, /obj/machinery/computer/teleporter, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/turret_protected/aisat/interior) "wxL" = ( @@ -85945,8 +85943,7 @@ /area/station/maintenance/fore) "wzW" = ( /obj/structure/holohoop{ - dir = 8; - pixel_x = -13 + dir = 8 }, /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -86145,7 +86142,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "wET" = ( @@ -86241,7 +86238,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "wJt" = ( @@ -86333,7 +86330,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "wNA" = ( @@ -87379,7 +87376,7 @@ icon_state = "pipe-c" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "xmN" = ( @@ -87459,7 +87456,7 @@ /obj/machinery/disposal, /obj/structure/disposalpipe/trunk, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/hallway/primary/central) "xoB" = ( @@ -87746,7 +87743,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/medical/morgue) "xvX" = ( @@ -88723,7 +88720,7 @@ /obj/machinery/atmospherics/portable/canister/oxygen, /obj/machinery/alarm/directional/east, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/storage) "xSg" = ( @@ -89251,7 +89248,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "yej" = ( @@ -89303,7 +89300,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/science/toxins/launch) "yeW" = ( @@ -89372,7 +89369,7 @@ /obj/effect/mapping_helpers/airlock/autoname, /obj/effect/mapping_helpers/airlock/access/all/security/doors, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/station/security/evidence) "ygK" = ( diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/convoy_ambush.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/convoy_ambush.dmm index 292dace2438e..4c13408974c2 100644 --- a/_maps/map_files220/RandomRuins/SpaceRuins/convoy_ambush.dmm +++ b/_maps/map_files220/RandomRuins/SpaceRuins/convoy_ambush.dmm @@ -1,10 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aX" = ( -/obj/effect/landmark/damageturf, -/turf/simulated/floor/plasteel/airless{ - icon_state = "dark" - }, -/area/ruin/space/unpowered/unpowered_structures) "aZ" = ( /obj/structure/chair{ dir = 8 @@ -78,7 +72,7 @@ "cG" = ( /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "cJ" = ( @@ -102,7 +96,7 @@ /obj/item/clothing/gloves/color/black, /obj/item/clothing/gloves/color/black, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "dx" = ( @@ -135,7 +129,7 @@ amount = 2 }, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "eh" = ( @@ -358,7 +352,7 @@ /obj/effect/turf_decal/delivery/white, /obj/structure/ore_box, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "qa" = ( @@ -384,12 +378,6 @@ }, /turf/simulated/floor/mineral/plastitanium/red, /area/ruin/space/powered) -"rI" = ( -/obj/effect/turf_decal/delivery, -/turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" - }, -/area/ruin/space/unpowered/unpowered_structures) "sn" = ( /obj/structure/disposalpipe/segment{ pixel_x = -1; @@ -733,7 +721,7 @@ /obj/machinery/status_display/directional/east, /obj/machinery/suit_storage_unit/standard_unit, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/powered) "FF" = ( @@ -746,7 +734,7 @@ /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c10, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "FZ" = ( @@ -809,7 +797,7 @@ /obj/item/reagent_containers/pill/methamphetamine, /obj/item/reagent_containers/pill/methamphetamine, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "HI" = ( @@ -899,7 +887,7 @@ /obj/item/clothing/gloves/color/black, /obj/item/clothing/gloves/color/black, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "KZ" = ( @@ -954,7 +942,7 @@ /obj/item/stack/cable_coil, /obj/item/t_scanner, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "NK" = ( @@ -1136,7 +1124,7 @@ /obj/machinery/suit_storage_unit/standard_unit, /obj/machinery/status_display/directional/east, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/powered) "TU" = ( @@ -1239,7 +1227,7 @@ /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "Zv" = ( @@ -2833,7 +2821,7 @@ zv mU dx wB -aX +cG Dq Dq PZ @@ -2889,7 +2877,7 @@ wr zv YP wB -rI +wB tU NK NK @@ -2946,7 +2934,7 @@ wr zv Sw cj -aX +cG Wv Wv cG @@ -4819,8 +4807,8 @@ tZ bf TA wB -rI -rI +wB +wB SA RP wr diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/destroyed_infiltrator.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/destroyed_infiltrator.dmm index b3d58cc4e120..32a81b82b3e0 100644 --- a/_maps/map_files220/RandomRuins/SpaceRuins/destroyed_infiltrator.dmm +++ b/_maps/map_files220/RandomRuins/SpaceRuins/destroyed_infiltrator.dmm @@ -43,6 +43,14 @@ }, /turf/template_noop, /area/template_noop) +"dj" = ( +/obj/structure/table, +/obj/item/gps/ruin{ + pixel_x = 32; + gpstag = "####" + }, +/turf/simulated/floor/mineral/plastitanium/red/airless, +/area/ruin/space/unpowered/unpowered_structures) "dE" = ( /obj/structure/grille/broken, /obj/effect/landmark/damageturf, @@ -1538,7 +1546,7 @@ Ly Ly VC VC -OI +dj Ui hp VC diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/infected_ship.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/infected_ship.dmm index 681ce756f3b8..3ca5f9dda489 100644 --- a/_maps/map_files220/RandomRuins/SpaceRuins/infected_ship.dmm +++ b/_maps/map_files220/RandomRuins/SpaceRuins/infected_ship.dmm @@ -24,7 +24,7 @@ dir = 5; pixel_x = -8 }, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "aF" = ( /obj/effect/spawner/random_spawners/blood_often, @@ -63,12 +63,16 @@ /obj/machinery/door/airlock/freezer{ locked = 1 }, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "bo" = ( /obj/machinery/atmospherics/unary/vent_pump, /turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) +"bJ" = ( +/obj/machinery/door/airlock/survival_pod, +/turf/simulated/floor/mineral/plastitanium, +/area/ruin/space/powered/requires_power_space) "bK" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -89,7 +93,7 @@ dir = 1 }, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "cB" = ( /obj/item/trash/spentcasing{ @@ -114,7 +118,7 @@ /obj/item/stack/cable_coil{ amount = 1 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "cM" = ( /obj/machinery/suit_storage_unit/syndicate{ @@ -202,7 +206,7 @@ /obj/machinery/atmospherics/portable/canister, /obj/machinery/light_construct/directional/east, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "eG" = ( /obj/effect/decal/cleanable/glass, @@ -223,7 +227,7 @@ /obj/item/stack/cable_coil{ amount = 1 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "eL" = ( /obj/structure{ @@ -233,7 +237,7 @@ name = "tesla coil" }, /obj/machinery/light_construct/directional/north, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "eR" = ( /obj/item/trash/spentcasing{ @@ -283,7 +287,7 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 1 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "gK" = ( /obj/machinery/atmospherics/unary/vent_pump{ @@ -322,7 +326,7 @@ /obj/item/trash/syndi_cakes, /obj/effect/spawner/random_spawners/blood_often, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "hG" = ( /obj/machinery/light/small/directional/south, @@ -353,11 +357,11 @@ /obj/effect/decal/cleanable/blood/drip{ icon_state = "5" }, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "iv" = ( /obj/effect/spawner/window/plastitanium, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "iB" = ( /turf/template_noop, @@ -388,7 +392,7 @@ dir = 8 }, /obj/item/toy/sword, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "iP" = ( /obj/effect/turf_decal/stripes/white/line, @@ -403,7 +407,7 @@ /area/ruin/space/powered/requires_power_space) "iS" = ( /mob/living/simple_animal/hostile/alien, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "jb" = ( /turf/simulated/wall/mineral/plastitanium, @@ -442,7 +446,7 @@ /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/splatter, /obj/item/organ/internal/body_egg/alien_embryo, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "jr" = ( /obj/item/chair, @@ -455,7 +459,7 @@ "jw" = ( /obj/effect/spawner/window/plastitanium, /obj/machinery/door/poddoor, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "jW" = ( /mob/living/simple_animal/hostile/alien, @@ -466,7 +470,7 @@ /obj/machinery/door/airlock/hatch{ welded = 1 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "km" = ( /obj/machinery/door/airlock/highsecurity{ @@ -568,7 +572,7 @@ }, /obj/item/organ/internal/body_egg/alien_embryo, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "lu" = ( /obj/structure/bed/nest, @@ -642,7 +646,7 @@ /obj/machinery/optable, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/splatter, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "nz" = ( /mob/living/simple_animal/hostile/alien, @@ -670,7 +674,7 @@ "nU" = ( /obj/structure/grille/broken, /obj/machinery/door/poddoor, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "ol" = ( /obj/machinery/light_construct/directional/north, @@ -693,7 +697,7 @@ pixel_x = 10; pixel_y = 9 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "oL" = ( /obj/item/trash/spentcasing{ @@ -706,7 +710,7 @@ /obj/structure/alien/egg/burst, /obj/effect/spawner/random_spawners/blood_often, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "pj" = ( /obj/machinery/light_construct/directional/west, @@ -718,7 +722,7 @@ /obj/item/stack/cable_coil{ amount = 1 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "pv" = ( /obj/structure/sign/greencross{ @@ -756,7 +760,7 @@ pixel_y = -4 }, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "pO" = ( /obj/machinery/light_construct/directional/south, @@ -824,7 +828,7 @@ welded = 1; locked = 1 }, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "sj" = ( /obj/structure/closet/crate/freezer, @@ -835,11 +839,11 @@ /area/ruin/space/powered/requires_power_space) "st" = ( /obj/machinery/door/airlock/survival_pod, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "sy" = ( /obj/structure/alien/resin/wall, -/turf/simulated/floor, +/turf/simulated/floor/plating/airless, /area/ruin/space/powered/requires_power_space) "sA" = ( /obj/machinery/constructable_frame{ @@ -848,7 +852,7 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 4 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "sQ" = ( /obj/item/airlock_electronics/destroyed, @@ -858,7 +862,7 @@ /mob/living/simple_animal/hostile/alien/queen/large, /obj/structure/bed/nest, /obj/effect/mob_spawn/human/corpse/damaged, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "tE" = ( /obj/machinery/light_construct/directional/north, @@ -904,7 +908,7 @@ /obj/structure/table_frame, /obj/effect/spawner/random_spawners/dirt_often, /obj/item/stack/sheet/metal, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "um" = ( /obj/effect/turf_decal/stripes/white/line{ @@ -937,13 +941,13 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 8 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "vB" = ( /obj/structure/table/glass, /obj/item/scalpel, /obj/item/retractor, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "vL" = ( /obj/effect/turf_decal/stripes/white/line, @@ -1004,6 +1008,10 @@ }, /turf/simulated/floor/mineral/plastitanium/red, /area/ruin/space/powered/requires_power_space) +"xD" = ( +/obj/structure/alien/resin/wall, +/turf/simulated/floor/plating, +/area/ruin/space/powered/requires_power_space) "xG" = ( /obj/machinery/light_construct/directional/west, /obj/item/paper/crumpled, @@ -1013,7 +1021,7 @@ icon_state = "r-casing"; dir = 1 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "yd" = ( /obj/structure/closet/syndicate, @@ -1024,24 +1032,24 @@ /obj/item/clothing/head/surgery, /obj/item/tank/internals/anesthetic, /obj/item/clothing/mask/breath, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "yp" = ( /obj/structure/fans/tiny, /obj/structure/alien/resin/wall, -/turf/simulated/floor, +/turf/simulated/floor/plating/airless, /area/ruin/space/powered/requires_power_space) "yu" = ( /obj/machinery/door/poddoor, /obj/structure/fans/tiny, -/turf/simulated/floor, +/turf/simulated/floor/plating/airless, /area/ruin/space/powered/requires_power_space) "yV" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance/two, /obj/structure/extinguisher_cabinet/directional/north, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "zq" = ( /obj/machinery/light_construct/directional/east, @@ -1055,7 +1063,7 @@ /obj/machinery/light/small/directional/west, /obj/item/reagent_containers/syringe, /obj/item/organ/external/leg, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "zI" = ( /obj/effect/turf_decal/stripes/white/line{ @@ -1097,7 +1105,7 @@ /obj/item/organ/external/leg/right, /obj/item/organ/external/chest, /obj/effect/decal/cleanable/blood/splatter, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "AD" = ( /obj/effect/decal/cleanable/blood/drip{ @@ -1133,7 +1141,7 @@ "BA" = ( /obj/machinery/door/airlock/external, /obj/structure/fans/tiny, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "BK" = ( /obj/machinery/light/small/directional/south, @@ -1171,7 +1179,7 @@ "ET" = ( /obj/machinery/atmospherics/portable/canister, /obj/machinery/light_construct/directional/east, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "Fv" = ( /obj/structure/table, @@ -1197,10 +1205,10 @@ "FM" = ( /obj/structure/table/reinforced, /obj/item/storage/box/zipties, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "FQ" = ( -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "FS" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, @@ -1241,12 +1249,13 @@ /area/ruin/space/powered/requires_power_space) "He" = ( /obj/effect/spawner/random_spawners/dirt_often, +/obj/item/paintkit/gygax_syndie, /turf/simulated/floor/pod, /area/ruin/space/powered/requires_power_space) "Hg" = ( /obj/structure/bed/nest, /obj/effect/mob_spawn/human/corpse/damaged, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "Hn" = ( /obj/structure/table, @@ -1258,7 +1267,7 @@ "HH" = ( /obj/machinery/door/poddoor, /obj/effect/spawner/window/plastitanium, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "HV" = ( /obj/structure/extinguisher_cabinet/empty{ @@ -1281,7 +1290,7 @@ /obj/item/storage/toolbox/syndicate, /obj/structure/closet, /obj/item/multitool, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "Ie" = ( /obj/effect/spawner/random_spawners/blood_often, @@ -1309,12 +1318,12 @@ pixel_x = -35 }, /obj/structure/alien/egg/burst, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "Ja" = ( /obj/structure/table/reinforced, /obj/item/stack/spacecash/c200, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "Je" = ( /obj/machinery/light_construct/directional/south, @@ -1342,7 +1351,7 @@ /area/ruin/space/powered/requires_power_space) "JK" = ( /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "JO" = ( /obj/item/stack/sheet/plasteel, @@ -1352,7 +1361,7 @@ /mob/living/simple_animal/hostile/alien/sentinel, /obj/effect/decal/cleanable/blood/gibs/xeno/body, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "Kv" = ( /obj/effect/turf_decal/stripes/white/line, @@ -1381,7 +1390,7 @@ icon_state = "smes"; name = "power storage unit" }, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "LA" = ( /obj/structure/closet/secure_closet/freezer/fridge, @@ -1424,7 +1433,7 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 4 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "MM" = ( /obj/item/chair{ @@ -1455,12 +1464,12 @@ state_open = 1; req_access = null }, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "NP" = ( /obj/item/reagent_containers/food/drinks/oilcan, /obj/item/wrench, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "NY" = ( /obj/effect/turf_decal/stripes/white/line{ @@ -1473,12 +1482,11 @@ /obj/effect/spawner/random_spawners/blood_often, /obj/effect/spawner/random_spawners/dirt_often, /obj/item/organ/external/hand, -/obj/machinery/power/apc/off_station/empty_charge/west, /turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "Ok" = ( /obj/structure/alien/weeds/node, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "OA" = ( /obj/effect/spawner/random_spawners/dirt_often, @@ -1508,7 +1516,7 @@ /obj/structure/closet/crate/engineering, /obj/effect/spawner/lootdrop/maintenance/eight, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "Pq" = ( /obj/item/organ/internal/body_egg/alien_embryo{ @@ -1518,7 +1526,7 @@ /area/ruin/space/powered/requires_power_space) "Pr" = ( /obj/structure/bed/nest, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "Px" = ( /obj/structure/table, @@ -1543,7 +1551,7 @@ /obj/effect/turf_decal/stripes/white/line{ dir = 8 }, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "QU" = ( /obj/machinery/suit_storage_unit/syndicate{ @@ -1579,7 +1587,7 @@ /obj/structure/door_assembly/door_assembly_pod{ anchored = 1 }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "SA" = ( /obj/effect/decal/cleanable/glass, @@ -1609,7 +1617,7 @@ /obj/item/shard{ icon_state = "small" }, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "Tx" = ( /obj/structure{ @@ -1619,7 +1627,7 @@ name = "power storage unit" }, /obj/item/wrench, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "TV" = ( /obj/effect/spawner/random_spawners/dirt_often, @@ -1636,7 +1644,11 @@ icon_state = "medium"; pixel_y = 9 }, -/turf/simulated/floor, +/obj/item/gps/ruin{ + pixel_y = -32; + gpstag = "####" + }, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "UK" = ( /obj/machinery/door/airlock/external{ @@ -1644,7 +1656,7 @@ locked = 1 }, /obj/structure/fans/tiny, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "UL" = ( /obj/structure/alien/egg/burst, @@ -1694,7 +1706,7 @@ dir = 1 }, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "We" = ( /obj/structure/lattice/catwalk, @@ -1715,7 +1727,7 @@ }, /obj/structure/bed/nest, /obj/effect/mob_spawn/human/corpse/syndicatecommando, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "WR" = ( /obj/effect/spawner/random_spawners/blood_often, @@ -1726,7 +1738,7 @@ /area/ruin/space/powered/requires_power_space) "WW" = ( /obj/machinery/door/poddoor, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "Xe" = ( /obj/effect/spawner/random_spawners/blood_often, @@ -1739,7 +1751,7 @@ /area/ruin/space/powered/requires_power_space) "Xx" = ( /obj/structure/alien/egg/burst, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "XJ" = ( /obj/structure/alien/resin/wall, @@ -1748,7 +1760,7 @@ "XL" = ( /obj/structure/bed/nest, /obj/effect/spawner/random_spawners/dirt_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "XW" = ( /obj/structure/kitchenspike_frame, @@ -1815,19 +1827,19 @@ }, /obj/effect/spawner/random_spawners/dirt_often, /obj/effect/spawner/random_spawners/blood_often, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "ZA" = ( /obj/structure/window/plasmareinforced{ dir = 4 }, /obj/structure/alien/egg/burst, -/turf/simulated/floor, +/turf/simulated/floor/plating, /area/ruin/space/powered/requires_power_space) "ZE" = ( /obj/structure/table/reinforced, /obj/item/ammo_box/c9mm, -/turf/simulated/floor, +/turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/requires_power_space) "ZQ" = ( /obj/item/storage/firstaid/fire/empty, @@ -2161,7 +2173,7 @@ iB iB In jb -sy +xD eR hc jb @@ -2182,14 +2194,14 @@ iB iB DC sy -sy +xD Cg jb vk ZQ zH jb -st +bJ jb jb jb @@ -2203,9 +2215,9 @@ iB iB iB sy -sy +xD Ie -sy +xD yd dG As @@ -2224,7 +2236,7 @@ iB iB In sy -sy +xD tE jb vB @@ -2245,7 +2257,7 @@ iB sQ sy sy -sy +xD Cg jb jp @@ -2266,7 +2278,7 @@ fK iB LW In -sy +xD Cg jb eK @@ -2287,14 +2299,14 @@ iB iB iB sy -sy +xD PV hc jb gD jb hc -st +bJ jb jb iB @@ -2378,7 +2390,7 @@ QS jk iL jb -st +bJ jb jb iB diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/mechtransport_new.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/mechtransport_new.dmm index 5f49a26f0f96..422477455600 100644 --- a/_maps/map_files220/RandomRuins/SpaceRuins/mechtransport_new.dmm +++ b/_maps/map_files220/RandomRuins/SpaceRuins/mechtransport_new.dmm @@ -1,6 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "ae" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 9 }, /turf/simulated/floor/mineral/titanium/yellow, @@ -14,7 +14,7 @@ /obj/structure/mecha_wreckage/phazon{ obj_integrity = 40 }, -/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "aH" = ( @@ -175,7 +175,7 @@ /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "dk" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/simulated/floor/mineral/titanium/yellow, @@ -210,7 +210,7 @@ dir = 2; id_tag = "sright_mech" }, -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/simulated/floor/mineral/titanium/purple, @@ -248,6 +248,12 @@ }, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) +"fO" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/camera_bug, +/turf/simulated/floor/mineral/titanium/blue, +/area/ruin/space/powered) "gB" = ( /obj/structure/closet/secure_closet/freezer/fridge, /turf/simulated/floor/mineral/titanium, @@ -306,10 +312,10 @@ /turf/simulated/floor/mineral/plastitanium/red, /area/ruin/space/powered) "hW" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "ib" = ( @@ -340,12 +346,12 @@ /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "iK" = ( -/obj/effect/turf_decal/stripes, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "iP" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/simulated/floor/mineral/titanium/yellow, @@ -618,7 +624,7 @@ /turf/simulated/floor/plating, /area/ruin/space/powered) "ol" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 6 }, /turf/simulated/floor/mineral/titanium/yellow, @@ -665,10 +671,10 @@ /turf/template_noop, /area/template_noop) "pQ" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "qa" = ( @@ -852,8 +858,8 @@ /obj/structure/mecha_wreckage/ripley{ obj_integrity = 20 }, -/obj/effect/turf_decal/stripes, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "tM" = ( @@ -965,10 +971,10 @@ dir = 2; id_tag = "sright_mech" }, -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/purple, /area/ruin/space/powered) "wn" = ( @@ -1007,6 +1013,10 @@ /area/ruin/space/powered) "xa" = ( /obj/structure/chair/stool, +/obj/item/gps/ruin{ + pixel_x = 32; + gpstag = "####" + }, /turf/simulated/floor/mineral/plastitanium/red, /area/ruin/space/powered) "xb" = ( @@ -1061,10 +1071,10 @@ /turf/simulated/floor/mineral/titanium, /area/ruin/space/powered) "yk" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/purple, /area/ruin/space/powered) "ym" = ( @@ -1095,7 +1105,7 @@ /turf/simulated/floor/plating, /area/ruin/space/powered) "yS" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 10 }, /turf/simulated/floor/mineral/titanium/yellow, @@ -1322,7 +1332,7 @@ dir = 2; id_tag = "sright_mech" }, -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/simulated/floor/mineral/titanium/purple, @@ -1411,12 +1421,12 @@ /turf/simulated/floor/mineral/titanium, /area/ruin/space/powered) "Fn" = ( -/obj/effect/turf_decal/stripes{ - dir = 8 - }, /obj/structure/mecha_wreckage/phazon{ obj_integrity = 40 }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "Fr" = ( @@ -1659,7 +1669,7 @@ /turf/simulated/floor/mineral/titanium/blue, /area/ruin/space/powered) "IG" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/simulated/floor/mineral/titanium/yellow, @@ -1688,7 +1698,7 @@ /turf/simulated/floor/plating, /area/ruin/space/powered) "IL" = ( -/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "Ja" = ( @@ -1704,10 +1714,10 @@ /turf/simulated/floor/mineral/titanium, /area/ruin/space/powered) "Jr" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "Js" = ( @@ -1783,7 +1793,7 @@ /obj/structure/mecha_wreckage/ripley{ obj_integrity = 20 }, -/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "Lj" = ( @@ -1820,10 +1830,10 @@ dir = 2; id_tag = "sright_mech" }, -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/purple, /area/ruin/space/powered) "LC" = ( @@ -1887,7 +1897,7 @@ /turf/simulated/floor/mineral/plastitanium/red, /area/ruin/space/powered) "MN" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 5 }, /turf/simulated/floor/mineral/titanium/yellow, @@ -1897,10 +1907,10 @@ dir = 2; id_tag = "sleft_mech" }, -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/purple, /area/ruin/space/powered) "Nb" = ( @@ -1957,10 +1967,10 @@ /turf/template_noop, /area/template_noop) "Pf" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "Pi" = ( @@ -1992,10 +2002,10 @@ /obj/structure/mecha_wreckage/durand{ obj_integrity = 100 }, -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "PS" = ( @@ -2174,19 +2184,19 @@ /turf/simulated/floor/plating, /area/ruin/space/powered) "SN" = ( -/obj/effect/turf_decal/stripes{ - dir = 5 - }, /obj/structure/mecha_wreckage/ripley{ obj_integrity = 40 }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "SV" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "Te" = ( @@ -2196,7 +2206,7 @@ /turf/simulated/floor/mineral/titanium, /area/ruin/space/powered) "Tf" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/simulated/floor/mineral/titanium/purple, @@ -2237,10 +2247,10 @@ /turf/simulated/floor/mineral/titanium, /area/ruin/space/powered) "Ud" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/purple, /area/ruin/space/powered) "Uj" = ( @@ -2259,10 +2269,10 @@ /turf/simulated/floor/plating, /area/ruin/space/powered) "Ul" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 6 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "Uo" = ( @@ -2272,6 +2282,10 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/ruin/space/powered) +"Uq" = ( +/obj/item/paintkit/durand_soviet, +/turf/simulated/floor/mineral/titanium, +/area/ruin/space/powered) "Uu" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 30 @@ -2296,10 +2310,10 @@ dir = 2; id_tag = "sleft_mech" }, -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/purple, /area/ruin/space/powered) "UY" = ( @@ -2464,7 +2478,7 @@ /obj/structure/mecha_wreckage/durand{ obj_integrity = 100 }, -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/simulated/floor/mineral/titanium/yellow, @@ -2495,10 +2509,10 @@ /turf/simulated/floor/mineral/titanium/purple, /area/ruin/space/powered) "YU" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/mineral/titanium/yellow, /area/ruin/space/powered) "ZF" = ( @@ -3243,7 +3257,7 @@ qU qU qU PT -Gt +fO VL oE QY @@ -3876,7 +3890,7 @@ hw hw YU Pf -AC +Uq qA Kb Kb diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm index ee23b7afc7bc..8251e2b8936f 100644 --- a/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm @@ -4190,8 +4190,8 @@ /turf/template_noop, /area/space/nearstation) "DJ" = ( -/obj/effect/turf_decal/stripes, /obj/effect/turf_decal/arrows, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, @@ -5225,10 +5225,10 @@ }, /area/ruin/space/spacehotelv1/guestroom3) "Le" = ( -/obj/effect/turf_decal/stripes{ +/obj/effect/turf_decal/arrows, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/arrows, /turf/simulated/floor/plasteel/airless{ icon_state = "dark" }, diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/transit_bar.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/transit_bar.dmm index 3247df0bec33..b5282e591432 100644 --- a/_maps/map_files220/RandomRuins/SpaceRuins/transit_bar.dmm +++ b/_maps/map_files220/RandomRuins/SpaceRuins/transit_bar.dmm @@ -9,7 +9,7 @@ }, /obj/item/book/manual/barman_recipes, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/powered) "c" = ( @@ -26,7 +26,7 @@ dir = 5 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/powered) "d" = ( @@ -101,7 +101,7 @@ pixel_y = -32 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/powered) "u" = ( @@ -183,7 +183,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/powered) "J" = ( @@ -225,7 +225,7 @@ /area/ruin/space/powered) "Q" = ( /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/powered) "R" = ( @@ -267,7 +267,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/powered) "Y" = ( diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/voxraiders_1.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/voxraiders_1.dmm index b5e03425dd50..06dffdcb7476 100644 --- a/_maps/map_files220/RandomRuins/SpaceRuins/voxraiders_1.dmm +++ b/_maps/map_files220/RandomRuins/SpaceRuins/voxraiders_1.dmm @@ -36,7 +36,7 @@ /obj/effect/turf_decal/box, /obj/item/multitool, /turf/simulated/floor/plasteel/airless{ - icon_state = "blackfull" + icon_state = "dark" }, /area/ruin/space/unpowered/unpowered_structures) "dQ" = ( @@ -289,6 +289,7 @@ /obj/item/stock_parts/cell, /obj/item/clothing/gloves/ring/gold, /obj/item/stack/spacecash/c50, +/obj/item/stack/spacecash/c200, /turf/simulated/floor/mineral/plastitanium/red/nitrogen{ icon_state = "plastitanium" }, @@ -336,6 +337,10 @@ /area/template_noop) "EM" = ( /obj/structure/chair/comfy/shuttle, +/obj/item/gps/ruin{ + pixel_x = -32; + gpstag = "####" + }, /turf/simulated/floor/mineral/plastitanium/red/nitrogen, /area/ruin/space/powered) "Fi" = ( diff --git a/_maps/map_files220/RandomZLevels/blackmesa.dmm b/_maps/map_files220/RandomZLevels/blackmesa.dmm index 5381b4b4d5c1..c0d38bf476ac 100644 --- a/_maps/map_files220/RandomZLevels/blackmesa.dmm +++ b/_maps/map_files220/RandomZLevels/blackmesa.dmm @@ -112,7 +112,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_decon_room) "akR" = ( @@ -155,7 +155,7 @@ /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "ang" = ( @@ -248,6 +248,7 @@ /obj/structure/table, /obj/machinery/light/directional/east, /obj/structure/alien/xenoweeds, +/obj/item/reagent_containers/glass/bottle/regeneration, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/entrance_lobby) "atT" = ( @@ -291,7 +292,7 @@ "avn" = ( /obj/machinery/door/airlock/science, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "avx" = ( @@ -365,7 +366,8 @@ dir = 1 }, /obj/machinery/power/emitter{ - dir = 8 + dir = 8; + anchored = 1 }, /turf/simulated/floor/catwalk, /area/awaymission/black_mesa/scientist_hall) @@ -387,7 +389,7 @@ }, /obj/effect/mapping_helpers/airlock/locked, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "aBt" = ( @@ -395,7 +397,7 @@ /turf/simulated/floor/plating/xen, /area/awaymission/black_mesa/xen/acid_lake_hallway) "aBu" = ( -/obj/machinery/door/airlock/multi_tile/command/glass, +/obj/machinery/door/airlock/command/glass, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/black_ops_hallway_two) "aCa" = ( @@ -561,11 +563,9 @@ /turf/simulated/floor/plasteel/smooth, /area/awaymission/black_mesa/deep_sci_medbay) "aOq" = ( -/obj/structure/flora/biolumini/flower, -/turf/simulated/floor/beach/away/coastline/xen{ - dir = 8 - }, -/area/awaymission/black_mesa/xen/acid_lake_hallway) +/obj/effect/landmark/damageturf, +/turf/simulated/floor/plasteel, +/area/awaymission/black_mesa/black_ops_entrance) "aOA" = ( /obj/structure/chair/office, /turf/simulated/floor/plasteel/dark, @@ -609,7 +609,7 @@ /obj/machinery/door/airlock/science, /obj/effect/mapping_helpers/airlock/locked, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "aRc" = ( @@ -631,7 +631,7 @@ /obj/machinery/chem_dispenser, /obj/structure/reagent_dispensers/fueltank/chem/north, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "aUx" = ( @@ -659,7 +659,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "aUS" = ( @@ -678,8 +678,8 @@ /turf/simulated/floor/plasteel/smooth, /area/awaymission/black_mesa/hecu_zone_external_hall) "aVR" = ( -/obj/machinery/door/airlock/multi_tile/command/glass, /obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/command, /turf/simulated/floor/plasteel/smooth, /area/awaymission/black_mesa/black_ops_hall) "aVW" = ( @@ -858,7 +858,7 @@ "bjS" = ( /obj/structure/chair/office/dark, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "bkh" = ( @@ -950,7 +950,7 @@ "bry" = ( /obj/machinery/door_control/shutter/west{ id = "nihi"; - req_access = 271 + req_one_access_txt = "271" }, /turf/simulated/floor/vault{ icon_state = "alienvault" @@ -1064,7 +1064,7 @@ icon_state = "bodyscanner" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "bxi" = ( @@ -1110,8 +1110,7 @@ /turf/simulated/floor/plasteel/smooth, /area/awaymission/black_mesa/high_security_hallway) "bAz" = ( -/obj/machinery/door/airlock/multi_tile/command/glass, -/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/command/glass, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/black_ops_turret_blockade) "bAE" = ( @@ -1137,7 +1136,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "bBQ" = ( @@ -1201,7 +1200,7 @@ pixel_y = 10 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "bFV" = ( @@ -1248,7 +1247,7 @@ /obj/structure/table, /obj/item/restraints/handcuffs/alien, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "bJt" = ( @@ -1270,7 +1269,7 @@ dir = 4 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "bKD" = ( @@ -1289,7 +1288,7 @@ icon_keyboard = "generic_key_broken" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "bKS" = ( @@ -1328,7 +1327,7 @@ "bLE" = ( /obj/machinery/light/directional/west, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "bLK" = ( @@ -1437,7 +1436,8 @@ dir = 1 }, /obj/machinery/power/emitter{ - dir = 1 + dir = 1; + anchored = 1 }, /turf/simulated/floor/catwalk, /area/awaymission/black_mesa/black_ops_button) @@ -1469,7 +1469,7 @@ /obj/structure/alien/xenoweeds, /obj/item/ammo_box/magazine/enforcer/lethal, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "bRc" = ( @@ -1634,7 +1634,7 @@ "cct" = ( /obj/machinery/light/directional/north, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "ccM" = ( @@ -1667,7 +1667,7 @@ "cer" = ( /obj/machinery/light/directional/south, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "ceV" = ( @@ -1729,7 +1729,7 @@ can_be_unanchored = 0 }, /obj/structure/rack, -/obj/item/gun/energy/immolator, +/obj/item/gun/energy/immolator/multi, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/high_security_emitter) "cjz" = ( @@ -1941,7 +1941,7 @@ }, /obj/item/storage/box/drinkingglasses, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "cty" = ( @@ -1976,7 +1976,7 @@ /obj/item/kitchen/knife/combat/survival, /obj/item/geiger_counter, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa) "cxX" = ( @@ -2059,7 +2059,7 @@ "cDl" = ( /obj/structure/closet/crate/can, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "cED" = ( @@ -2081,7 +2081,7 @@ amount = 30 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "cFH" = ( @@ -2119,7 +2119,7 @@ /obj/structure/flora/biolumini/lamp/weaklight, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "cIK" = ( @@ -2247,7 +2247,7 @@ /obj/item/pen, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "cPk" = ( @@ -2268,7 +2268,7 @@ /obj/structure/table, /obj/item/hemostat/alien, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "cTI" = ( @@ -2357,7 +2357,7 @@ /obj/machinery/light_construct/directional/north, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "cYu" = ( @@ -2415,13 +2415,13 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "cZE" = ( /obj/structure/filingcabinet/chestdrawer, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "cZS" = ( @@ -2436,7 +2436,7 @@ /obj/structure/alien/xenoweeds, /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "daR" = ( @@ -2505,7 +2505,7 @@ /obj/machinery/light_construct/directional/east, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "dfu" = ( @@ -2528,7 +2528,7 @@ "dgZ" = ( /obj/structure/extinguisher_cabinet/directional/east, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "dhl" = ( @@ -2556,7 +2556,7 @@ /obj/structure/alien/xenoweeds, /obj/item/clothing/under/rank/security/officer/dispatch, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "dko" = ( @@ -2622,6 +2622,7 @@ id = "teledown"; id_target = "teleup" }, +/obj/effect/turf_decal/box, /turf/simulated/floor/mineral/titanium, /area/awaymission/black_mesa/lambda_hallway) "dou" = ( @@ -2656,8 +2657,11 @@ "dpo" = ( /obj/structure/table, /obj/structure/alien/xenoweeds, +/obj/machinery/door_control/shutter{ + id = "exp_room" + }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "dpI" = ( @@ -2682,7 +2686,7 @@ "dsw" = ( /obj/effect/gibspawner/human, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "dsF" = ( @@ -2739,7 +2743,7 @@ "dvg" = ( /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "dvJ" = ( @@ -2756,7 +2760,7 @@ dir = 4 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa) "dwj" = ( @@ -2808,7 +2812,7 @@ "dyC" = ( /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "dzf" = ( @@ -2864,7 +2868,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa) "dEx" = ( @@ -2994,7 +2998,7 @@ "dNc" = ( /obj/machinery/light/directional/west, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "dNg" = ( @@ -3046,7 +3050,7 @@ "dON" = ( /obj/item/tape/black_mesa/first_eas, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "dPd" = ( @@ -3054,13 +3058,13 @@ dir = 4 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "dPL" = ( -/obj/structure/xen_pylon, -/turf/simulated/floor/plating/xen, -/area/awaymission/black_mesa/xen/acid_lake) +/obj/machinery/door/airlock/command/glass, +/turf/simulated/floor/plasteel/smooth, +/area/awaymission/black_mesa/black_ops_hall) "dQy" = ( /obj/machinery/gateway/centeraway{ calibrated = 0; @@ -3203,14 +3207,10 @@ }, /area/awaymission/black_mesa/science_internal) "dZy" = ( -/obj/effect/turf_decal/siding/trimline/blue{ - alpha = 130; - dir = 8 - }, -/obj/machinery/light_construct/directional/west, -/obj/structure/alien/xenoweeds, +/obj/machinery/door/airlock/command, +/obj/effect/mapping_helpers/airlock/locked, /turf/simulated/floor/plasteel/smooth, -/area/awaymission/black_mesa/entrance_internal_hall) +/area/awaymission/black_mesa/black_ops_hall) "dZQ" = ( /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/hecu_zone_atrium) @@ -3365,9 +3365,9 @@ /turf/simulated/wall/indestructible/rock/mineral, /area/awaymission/black_mesa/entrance_lobby) "eja" = ( -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer, -/turf/simulated/floor/plating/xen, -/area/awaymission/black_mesa/xen/acid_lake_hallway) +/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen, +/turf/simulated/floor/plasteel, +/area/awaymission/black_mesa/employee_dorm_room) "ejd" = ( /obj/structure/extinguisher_cabinet/directional/west, /turf/simulated/floor/plasteel, @@ -3588,9 +3588,7 @@ /turf/simulated/floor/bluegrid, /area/awaymission/black_mesa/lambda_teleporter) "exE" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - dir = 2 - }, +/obj/machinery/door/airlock/public, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/black_ops_science_room) "eyf" = ( @@ -3697,7 +3695,7 @@ /obj/item/reagent_containers/food/condiment/milk, /obj/machinery/light/directional/east, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "eHr" = ( @@ -3878,7 +3876,7 @@ id_tag = "nihi" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/black_ops_entrance) "eSl" = ( @@ -3890,7 +3888,7 @@ "eSp" = ( /obj/machinery/r_n_d/protolathe, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "eSD" = ( @@ -3993,9 +3991,10 @@ /turf/simulated/floor/plating/dirt/xen_dirt, /area/awaymission/black_mesa/xen/vortigaunt_village) "fbn" = ( -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen, -/turf/simulated/floor/plating/ironsand, -/area/awaymission/black_mesa/hecu_zone_towards_facility) +/obj/structure/table/wood, +/obj/item/ammo_box/magazine/m556, +/turf/simulated/floor/wood/fancy/cherry, +/area/awaymission/black_mesa/xen/vortigaunt_village_nihilanth) "fbq" = ( /obj/effect/baseturf_helper{ baseturf = /turf/simulated/floor/plating @@ -4392,12 +4391,13 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "fBJ" = ( /obj/machinery/power/emitter{ - dir = 1 + dir = 1; + anchored = 1 }, /turf/simulated/floor/plasteel/smooth{ icon_state = "smooth_large" @@ -4494,7 +4494,7 @@ desc = "Learn science by destroying things!" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_decon_room) "fJF" = ( @@ -4588,9 +4588,9 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/high_security_surgery) "fPn" = ( -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen/zombie, -/turf/simulated/floor/plating/asteroid, -/area/awaymission/black_mesa/hecu_zone_towards_facility) +/obj/structure/xen_pylon, +/turf/simulated/floor/plating/xen, +/area/awaymission/black_mesa/xen/village_hallway) "fPp" = ( /obj/structure/table, /obj/item/storage/box/donkpockets/empty, @@ -4655,7 +4655,7 @@ "fSP" = ( /obj/machinery/atmospherics/portable/canister, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "fST" = ( @@ -4764,8 +4764,9 @@ dir = 4 }, /obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/caution/stand_clear, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_decon_room) "gaz" = ( @@ -4796,7 +4797,7 @@ "gdi" = ( /obj/effect/decal/cleanable/blood, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "gdy" = ( @@ -4808,7 +4809,7 @@ id_tag = "sectorcmain" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "gdY" = ( @@ -4824,7 +4825,7 @@ /area/awaymission/black_mesa/entrance) "get" = ( /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_decon_room) "gev" = ( @@ -4961,7 +4962,7 @@ dir = 1 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "gol" = ( @@ -5062,7 +5063,7 @@ /obj/structure/table, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "guL" = ( @@ -5163,7 +5164,7 @@ "gxV" = ( /obj/machinery/light/directional/west, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "gyi" = ( @@ -5215,7 +5216,7 @@ /obj/structure/table, /obj/item/scalpel/alien, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "gBe" = ( @@ -5267,17 +5268,23 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/high_security_sec_point) "gEn" = ( -/obj/structure/alien/xenoweeds, -/obj/structure{ - icon = 'modular_ss220/maps220/icons/misc_objects.dmi'; - icon_state = "microscope"; - name = "\improper Микроскоп"; - density = 1; - anchored = 1; - desc = "Самый обычный микроскоп." +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/simulated/floor/plasteel, -/area/awaymission/black_mesa/entrance_large_office) +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/wall/indestructible/riveted, +/area/awaymission/black_mesa/security_outpost) "gHa" = ( /obj/machinery/light/directional/north, /turf/simulated/floor/plasteel/smooth, @@ -5295,7 +5302,7 @@ /obj/structure/alien/xenoweeds, /obj/item/shield/riot, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "gHP" = ( @@ -5304,7 +5311,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "gHV" = ( @@ -5332,7 +5339,7 @@ /obj/machinery/light/directional/west, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "gMj" = ( @@ -5340,7 +5347,7 @@ dir = 1 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "gMF" = ( @@ -5412,7 +5419,7 @@ "gRP" = ( /obj/structure/reagent_dispensers/watertank, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "gSd" = ( @@ -5421,7 +5428,9 @@ /area/awaymission/black_mesa/black_ops_button) "gSe" = ( /obj/structure/table, -/obj/item/gun/projectile/automatic/wt550, +/obj/item/gun/projectile/automatic/m90, +/obj/item/ammo_box/magazine/m556, +/obj/item/ammo_box/magazine/m556, /turf/simulated/floor/plating/xen, /area/awaymission/black_mesa/xen/vortigaunt_village) "gSi" = ( @@ -5509,7 +5518,7 @@ dir = 4 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_decon_room) "gXj" = ( @@ -5800,7 +5809,7 @@ "hpC" = ( /obj/machinery/light/directional/east, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "hqJ" = ( @@ -5922,7 +5931,7 @@ }, /obj/machinery/reagentgrinder, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "hBk" = ( @@ -6015,7 +6024,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "hIk" = ( @@ -6052,14 +6061,14 @@ /obj/item/ammo_box/magazine/beretta/mm919, /obj/item/ammo_box/magazine/beretta/mm919, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa) "hKb" = ( /obj/structure/chair/office/dark, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "hKN" = ( @@ -6105,7 +6114,7 @@ "hNf" = ( /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "hNj" = ( @@ -6113,7 +6122,7 @@ dir = 4 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "hNN" = ( @@ -6181,7 +6190,7 @@ /obj/structure/alien/xenoweeds, /obj/structure/flora/biolumini/flower/weaklight, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "hUH" = ( @@ -6189,7 +6198,7 @@ /obj/effect/gibspawner/xeno, /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "hUI" = ( @@ -6210,7 +6219,7 @@ /obj/structure/rack/gunrack, /obj/item/ammo_box/shotgun/buck, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "hWN" = ( @@ -6275,9 +6284,9 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/entrance_lobby) "ibM" = ( -/obj/effect/light_emitter/colored/lime, -/turf/simulated/floor/plating/xen, -/area/awaymission/black_mesa/xen/nihilanth_computer) +/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen, +/turf/simulated/floor/plating, +/area/awaymission/black_mesa/employee_dorm_room) "ict" = ( /obj/structure/closet/crate/can, /turf/simulated/floor/plasteel, @@ -6293,6 +6302,7 @@ /area/awaymission/black_mesa/lambda_teleporter) "icy" = ( /obj/machinery/light/directional/west, +/obj/machinery/porta_turret/syndicate/black_mesa/blackops, /turf/simulated/floor/bluegrid, /area/awaymission/black_mesa/black_ops_turret_blockade) "idq" = ( @@ -6321,7 +6331,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "ifL" = ( @@ -6341,7 +6351,7 @@ /obj/effect/mob_spawn/human/corpse/damaged, /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "ihr" = ( @@ -6470,7 +6480,7 @@ /area/awaymission/black_mesa/resonant_chamber) "ipB" = ( /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "ipV" = ( @@ -6522,11 +6532,9 @@ /turf/simulated/floor/plating, /area/awaymission/black_mesa/resonant_chamber) "iua" = ( -/obj/structure/xen_pylon, -/turf/simulated/floor/beach/away/coastline/xen{ - dir = 8 - }, -/area/awaymission/black_mesa/xen/freeman_hallway) +/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer, +/turf/simulated/floor/plasteel/smooth, +/area/awaymission/black_mesa/lambda_teleporter) "ivk" = ( /obj/structure/flora/biolumini/flower, /turf/simulated/floor/plating/xen, @@ -6536,7 +6544,7 @@ /obj/item/retractor/alien, /obj/item/cautery/alien, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "iwO" = ( @@ -6589,7 +6597,7 @@ /obj/item/grenade/chem_grenade, /obj/item/screwdriver, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "iCo" = ( @@ -6599,7 +6607,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "iCI" = ( @@ -6631,7 +6639,7 @@ /obj/item/reagent_containers/food/snacks/poppypretzel, /obj/item/reagent_containers/food/snacks/plum_pie, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "iEm" = ( @@ -6669,7 +6677,7 @@ /turf/simulated/floor/plasteel/smooth, /area/awaymission/black_mesa/entrance_internal_hall) "iFq" = ( -/obj/machinery/door/airlock/multi_tile/command/glass, +/obj/machinery/door/airlock/command/glass, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/black_ops_science_room) "iFr" = ( @@ -6679,7 +6687,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "iFv" = ( @@ -6833,7 +6841,7 @@ "iPm" = ( /obj/machinery/autolathe, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "iPv" = ( @@ -6851,7 +6859,7 @@ "iPW" = ( /obj/structure/railing, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_decon_room) "iQJ" = ( @@ -6871,12 +6879,10 @@ }, /area/awaymission/black_mesa/deep_sci_hall) "iQT" = ( -/obj/effect/bump_teleporter{ - id = "hecuup"; - id_target = "hecudown" - }, +/obj/structure/alien/xenoweeds, +/obj/effect/turf_decal/arrows, /turf/simulated/floor/mineral/titanium, -/area/awaymission/black_mesa/black_ops_entrance) +/area/awaymission/black_mesa/genetics_elevator) "iQV" = ( /obj/structure/chair/stool/bamboo, /turf/simulated/floor/wood/fancy/cherry, @@ -7011,7 +7017,7 @@ "iYS" = ( /obj/effect/mob_spawn/human/corpse/damaged, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "iZg" = ( @@ -7321,7 +7327,7 @@ "jsj" = ( /obj/effect/gibspawner/human, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "jsy" = ( @@ -7351,7 +7357,7 @@ "juh" = ( /obj/effect/decal/cleanable/blood/drip, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "jva" = ( @@ -7414,7 +7420,7 @@ name = "Jim Norton's Quebecois Coffee apron" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "jzj" = ( @@ -7422,7 +7428,8 @@ dir = 8 }, /obj/machinery/power/emitter{ - dir = 1 + dir = 1; + anchored = 1 }, /turf/simulated/floor/catwalk, /area/awaymission/black_mesa/scientist_hall) @@ -7535,7 +7542,7 @@ /obj/machinery/light/directional/west, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "jHk" = ( @@ -7548,7 +7555,7 @@ /obj/structure/alien/xenoweeds, /obj/item/paper/researchnotes, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "jHF" = ( @@ -7696,14 +7703,13 @@ /turf/simulated/floor/beach/away/coastline/xen, /area/awaymission/black_mesa/xen/acid_lake_hallway) "jUd" = ( -/obj/effect/turf_decal/siding/trimline/blue{ - alpha = 130; - dir = 8 +/obj/effect/turf_decal/arrows{ + dir = 1 }, -/obj/structure/alien/xenoweeds, -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer, -/turf/simulated/floor/plasteel/smooth, -/area/awaymission/black_mesa/entrance_internal_hall) +/turf/simulated/floor/vault{ + icon_state = "alienvault" + }, +/area/awaymission/black_mesa/xen/nihilanth_computer) "jUh" = ( /obj/item/storage/firstaid/fire, /turf/simulated/floor/plating/xen, @@ -7744,7 +7750,7 @@ dir = 1 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "jWv" = ( @@ -7757,7 +7763,7 @@ /obj/structure/alien/xenoweeds, /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "jWQ" = ( @@ -7840,7 +7846,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "kbN" = ( @@ -7946,7 +7952,7 @@ "kht" = ( /obj/effect/gibspawner/human, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "khv" = ( @@ -7967,6 +7973,9 @@ "kig" = ( /obj/structure/rack/gunrack, /obj/effect/decal/cleanable/dirt, +/obj/item/ammo_box/magazine/m556, +/obj/item/ammo_box/magazine/m556, +/obj/item/ammo_box/magazine/m556, /turf/simulated/floor/plasteel/dark, /area/awaymission/black_mesa/xen/acid_lake_building) "kii" = ( @@ -8132,7 +8141,7 @@ "ksI" = ( /obj/item/gun/projectile/shotgun/automatic/combat, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "ktr" = ( @@ -8183,11 +8192,11 @@ /turf/simulated/floor/plasteel/smooth, /area/awaymission/black_mesa/black_ops_armory) "kwz" = ( -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer, -/turf/simulated/floor/beach/away/coastline/xen{ - dir = 8 +/obj/effect/turf_decal/arrows, +/turf/simulated/floor/vault{ + icon_state = "alienvault" }, -/area/awaymission/black_mesa/xen/acid_lake_hallway) +/area/awaymission/black_mesa/xen/nihilanth_computer) "kwE" = ( /obj/effect/baseturf_helper{ baseturf = /turf/simulated/floor/plating/xen @@ -8426,11 +8435,11 @@ }, /area/awaymission/black_mesa/xen/entering_zone) "kPc" = ( -/obj/structure/shockplant, -/turf/simulated/floor/beach/away/coastline/xen{ - dir = 4 - }, -/area/awaymission/black_mesa/xen/acid_lake_hallway) +/obj/structure/window/reinforced, +/obj/structure/closet, +/obj/item/ammo_box/shotgun/buck, +/turf/simulated/floor/plasteel, +/area/awaymission/black_mesa/security_outpost) "kPp" = ( /obj/machinery/chem_heater, /turf/simulated/floor/plasteel, @@ -8471,7 +8480,8 @@ pixel_y = 10 }, /obj/machinery/door_control/shutter{ - id = "biolabs" + id = "biolabs"; + name = "Biolabs Blastdoor Control" }, /turf/simulated/floor/catwalk, /area/awaymission/black_mesa/resonant_chamber) @@ -8518,10 +8528,8 @@ }, /area/awaymission/black_mesa/xen/acid_lake_hallway) "kRO" = ( -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen/zombie, -/obj/effect/gibspawner/human, -/turf/simulated/floor/plating/ironsand, -/area/awaymission/black_mesa/hecu_zone_towards_facility) +/turf/simulated/floor/beach/away/coastline/beachcorner/xen, +/area/awaymission/black_mesa/xen/acid_lake_hallway) "kSZ" = ( /obj/machinery/light/directional/north, /turf/simulated/floor/plasteel, @@ -8716,6 +8724,7 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/black_ops_entrance) "lgI" = ( +/obj/machinery/door/airlock/command, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/black_ops_turret_blockade) "lhm" = ( @@ -8724,14 +8733,13 @@ /area/awaymission/black_mesa/hecu_zone_towards_facility) "liq" = ( /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "ljD" = ( -/obj/effect/mob_spawn/human/corpse/damaged, -/obj/effect/decal/cleanable/blood, -/turf/simulated/floor/plating/ironsand, -/area/awaymission/black_mesa/hecu_zone_towards_facility) +/obj/item/ammo_box/magazine/enforcer/lethal, +/turf/simulated/floor/plasteel, +/area/awaymission/black_mesa/entrance_lobby) "ljT" = ( /obj/effect/landmark/burnturf, /turf/simulated/floor/plasteel/smooth, @@ -8789,9 +8797,9 @@ /area/awaymission/black_mesa/dorm_computers) "lmi" = ( /obj/structure/table, -/obj/item/folder/blue, +/obj/item/stack/telecrystal/twenty, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "lml" = ( @@ -8820,7 +8828,7 @@ /obj/item/folder/blue, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "lnQ" = ( @@ -8880,12 +8888,13 @@ dir = 10 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "lrK" = ( /obj/machinery/power/emitter{ - dir = 4 + dir = 4; + anchored = 1 }, /obj/machinery/light/directional/west, /turf/simulated/floor/redgrid, @@ -9039,7 +9048,7 @@ "lyJ" = ( /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/scientist_zombie, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_decon_room) "lzo" = ( @@ -9208,9 +9217,7 @@ /area/awaymission/black_mesa/tram_tunnel) "lKn" = ( /obj/structure/flora/biolumini, -/turf/simulated/floor/beach/away/coastline/xen{ - dir = 8 - }, +/turf/simulated/floor/beach/away/coastline/xen, /area/awaymission/black_mesa/xen/acid_lake_hallway) "lKw" = ( /obj/effect/spawner/window/reinforced/grilled, @@ -9258,7 +9265,7 @@ "lMU" = ( /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "lNi" = ( @@ -9272,7 +9279,7 @@ /area/awaymission/black_mesa/cryo_room) "lOL" = ( /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "lPu" = ( @@ -9285,7 +9292,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "lPM" = ( @@ -9309,7 +9316,7 @@ /obj/structure/extinguisher_cabinet/directional/south, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "lRc" = ( @@ -9386,7 +9393,7 @@ /area/awaymission/black_mesa/security_outpost) "lXl" = ( /obj/structure/table, -/obj/item/ammo_box/magazine/wt550m9, +/obj/item/stack/telecrystal/fifty, /turf/simulated/floor/plating/xen, /area/awaymission/black_mesa/xen/vortigaunt_village) "lXo" = ( @@ -9422,7 +9429,7 @@ /obj/structure/table, /obj/item/reagent_containers/food/drinks/coffee, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "lZl" = ( @@ -9491,7 +9498,8 @@ dir = 1 }, /obj/machinery/power/emitter{ - dir = 4 + dir = 4; + anchored = 1 }, /turf/simulated/floor/catwalk, /area/awaymission/black_mesa/scientist_hall) @@ -9524,7 +9532,7 @@ "mfO" = ( /obj/machinery/door/airlock/command, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "mfQ" = ( @@ -9624,7 +9632,7 @@ id = "sectorcmain2" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "mlK" = ( @@ -9682,7 +9690,7 @@ "mpu" = ( /obj/machinery/door_control/shutter/east{ id = "nihi"; - req_access = 271 + req_one_access_txt = "271" }, /turf/simulated/floor/vault{ icon_state = "alienvault" @@ -9750,7 +9758,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "mwb" = ( @@ -9873,7 +9881,7 @@ "mDy" = ( /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "mDG" = ( @@ -9929,7 +9937,7 @@ dir = 2 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "mJo" = ( @@ -10031,7 +10039,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "mOZ" = ( @@ -10072,7 +10080,7 @@ "mQD" = ( /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "mQK" = ( @@ -10116,7 +10124,7 @@ /obj/structure/alien/xenoweeds, /obj/item/clothing/head/helmet, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "mSt" = ( @@ -10261,7 +10269,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "mZX" = ( @@ -10343,7 +10351,9 @@ /area/awaymission/black_mesa/hecu_zone_camp) "ndD" = ( /obj/structure/lattice/catwalk/mining, -/obj/machinery/power/emitter, +/obj/machinery/power/emitter{ + anchored = 1 + }, /turf/simulated/floor/chasm/straight_down/lava_land_surface/normal_air{ light_color = null; light_range = 0; @@ -10437,7 +10447,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "nkg" = ( @@ -10466,7 +10476,7 @@ "nnb" = ( /obj/machinery/light/directional/west, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "nnq" = ( @@ -10564,9 +10574,18 @@ /turf/simulated/floor/plasteel/smooth, /area/awaymission/black_mesa/genetics_elevator) "ntL" = ( -/obj/machinery/porta_turret/syndicate/black_mesa/blackops, -/turf/simulated/floor/bluegrid, -/area/awaymission/black_mesa/black_ops_turret_blockade) +/obj/structure/table, +/obj/structure/alien/xenoweeds, +/obj/structure{ + icon = 'modular_ss220/maps220/icons/misc_objects.dmi'; + icon_state = "microscope"; + name = "\improper Микроскоп"; + density = 1; + anchored = 1; + desc = "Самый обычный микроскоп." + }, +/turf/simulated/floor/plasteel, +/area/awaymission/black_mesa/entrance_lobby) "ntN" = ( /turf/simulated/floor/beach/away/water/deep/xen, /area/awaymission/black_mesa/xen/lost_camp_hallway) @@ -10910,7 +10929,7 @@ "nSy" = ( /obj/machinery/smartfridge/secure/chemistry, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "nSD" = ( @@ -10919,7 +10938,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "nSG" = ( @@ -11112,13 +11131,13 @@ "oeI" = ( /obj/structure/fence, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "ofw" = ( /obj/machinery/economy/vending/plasmaresearch, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "ofJ" = ( @@ -11140,7 +11159,7 @@ dir = 1 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "ogO" = ( @@ -11381,7 +11400,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "oxr" = ( @@ -11401,7 +11420,7 @@ "oyy" = ( /obj/effect/decal/cleanable/blood, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "oyB" = ( @@ -11526,7 +11545,8 @@ /area/awaymission/black_mesa/hecu_zone_infirmary) "oGP" = ( /obj/machinery/power/emitter{ - dir = 8 + dir = 8; + anchored = 1 }, /turf/simulated/floor/redgrid, /area/awaymission/black_mesa/black_ops_turret_blockade) @@ -11593,7 +11613,7 @@ icon_state = "bodyscanner" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "oJf" = ( @@ -11728,6 +11748,7 @@ id = "labdown"; id_target = "labup" }, +/obj/effect/turf_decal/box, /turf/simulated/floor/mineral/titanium, /area/awaymission/black_mesa/scientist_hall) "oRD" = ( @@ -11773,7 +11794,7 @@ /obj/structure/closet, /obj/item/hand_labeler, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "oVV" = ( @@ -11783,7 +11804,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "oWH" = ( @@ -11878,7 +11899,7 @@ "paH" = ( /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "paI" = ( @@ -11919,7 +11940,7 @@ pixel_y = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "pck" = ( @@ -11934,14 +11955,18 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/entrance_lobby) "pcB" = ( -/turf/simulated/floor/mineral/titanium, -/area/awaymission/black_mesa/lambda_hallway) +/obj/structure/marker_beacon/spotlight/jade, +/obj/structure/marker_beacon/spotlight/jade, +/turf/simulated/floor/vault{ + icon_state = "alienvault" + }, +/area/awaymission/black_mesa/xen/nihilanth_hallway) "pdr" = ( /obj/structure/closet, /obj/structure/alien/xenoweeds, /obj/item/clothing/suit/armor/vest/security, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "pdH" = ( @@ -11974,7 +11999,7 @@ dir = 4 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "phm" = ( @@ -12020,7 +12045,7 @@ /obj/machinery/light_construct/directional/west, /obj/effect/decal/cleanable/blood/drip, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "piL" = ( @@ -12050,7 +12075,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "plT" = ( @@ -12099,7 +12124,7 @@ /obj/machinery/door/firedoor, /obj/item/storage/fancy/donut_box, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "pqV" = ( @@ -12193,6 +12218,7 @@ /area/awaymission/black_mesa/hecu_zone_camp) "pxl" = ( /obj/machinery/light/directional/east, +/obj/machinery/porta_turret/syndicate/black_mesa/blackops, /turf/simulated/floor/bluegrid, /area/awaymission/black_mesa/black_ops_turret_blockade) "pxr" = ( @@ -12216,7 +12242,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "pxT" = ( @@ -12281,7 +12307,9 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/entrance_internal_hall) "pCC" = ( -/obj/machinery/power/emitter, +/obj/machinery/power/emitter{ + anchored = 1 + }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/engine, /area/awaymission/black_mesa/deep_sci_turret) @@ -12323,7 +12351,7 @@ /obj/structure/table/glass, /obj/item/clothing/glasses/science, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "pHL" = ( @@ -12355,7 +12383,7 @@ /obj/item/storage/backpack/satchel, /obj/item/storage/backpack/satchel, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "pJG" = ( @@ -12363,6 +12391,7 @@ id = "hecudown"; id_target = "hecuup" }, +/obj/effect/turf_decal/box, /turf/simulated/floor/mineral/titanium, /area/awaymission/black_mesa/black_ops_downstairs_atrium) "pKq" = ( @@ -12456,7 +12485,7 @@ /area/awaymission/black_mesa/genetics_sec) "pPy" = ( /obj/structure/table, -/obj/item/stack/telecrystal, +/obj/item/stack/telecrystal/twenty, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/entrance_large_office) "pPH" = ( @@ -12469,7 +12498,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "pQk" = ( @@ -12575,7 +12604,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "pWK" = ( @@ -12667,11 +12696,13 @@ /turf/simulated/floor/plasteel/dark, /area/awaymission/black_mesa/xen/acid_lake_building) "qfg" = ( -/obj/structure/flora/biolumini, -/turf/simulated/floor/beach/away/coastline/xen{ - dir = 6 +/obj/effect/bump_teleporter{ + id = "hecuup"; + id_target = "hecudown" }, -/area/awaymission/black_mesa/xen/acid_lake_hallway) +/obj/effect/turf_decal/box, +/turf/simulated/floor/mineral/titanium, +/area/awaymission/black_mesa/black_ops_entrance) "qfN" = ( /obj/machinery/light_construct/directional/west, /turf/simulated/floor/plasteel, @@ -12912,7 +12943,7 @@ /turf/simulated/floor/plating/xen, /area/awaymission/black_mesa/xen/vortigaunt_village_nihilanth) "qvj" = ( -/obj/structure/bonfire/lit/dense, +/obj/structure/bonfire/lit, /turf/simulated/floor/plating/dirt/xen_dirt, /area/awaymission/black_mesa/xen/vortigaunt_village) "qwo" = ( @@ -13023,7 +13054,7 @@ /obj/effect/gibspawner/human, /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "qDS" = ( @@ -13098,7 +13129,7 @@ /obj/structure/table, /obj/item/kitchen/knife/combat/survival, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "qGt" = ( @@ -13145,7 +13176,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "qIz" = ( @@ -13185,7 +13216,7 @@ /obj/item/radio/intercom, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "qMA" = ( @@ -13298,7 +13329,7 @@ "qPF" = ( /obj/structure/closet/walllocker/firelocker/south, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "qPR" = ( @@ -13321,7 +13352,7 @@ /area/awaymission/black_mesa/tram_room) "qQc" = ( /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "qQh" = ( @@ -13449,14 +13480,15 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/black_ops_button) "raf" = ( -/obj/effect/mob_spawn/human/corpse/damaged, -/turf/simulated/floor/catwalk, -/area/awaymission/black_mesa/entrance_internal_hall) +/obj/machinery/door/airlock/titanium, +/obj/effect/mapping_helpers/airlock/locked, +/turf/simulated/floor/mineral/titanium, +/area/awaymission/black_mesa/tram_room) "raF" = ( /obj/machinery/light_construct/directional/south, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "rbO" = ( @@ -13483,6 +13515,12 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/awaymission/black_mesa/hecu_zone_tunnel) +"rdw" = ( +/obj/structure/alien/xenoweeds, +/obj/structure/flora/biolumini/flower/weaklight, +/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen/zombie, +/turf/simulated/floor/plasteel, +/area/awaymission/black_mesa/entrance_large_office) "rdI" = ( /obj/structure/chair/office{ dir = 8 @@ -13491,7 +13529,7 @@ /area/awaymission/black_mesa/security_outpost) "rei" = ( /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "reH" = ( @@ -13711,7 +13749,7 @@ "rur" = ( /obj/item/taperecorder/empty, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "ruQ" = ( @@ -13724,7 +13762,7 @@ "rvi" = ( /obj/machinery/r_n_d/destructive_analyzer, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "rvt" = ( @@ -13744,7 +13782,8 @@ /area/awaymission/black_mesa/science_labs) "rxp" = ( /obj/machinery/power/emitter{ - dir = 1 + dir = 1; + anchored = 1 }, /turf/simulated/floor/engine, /area/awaymission/black_mesa/high_security_emitter) @@ -13759,11 +13798,9 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/security_outpost) "rzl" = ( -/obj/structure/flora/biolumini/mine, -/turf/simulated/floor/beach/away/coastline/xen{ - dir = 6 - }, -/area/awaymission/black_mesa/xen/acid_lake_hallway) +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/awaymission/black_mesa/xen/acid_lake_building) "rzE" = ( /obj/effect/gibspawner/human, /turf/simulated/floor/plasteel/freezer, @@ -13818,7 +13855,7 @@ /turf/simulated/floor/wood, /area/awaymission/black_mesa/employee_dorm_room) "rBp" = ( -/obj/structure/bonfire/lit/dense, +/obj/structure/bonfire/lit, /turf/simulated/floor/plating/dirt/xen_dirt, /area/awaymission/black_mesa/xen/vortigaunt_village_nihilanth) "rBw" = ( @@ -13860,7 +13897,7 @@ "rDe" = ( /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen/zombie, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "rDh" = ( @@ -13936,7 +13973,7 @@ /obj/machinery/door/airlock/command, /obj/effect/mapping_helpers/airlock/locked, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/tram_room) "rJm" = ( @@ -14040,7 +14077,7 @@ /obj/structure/alien/xenoweeds, /obj/structure/flora/biolumini/lamp/weaklight, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "rPn" = ( @@ -14067,10 +14104,9 @@ /turf/simulated/wall/indestructible/rock/mineral/xen, /area/awaymission/black_mesa/xen/village_hallway) "rQu" = ( -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer, -/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/damageturf, /turf/simulated/floor/plating, -/area/awaymission/black_mesa/dorm_tunnel) +/area/awaymission/black_mesa/black_ops_entrance) "rQO" = ( /obj/structure/chair/sofa/bench/left, /obj/effect/turf_decal/siding/trimline/blue{ @@ -14086,9 +14122,9 @@ /turf/simulated/floor/plasteel/dark, /area/awaymission/black_mesa/xen/lost_camp) "rQX" = ( -/obj/effect/gibspawner/human, -/turf/simulated/floor/plating/ironsand, -/area/awaymission/black_mesa/hecu_zone_towards_facility) +/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/vortigaunt_hostile, +/turf/simulated/floor/plasteel/smooth, +/area/awaymission/black_mesa/lambda_teleporter) "rRP" = ( /obj/effect/mob_spawn/human/corpse/scientist{ pickable_species = list("Human"); @@ -14116,7 +14152,7 @@ }, /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "rTn" = ( @@ -14241,6 +14277,7 @@ "sbd" = ( /obj/structure/table, /obj/structure/alien/xenoweeds, +/obj/item/paper/researchnotes, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/entrance_lobby) "sbg" = ( @@ -14447,13 +14484,13 @@ /area/awaymission/black_mesa/high_security_emitter) "spC" = ( /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "spQ" = ( /obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "sqa" = ( @@ -14466,10 +14503,7 @@ /area/awaymission/black_mesa/xen/nihilanth_arena) "sqh" = ( /obj/structure/table, -/obj/item/gun/energy/temperature{ - emagged = 1; - name = "faulty temperature gun" - }, +/obj/item/gun/energy/lasercannon, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/deep_sci_turret) "sqX" = ( @@ -14487,7 +14521,7 @@ pixel_x = -5 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "sre" = ( @@ -14575,11 +14609,10 @@ /turf/simulated/wall/indestructible/riveted, /area/awaymission/black_mesa) "swk" = ( -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer, -/turf/simulated/floor/beach/away/coastline/xen{ - dir = 4 - }, -/area/awaymission/black_mesa/xen/acid_lake_hallway) +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/command, +/turf/simulated/floor/plasteel, +/area/awaymission/black_mesa/black_ops_turret_blockade) "swo" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/coffee, @@ -14601,7 +14634,7 @@ "sxP" = ( /obj/machinery/porta_turret/syndicate/black_mesa, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "sxR" = ( @@ -14698,7 +14731,7 @@ "sCc" = ( /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/gas_emitter_chamber) "sCp" = ( @@ -14730,7 +14763,7 @@ pixel_x = 5 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "sCY" = ( @@ -14771,7 +14804,7 @@ /obj/structure/table, /obj/item/circular_saw/alien, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "sGw" = ( @@ -14779,7 +14812,7 @@ /obj/machinery/light_construct/directional/west, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "sHl" = ( @@ -14918,11 +14951,10 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/black_ops_science_room) "sRN" = ( -/obj/structure/flora/biolumini/lamp, -/turf/simulated/floor/beach/away/coastline/xen{ - dir = 8 - }, -/area/awaymission/black_mesa/xen/acid_lake_hallway) +/obj/structure/rack, +/obj/item/whetstone, +/turf/simulated/floor/plasteel/smooth, +/area/awaymission/black_mesa/cryo_storage) "sSg" = ( /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/hecu, /turf/simulated/floor/plasteel/white, @@ -15266,7 +15298,8 @@ "tto" = ( /obj/structure/lattice/catwalk/mining, /obj/machinery/power/emitter{ - dir = 4 + dir = 4; + anchored = 1 }, /turf/simulated/floor/chasm/straight_down/lava_land_surface/normal_air{ light_color = null; @@ -15310,7 +15343,7 @@ /area/awaymission/black_mesa/employee_dorm_room) "tvK" = ( /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa) "tvY" = ( @@ -15431,6 +15464,9 @@ /area/awaymission/black_mesa/hecu_zone_camp) "tFG" = ( /obj/effect/spawner/window/plastitanium, +/obj/machinery/door/poddoor/shutters{ + id_tag = "exp_room" + }, /turf/simulated/floor/plating, /area/awaymission/black_mesa/resonant_chamber) "tFL" = ( @@ -15440,16 +15476,13 @@ }, /area/awaymission/black_mesa/xen/acid_lake_hallway) "tFM" = ( -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen/zombie, -/obj/effect/light_emitter{ - light_color = "#FFFFFF"; - set_cap = 1; - icon = 'modular_ss220/maps220/icons/mapping_helpers.dmi'; - icon_state = "sunlight_helper"; - layer = 10 +/obj/effect/bump_teleporter{ + id = "teleup"; + id_target = "teledown" }, -/turf/simulated/floor/plating/ironsand, -/area/awaymission/black_mesa/hecu_zone_towards_facility) +/obj/effect/turf_decal/box, +/turf/simulated/floor/mineral/titanium, +/area/awaymission/black_mesa/black_ops_hallway_two) "tFX" = ( /obj/effect/gibspawner/human, /turf/simulated/floor/plasteel/smooth, @@ -15696,7 +15729,7 @@ /obj/structure/closet/crate/can, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "tYo" = ( @@ -15711,7 +15744,7 @@ "tYG" = ( /obj/machinery/economy/vending/coffee/free, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "tZg" = ( @@ -15778,7 +15811,7 @@ /obj/structure/filingcabinet/chestdrawer, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "ueE" = ( @@ -15909,7 +15942,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "umi" = ( @@ -15943,7 +15976,7 @@ icon_keyboard = "generic_key_broken" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "urh" = ( @@ -16056,7 +16089,7 @@ /obj/structure/bed/dogbed, /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "uza" = ( @@ -16260,9 +16293,9 @@ }, /area/awaymission/black_mesa/xen/nihilanth_arena) "uKC" = ( -/obj/structure/xen_pylon, -/turf/simulated/floor/plating/xen, -/area/awaymission/black_mesa/xen/nihilanth_computer) +/obj/effect/turf_decal/arrows, +/turf/simulated/floor/mineral/titanium, +/area/awaymission/black_mesa/black_ops_hallway_two) "uKJ" = ( /turf/simulated/floor/plating/xen, /area/awaymission/black_mesa/xen/freeman_hallway) @@ -16292,15 +16325,9 @@ /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/entrance_lobby) "uLn" = ( -/obj/effect/light_emitter{ - light_color = "#FFFFFF"; - set_cap = 1; - icon = 'modular_ss220/maps220/icons/mapping_helpers.dmi'; - icon_state = "sunlight_helper"; - layer = 10 - }, -/turf/simulated/floor/plating/asteroid, -/area/awaymission/black_mesa/hecu_zone_towards_facility) +/obj/structure/holosign/barrier, +/turf/simulated/floor/plasteel, +/area/awaymission/black_mesa/black_ops_entrance) "uLw" = ( /obj/structure/closet, /obj/item/storage/firstaid/brute, @@ -16309,7 +16336,7 @@ /obj/item/storage/firstaid/regular, /obj/item/storage/firstaid/toxin, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "uLA" = ( @@ -16334,12 +16361,10 @@ /turf/simulated/floor/plating/dirt/xen_dirt, /area/awaymission/black_mesa/xen/nihilanth_computer) "uNn" = ( -/obj/effect/bump_teleporter{ - id = "labup"; - id_target = "labdown" - }, -/turf/simulated/floor/mineral/titanium, -/area/awaymission/black_mesa/genetics_elevator) +/obj/structure/rack, +/obj/item/flash, +/turf/simulated/floor/plasteel/smooth, +/area/awaymission/black_mesa/cryo_storage) "uNr" = ( /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen/zombie, /turf/simulated/floor/plasteel, @@ -16418,7 +16443,7 @@ /obj/machinery/light_construct/directional/west, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "uRJ" = ( @@ -16441,7 +16466,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "uRY" = ( @@ -16508,7 +16533,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "uVZ" = ( @@ -16794,7 +16819,7 @@ /obj/structure/table, /obj/item/folder/red, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "vpF" = ( @@ -16841,7 +16866,7 @@ dir = 4 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "vtP" = ( @@ -16984,14 +17009,13 @@ /turf/simulated/floor/plating, /area/awaymission/black_mesa/science_internal) "vFk" = ( -/obj/effect/turf_decal/siding/trimline/blue{ - alpha = 130; - dir = 4 +/obj/effect/bump_teleporter{ + id = "labup"; + id_target = "labdown" }, -/obj/structure/alien/xenoweeds, -/obj/structure/flora/biolumini/lamp/weaklight, -/turf/simulated/floor/plasteel/smooth, -/area/awaymission/black_mesa/entrance_internal_hall) +/obj/effect/turf_decal/box, +/turf/simulated/floor/mineral/titanium, +/area/awaymission/black_mesa/genetics_elevator) "vGh" = ( /obj/effect/turf_decal/siding/red, /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/scientist_zombie, @@ -17072,7 +17096,7 @@ /obj/item/storage/toolbox/mechanical, /obj/item/clothing/gloves/color/yellow, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "vKo" = ( @@ -17147,7 +17171,7 @@ /obj/item/surgicaldrill/alien, /obj/item/hemostat/alien, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/high_security_surgery) "vPe" = ( @@ -17420,14 +17444,14 @@ /obj/item/folder/white, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "wje" = ( /obj/structure/flora/biolumini/mine/weaklight, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "wlb" = ( @@ -17519,7 +17543,7 @@ "wpw" = ( /obj/machinery/light_construct/directional/north, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_decon_room) "wpZ" = ( @@ -17542,7 +17566,7 @@ /obj/structure/alien/xenoweeds, /obj/item/gun/projectile/automatic/pistol/enforcer/lethal, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "wrQ" = ( @@ -17560,7 +17584,7 @@ "wsn" = ( /obj/machinery/door/airlock/science/glass, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "wsC" = ( @@ -17722,7 +17746,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "wBn" = ( @@ -17832,7 +17856,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "wKi" = ( @@ -17847,7 +17871,8 @@ "wKE" = ( /obj/structure/lattice/catwalk/mining, /obj/machinery/power/emitter{ - dir = 1 + dir = 1; + anchored = 1 }, /turf/simulated/floor/chasm/straight_down/lava_land_surface/normal_air{ light_color = null; @@ -17896,9 +17921,7 @@ /turf/simulated/floor/plating/dirt/xen_dirt, /area/awaymission/black_mesa/xen/nihilanth_computer) "wOg" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - dir = 2 - }, +/obj/machinery/door/airlock/silver, /turf/simulated/floor/plasteel/smooth, /area/awaymission/black_mesa/black_ops_server) "wOK" = ( @@ -17918,7 +17941,7 @@ name = "broken pod"; density = 1 }, -/turf/simulated/floor/plasteel/dark, +/turf/simulated/floor/plating, /area/awaymission/black_mesa/xen/acid_lake_building) "wPx" = ( /obj/effect/baseturf_helper{ @@ -18030,7 +18053,7 @@ dir = 4 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "wTC" = ( @@ -18058,7 +18081,7 @@ dir = 1 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "wWn" = ( @@ -18130,7 +18153,7 @@ }, /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "wZH" = ( @@ -18244,7 +18267,7 @@ "xgX" = ( /obj/structure/railing/corner, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_decon_room) "xhR" = ( @@ -18268,12 +18291,8 @@ }, /area/awaymission/black_mesa/xen/freeman_hallway) "xlP" = ( -/obj/effect/bump_teleporter{ - id = "teleup"; - id_target = "teledown" - }, -/turf/simulated/floor/mineral/titanium, -/area/awaymission/black_mesa/black_ops_hallway_two) +/turf/simulated/floor/plating, +/area/awaymission/black_mesa/xen/acid_lake_building) "xmi" = ( /obj/machinery/photocopier, /turf/simulated/floor/plasteel/dark, @@ -18415,7 +18434,7 @@ }, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "xsq" = ( @@ -18459,7 +18478,7 @@ dir = 8 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "xwD" = ( @@ -18482,7 +18501,7 @@ /obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/xen, /obj/effect/decal/cleanable/blood, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "xxl" = ( @@ -18498,9 +18517,9 @@ /area/awaymission/black_mesa/entrance_internal_hall) "xxt" = ( /obj/machinery/light_construct/directional/west, -/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer, +/obj/effect/landmark/awaymissions/black_mesa/random_mob_placer/vortigaunt_hostile, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "xxB" = ( @@ -18518,7 +18537,7 @@ "xyI" = ( /obj/effect/gibspawner/human, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "xyX" = ( @@ -18566,7 +18585,7 @@ /obj/structure/alien/xenoweeds, /obj/structure/reagent_dispensers/water_cooler, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/entrance_lobby) "xFf" = ( @@ -18585,7 +18604,7 @@ /obj/machinery/light/directional/south, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "xFO" = ( @@ -18627,7 +18646,7 @@ /area/awaymission/black_mesa/cryo_room) "xIf" = ( /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "xIr" = ( @@ -18657,7 +18676,7 @@ dir = 1 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "xKJ" = ( @@ -18700,7 +18719,7 @@ "xOI" = ( /obj/effect/mob_spawn/human/corpse/damaged, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_internal) "xOS" = ( @@ -18717,9 +18736,7 @@ /turf/simulated/floor/plasteel/smooth, /area/awaymission/black_mesa/deep_sci_medbay) "xPM" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - dir = 2 - }, +/obj/machinery/door/airlock/silver, /turf/simulated/floor/plasteel, /area/awaymission/black_mesa/black_ops_button) "xPR" = ( @@ -18753,7 +18770,7 @@ /obj/machinery/light_construct/directional/south, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/resonant_chamber) "xSs" = ( @@ -18801,7 +18818,7 @@ pixel_y = -32 }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/science_labs) "xVj" = ( @@ -18818,7 +18835,7 @@ /turf/simulated/floor/plating/xen, /area/awaymission/black_mesa/xen/freeman_arena) "xVG" = ( -/obj/item/ammo_box/magazine/wt550m9, +/obj/item/ammo_box/magazine/m556, /turf/simulated/floor/plating/xen, /area/awaymission/black_mesa/xen/freeman_puzzle) "xVR" = ( @@ -18860,7 +18877,7 @@ /obj/item/chair/stool, /obj/structure/alien/xenoweeds, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/equipment_room) "xYx" = ( @@ -18916,7 +18933,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/power/emitter, +/obj/machinery/power/emitter{ + anchored = 1 + }, /turf/simulated/floor/catwalk, /area/awaymission/black_mesa/scientist_hall) "yai" = ( @@ -18997,9 +19016,11 @@ /turf/simulated/floor/plating/asteroid, /area/awaymission/black_mesa/hecu_zone_towards_facility) "yhB" = ( -/obj/structure/flora/biolumini/flower, -/turf/simulated/floor/beach/away/coastline/xen, -/area/awaymission/black_mesa/xen/acid_lake_hallway) +/obj/structure/table, +/obj/structure/alien/xenoweeds, +/obj/item/healthanalyzer/advanced, +/turf/simulated/floor/plasteel, +/area/awaymission/black_mesa/entrance_lobby) "yia" = ( /obj/structure/cable{ d1 = 4; @@ -19077,7 +19098,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel/dark{ - icon_state = "blackfull" + icon_state = "dark" }, /area/awaymission/black_mesa/security_outpost) "ylL" = ( @@ -19444,11 +19465,6 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM cBU cBU cBU @@ -19607,13 +19623,13 @@ cBU cBU cBU cBU -"} -(3,1,1) = {" cBU cBU cBU cBU cBU +"} +(3,1,1) = {" cBU cBU cBU @@ -19699,14 +19715,6 @@ cBU cBU cBU cBU -pDM -pDM -pDM -eIT -eIT -coE -pDM -pDM cBU cBU cBU @@ -19864,8 +19872,6 @@ cBU cBU cBU cBU -"} -(4,1,1) = {" cBU cBU cBU @@ -19879,6 +19885,8 @@ cBU cBU cBU cBU +"} +(4,1,1) = {" cBU cBU cBU @@ -19955,16 +19963,6 @@ cBU cBU cBU cBU -pDM -pDM -eIT -eja -eIT -fie -eIT -eIT -pDM -pDM cBU cBU cBU @@ -19979,23 +19977,6 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM -pDM -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -20019,6 +20000,13 @@ cBU cBU cBU cBU +pDM +pDM +pDM +pDM +pDM +pDM +pDM cBU cBU cBU @@ -20036,9 +20024,6 @@ cBU cBU cBU cBU -pDM -pDM -pDM cBU cBU cBU @@ -20072,6 +20057,9 @@ cBU cBU cBU cBU +pDM +pDM +pDM cBU cBU cBU @@ -20121,8 +20109,6 @@ cBU cBU cBU cBU -"} -(5,1,1) = {" cBU cBU cBU @@ -20156,6 +20142,8 @@ cBU cBU cBU cBU +"} +(5,1,1) = {" cBU cBU cBU @@ -20211,17 +20199,6 @@ cBU cBU cBU cBU -pDM -pDM -mBt -eIT -eIT -eIT -eIT -eIT -eIT -eIT -pDM cBU cBU cBU @@ -20230,23 +20207,6 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM -pDM -pDM -rSN -rSN -aug -oHA -tFL -pDM -pDM -pDM -pDM -pDM cBU cBU cBU @@ -20294,26 +20254,15 @@ cBU pDM pDM pDM -hMz pDM pDM pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +rSN +rSN +aug +oHA +tFL pDM pDM pDM @@ -20363,54 +20312,147 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -"} -(6,1,1) = {" -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +pDM +hMz +pDM +pDM +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +pDM +pDM +pDM +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +"} +(6,1,1) = {" +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -20458,27 +20500,6 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM -oHA -oHA -oHA -oHA -oHA -kPc -oHA -swk -oHA -pDM pDM pDM pDM @@ -20502,9 +20523,6 @@ coV coV coV coV -cYW -pDM -pDM pDM cBU cBU @@ -20515,11 +20533,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU pDM pDM pDM @@ -20547,6 +20560,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM hMz @@ -20714,29 +20735,29 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +pDM pDM pDM -qfg -qnz -qnz -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV coV coV coV @@ -20759,10 +20780,6 @@ coV coV coV coV -coV -coV -coV -pDM pDM pDM cBU @@ -20771,10 +20788,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU pDM pDM pDM @@ -20803,6 +20816,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM egj @@ -20971,27 +20992,27 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +pDM pDM -rzl -qnz -qnz -coV -qnz -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -cYW -coV -coV -coV -coV coV coV coV @@ -21017,14 +21038,6 @@ coV coV coV coV -coV -coV -coV -coV -pDM -pDM -pDM -pDM pDM pDM pDM @@ -21059,6 +21072,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM egj @@ -21227,28 +21248,28 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM coV -qnz -qnz -coV -coV -coV -pDM -pDM -pDM -pDM -pDM -pDM -coV -coV -coV -coV -coV -coV -coV -coV coV coV coV @@ -21284,14 +21305,6 @@ coV coV coV coV -coV -coV -coV -coV -coV -coV -coV -coV ccM pxr wwZ @@ -21316,6 +21329,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -21484,31 +21505,31 @@ cBU cBU cBU cBU -pDM -sLJ -qnz -qnz -qnz -qnz -pDM -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU cBU pDM pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM -egN +qnz +qnz +coV +coV +aaL egN pZW egN @@ -21534,14 +21555,6 @@ coV coV coV coV -coV -coV -coV -bYn -coV -coV -coV -coV cYW coV coV @@ -21573,6 +21586,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -21741,13 +21762,6 @@ cBU cBU cBU cBU -pDM -qnz -qnz -qnz -qnz -pDM -pDM cBU cBU cBU @@ -21764,6 +21778,13 @@ cBU cBU cBU cBU +cBU +pDM +pDM +qnz +qnz +coV +coV pDM pDM pDM @@ -21798,14 +21819,6 @@ coV coV coV coV -coV -coV -coV -coV -coV -coV -coV -coV kRH aaL jPD @@ -21830,6 +21843,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -21867,7 +21888,7 @@ vmV vmV bRL vmV -iua +vmV vmV pDM pDM @@ -21998,14 +22019,6 @@ cBU cBU cBU cBU -pDM -qnz -qnz -coV -pDM -pDM -cBU -cBU cBU cBU cBU @@ -22022,6 +22035,14 @@ cBU cBU cBU cBU +pDM +pDM +lKn +coV +qnz +coV +coV +pDM cBU cBU cBU @@ -22044,14 +22065,6 @@ cBU cBU pDM pDM -pDM -coV -coV -coV -coV -coV -coV -coV coV coV bYn @@ -22087,6 +22100,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -22255,15 +22276,6 @@ cBU cBU cBU cBU -pDM -coV -qnz -coV -pDM -cBU -cBU -cBU -cBU cBU cBU cBU @@ -22280,6 +22292,14 @@ cBU cBU cBU cBU +pDM +eIT +jTT +coV +coV +coV +coV +pDM cBU cBU cBU @@ -22302,13 +22322,6 @@ cBU cBU cBU pDM -pDM -pDM -coV -coV -coV -cYW -coV coV coV coV @@ -22344,6 +22357,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -22512,17 +22533,6 @@ cBU cBU cBU cBU -pDM -coV -coV -coV -pDM -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -22539,6 +22549,14 @@ cBU cBU cBU cBU +pDM +eIT +jTT +coV +coV +coV +coV +pDM cBU cBU cBU @@ -22567,11 +22585,6 @@ pDM pDM pDM pDM -pDM -pDM -pDM -pDM -pDM coV coV coV @@ -22601,6 +22614,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -22768,22 +22789,6 @@ cBU cBU cBU cBU -pDM -pDM -bYn -coV -coV -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -22801,6 +22806,14 @@ cBU cBU cBU cBU +pDM +eIT +jTT +coV +coV +coV +coV +pDM cBU cBU cBU @@ -22858,6 +22871,14 @@ pDM cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM hyk egj @@ -23025,23 +23046,6 @@ cBU cBU cBU cBU -pDM -jTT -coV -coV -coV -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -23058,6 +23062,15 @@ cBU cBU cBU cBU +pDM +pDM +ekK +jTT +coV +coV +coV +coV +pDM cBU cBU cBU @@ -23115,6 +23128,14 @@ pDM cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM uKJ uKJ @@ -23282,15 +23303,6 @@ cBU cBU cBU cBU -pDM -jTT -coV -coV -bYn -pDM -cBU -cBU -cBU cBU cBU cBU @@ -23307,6 +23319,15 @@ cBU cBU cBU cBU +pDM +eIT +eIT +jTT +coV +coV +coV +coV +pDM cBU cBU cBU @@ -23356,6 +23377,11 @@ cBU cBU cBU cBU +pDM +pDM +eIT +hoQ +pDM cBU cBU cBU @@ -23364,11 +23390,6 @@ cBU cBU cBU cBU -pDM -pDM -eIT -hoQ -pDM cBU cBU cBU @@ -23539,15 +23560,6 @@ cBU cBU cBU cBU -pDM -yhB -coV -qnz -coV -pDM -cBU -cBU -cBU cBU cBU cBU @@ -23564,6 +23576,15 @@ cBU cBU cBU cBU +pDM +mBt +eIT +jTT +coV +coV +coV +pDM +pDM cBU cBU cBU @@ -23614,6 +23635,10 @@ cBU cBU cBU cBU +pDM +eIT +hoQ +pDM cBU cBU cBU @@ -23622,10 +23647,6 @@ cBU cBU cBU cBU -pDM -eIT -hoQ -pDM cBU cBU cBU @@ -23796,22 +23817,6 @@ cBU cBU cBU cBU -pDM -pDM -coV -qnz -coV -pDM -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -23828,6 +23833,14 @@ cBU cBU cBU cBU +pDM +fie +kRO +sLJ +qnz +coV +coV +pDM cBU cBU cBU @@ -23886,6 +23899,14 @@ pDM pDM cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM jAL uKJ @@ -24054,22 +24075,6 @@ cBU cBU cBU cBU -pDM -qnz -qnz -qnz -qnz -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -24085,6 +24090,14 @@ cBU cBU cBU cBU +pDM +pDM +pDM +qnz +qnz +qnz +coV +pDM cBU cBU cBU @@ -24143,6 +24156,14 @@ eIT pDM cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM uKJ hyk @@ -24311,22 +24332,6 @@ cBU cBU cBU cBU -pDM -qnz -qnz -qnz -qnz -pDM -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -24343,6 +24348,14 @@ cBU cBU cBU cBU +pDM +pDM +qnz +qnz +coV +coV +pDM +pDM cBU cBU cBU @@ -24400,6 +24413,14 @@ eIT pDM cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM uKJ uKJ @@ -24568,22 +24589,7 @@ cBU cBU cBU cBU -pDM -pDM -qnz -qnz -qnz -qnz -pDM -pDM -pDM cBU -pDM -pDM -pDM -pDM -pDM -pDM cBU cBU cBU @@ -24600,6 +24606,13 @@ cBU cBU cBU cBU +pDM +qnz +coV +coV +coV +coV +pDM cBU cBU cBU @@ -24657,6 +24670,14 @@ hoQ pDM cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -24826,36 +24847,6 @@ cBU cBU cBU cBU -pDM -pDM -qnz -qnz -qnz -qnz -coV -pDM -pDM -pDM -oHA -oHA -oHA -aug -pDM -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -24872,6 +24863,28 @@ cBU cBU cBU cBU +pDM +coV +coV +coV +coV +qnz +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -24914,6 +24927,14 @@ hoQ pDM cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -25084,36 +25105,11 @@ cBU cBU cBU cBU -pDM -qnz -qnz -qnz -coV -coV -coV -coV -coV -coV -coV -coV -coV -coV -pDM -pDM -pDM -pDM cBU cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM -pDM -pDM cBU cBU cBU @@ -25124,6 +25120,23 @@ cBU cBU cBU cBU +pDM +pDM +coV +coV +qnz +qnz +pDM +cBU +pDM +pDM +pDM +pDM +pDM +pDM +pDM +cBU +cBU cBU cBU cBU @@ -25171,6 +25184,14 @@ eIT pDM cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM egj @@ -25341,27 +25362,27 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -pDM +coV coV qnz qnz -coV -coV -coV -coV -bYn -coV -coV -coV -coV -coV -coV -coV -pDM -pDM -pDM -pDM pDM pDM pDM @@ -25403,14 +25424,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM hoQ hoQ @@ -25429,6 +25442,14 @@ pDM cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -25599,6 +25620,21 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM coV @@ -25606,21 +25642,6 @@ coV coV coV coV -coV -coV -coV -coV -coV -coV -coV -cYW -coV -qnz -qnz -qnz -qnz -qnz -coV bYn coV coV @@ -25660,14 +25681,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM pDM hoQ @@ -25686,6 +25699,14 @@ pDM cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -25857,11 +25878,23 @@ cBU cBU cBU cBU -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM coV -cYW -coV coV coV coV @@ -25873,18 +25906,6 @@ coV coV coV coV -qnz -qnz -qnz -qnz -qnz -coV -coV -coV -coV -coV -coV -coV coV coV coV @@ -25918,14 +25939,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM pDM hoQ @@ -25943,6 +25956,14 @@ pDM cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -26115,14 +26136,20 @@ cBU cBU cBU cBU -pDM -pDM -aOq -kwz -egN -lKn -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM coV @@ -26132,12 +26159,6 @@ coV qnz coV qnz -qnz -qnz -qnz -qnz -coV -qnz coV coV coV @@ -26174,14 +26195,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM pDM pDM @@ -26200,6 +26213,14 @@ pDM cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -26373,18 +26394,21 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU pDM pDM -pDM -coV coV coV coV @@ -26392,9 +26416,6 @@ coV qnz qnz qnz -qnz -qnz -qnz coV coV coV @@ -26428,14 +26449,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM pDM pDM @@ -26457,6 +26470,14 @@ pDM cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -26640,15 +26661,15 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU pDM pDM pDM pDM pDM -sRN -egN -egN -pDM pDM pDM pDM @@ -26683,14 +26704,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM pDM pDM @@ -26714,6 +26727,14 @@ pDM cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM egj @@ -26901,11 +26922,11 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -26938,14 +26959,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM pDM pDM @@ -26972,6 +26985,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -27194,14 +27215,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM pDM hoQ @@ -27229,6 +27242,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -27451,14 +27472,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM hoQ eIT @@ -27466,7 +27479,7 @@ eIT coE eIT eIT -eIT +hoQ eIT eIT eIT @@ -27486,6 +27499,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM egj @@ -27708,22 +27729,14 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM pDM -hoQ -eIT eIT eIT eIT eIT eIT +hoQ eIT eIT wZR @@ -27744,6 +27757,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -27805,7 +27826,7 @@ nmA fDl aHI aHI -cbQ +fbn nmA lQm lQm @@ -27966,12 +27987,7 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM pDM eIT eIT @@ -27980,12 +27996,9 @@ eIT eIT eIT eIT -hoQ -hoQ -hoQ -hoQ -hoQ -hoQ +eIT +eIT +eIT pDM pDM pDM @@ -28001,6 +28014,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM egj egj @@ -28212,9 +28233,6 @@ glb glb glb pDM -pDM -pDM -cBU cBU cBU cBU @@ -28227,22 +28245,17 @@ cBU cBU cBU cBU -cBU -cBU -pDM -hoQ -eIT -eIT -eIT -eIT -eIT -pDM pDM pDM pDM pDM pDM pDM +eIT +eIT +eIT +hoQ +hoQ pDM cBU cBU @@ -28258,6 +28271,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM egj @@ -30884,7 +30905,7 @@ qQx tMu aHI aHI -cbQ +fbn nmA lQm lQm @@ -31284,7 +31305,7 @@ coD duq dEx lUJ -lUJ +xlP pzr kbV lUJ @@ -31398,7 +31419,7 @@ lQm nmA aHI aHI -cbQ +fbn nmA lQm lQm @@ -32051,7 +32072,7 @@ glb rJm pzr keq -lUJ +xlP uzo uzo lUJ @@ -32315,7 +32336,7 @@ pzr pzr pzr uzo -lUJ +xlP pzr jSI uCx @@ -32415,7 +32436,7 @@ aHI nmA aHI aHI -cbQ +fbn nmA ddQ lQm @@ -32571,7 +32592,7 @@ oKR bQp pzr xGo -uzo +rzl uzo pzr lUJ @@ -32672,7 +32693,7 @@ aHI tMu aHI aHI -cbQ +fbn nmA lQm lQm @@ -32928,7 +32949,7 @@ cbQ cjE nmA aHI -cbQ +fbn xRP nmA weS @@ -33342,7 +33363,7 @@ uzo lUJ pzr wOT -lUJ +xlP uWR qEp mKp @@ -35484,7 +35505,7 @@ cBU cBU pDM htb -cNs +jUd lwD cNs cNs @@ -35523,7 +35544,7 @@ cNs cNs cNs lwD -cNs +kwz kCU pDM cBU @@ -35741,7 +35762,7 @@ cBU cBU pDM htb -cNs +jUd cNs cNs cNs @@ -35780,7 +35801,7 @@ cNs cNs cNs cNs -cNs +kwz kCU pDM cBU @@ -37001,8 +37022,8 @@ sOI sOI sOI sOI -sOI -sOI +plT +plT plT sOI sOI @@ -38093,7 +38114,7 @@ xik inc inc inc -inc +xoF pDM cBU cBU @@ -38607,7 +38628,7 @@ inc inc inc inc -inc +xoF pDM cBU cBU @@ -38864,16 +38885,16 @@ inc inc inc inc -inc +xoF +pDM pDM cBU cBU cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +pDM +pDM cBU cBU cBU @@ -39121,17 +39142,17 @@ inc inc inc inc -inc +xoF +pDM pDM cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +gnh +mPy +dkS +pDM +pDM cBU cBU cBU @@ -39378,7 +39399,16 @@ inc inc inc inc +xoF +pDM +pDM +pDM +pDM +pDM +inc inc +cPK +coH pDM cBU cBU @@ -39387,17 +39417,8 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -"} -(80,1,1) = {" +"} +(80,1,1) = {" cBU cBU cBU @@ -39638,14 +39659,14 @@ inc inc pDM pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +xoF +xoF +inc +inc +inc +inc +pDM cBU cBU cBU @@ -39872,7 +39893,7 @@ inc inc inc inc -uKC +inc fYx fYx inc @@ -39894,6 +39915,14 @@ inc inc inc xoF +xoF +xoF +xoF +xoF +coH +inc +inc +xMl pDM cBU cBU @@ -39902,14 +39931,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU "} (82,1,1) = {" cBU @@ -40152,14 +40173,14 @@ inc inc xoF pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +xoF +xoF +inc +cPK +inc +inc +pDM cBU cBU cBU @@ -40410,13 +40431,13 @@ inc xoF pDM pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +xoF +inc +sXb +inc +iPU +pDM cBU cBU cBU @@ -40624,186 +40645,55 @@ cBU cBU cBU cBU -cBU -cBU -cBU pDM pDM -xoF +pDM +pDM +pDM +pDM +pDM xoF inc inc -lZe -xik inc -rnD +inc +inc cNs cNs -rnD +inc inc inc inc fYx -uMq +xik fYx inc inc inc -rnD +inc cNs cNs -rnD inc inc -lZe inc inc inc -ibM inc inc inc inc -xoF +inc +inc +inc xoF pDM cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -"} -(85,1,1) = {" -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -pDM -xti -xti -xti -xti -apu -xti -wIg -wIg -wIg -wIg -wIg -wIg -wIg -wIg -xti -xti -xti -wIg -xti -xti -obr -xti -xti -xti -xti -sfp -xti -xti pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM -sXe -pui pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +dkS +coH pDM -glb -glb -glb -dPL -glb -glb -glb -glb -glb -glb -glb -glb -glb -glb -glb -glb -glb -glb -qIh -glb -qIh -glb -glb -glb -glb -glb -qIh -qIh pDM cBU cBU @@ -40812,34 +40702,8 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -eJa -cBU -cBU -cBU -cBU -eJa -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +"} +(85,1,1) = {" cBU cBU cBU @@ -40874,6 +40738,36 @@ cBU cBU cBU cBU +pDM +xti +xti +xti +xti +apu +xti +wIg +wIg +wIg +wIg +wIg +wIg +wIg +wIg +xti +xti +xti +wIg +xti +xti +obr +xti +xti +xti +xti +sfp +xti +xti +pDM cBU cBU cBU @@ -40886,33 +40780,160 @@ cBU cBU cBU pDM -xoF +sXe +pui +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +pDM +glb +glb +glb +glb +glb +glb +glb +glb +glb +glb +glb +glb +glb +glb +glb +glb +glb +glb +qIh +glb +qIh +glb +glb +glb +glb +glb +qIh +qIh +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +pDM +mPy +cPK +inc +inc +pDM +pDM xoF inc +lZe inc +mPy inc +cNs +cNs inc inc inc -eaI -cNs -vQy -psj -psj -psj -fYx +qqU +inc fYx fYx -psj -psj -psj -vQy -cNs -eaI +qqU inc inc inc +cNs +cNs +inc +mPy inc +lZe inc inc inc @@ -40922,14 +40943,14 @@ inc inc inc xoF -xoF pDM cBU cBU cBU -cBU -cBU -cBU +pDM +pDM +pDM +pDM cBU cBU cBU @@ -41080,12 +41101,7 @@ cBU cBU cBU cBU -eJa -cBU -cBU -cBU cBU -eJa cBU cBU cBU @@ -41143,42 +41159,46 @@ cBU cBU cBU pDM +pDM +inc +inc +lbw +inc xoF +pDM xoF inc inc -lZe inc inc inc cNs cNs -iew -fYx -waR -fYx -fYx -fYx +inc +inc +inc +inc fYx fYx -waR fYx -wNR +inc +inc +inc +inc cNs cNs inc inc inc -lZe inc inc inc +bpk inc inc inc inc inc -bpk xoF pDM cBU @@ -41195,6 +41215,7 @@ cBU cBU cBU cBU +cBU "} (87,1,1) = {" cBU @@ -41306,7 +41327,7 @@ nkg rJm glb glb -dPL +qIh glb glb glb @@ -41337,12 +41358,7 @@ cBU cBU cBU cBU -eJa -gqw -alh -cBU cBU -eJa cBU cBU cBU @@ -41400,34 +41416,38 @@ cBU cBU cBU pDM -xoF -xoF +ixB +inc +qIz inc inc +xoF +xoF +xoF inc +lZe inc inc inc cNs cNs -iew -waR -avx -fYx -fYx +inc +inc +inc +inc fYx fYx fYx -avx -waR -wNR +inc +inc +inc +inc cNs cNs inc -jtF -inc inc inc +lZe inc inc inc @@ -41439,6 +41459,7 @@ inc xoF pDM pDM +pDM cBU cBU cBU @@ -41594,12 +41615,7 @@ cBU cBU cBU cBU -eJa cBU -pLR -xZJ -cBU -eJa cBU cBU cBU @@ -41657,34 +41673,37 @@ cBU cBU cBU pDM +pDM +inc +inc +inc +inc +xoF +pDM xoF xoF inc inc -lZe -inc inc inc cNs cNs -iew -fYx -waR -fYx -fYx -fYx -fYx -fYx -waR +inc +inc +inc +inc +inc +inc fYx -wNR +inc +inc +inc +inc cNs cNs inc inc inc -lZe -inc inc inc inc @@ -41694,7 +41713,6 @@ inc inc inc inc -xoF pDM pDM cBU @@ -41709,6 +41727,9 @@ cBU cBU cBU cBU +cBU +cBU +cBU "} (89,1,1) = {" cBU @@ -41804,7 +41825,7 @@ pDM pDM sXe sXe -sXe +fPn rJm glb glb @@ -41838,25 +41859,21 @@ cBU cBU cBU cBU -xrh -xrh -xrh -xrh -xrh -xrh -xrh -xrh -xrh -xrh -xrh -xrh -xrh -eJa -rzP -lnj -nKH -alh -eJa +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -41914,45 +41931,45 @@ cBU cBU cBU pDM -xoF +lbw +inc inc inc +xoF +pDM +xoF +xoF +lZe inc inc +rnD +cNs +cNs +rnD inc inc inc -cNs -oGW -vQy -tDf -tDf -tDf fYx fYx fYx -tDf -tDf -tDf -vQy -eaI -cNs -inc inc inc inc +rnD +cNs +cNs +rnD inc -qll inc +lZe inc +xik inc inc inc inc -tax inc inc -xoF pDM cBU cBU @@ -41966,6 +41983,10 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU "} (90,1,1) = {" cBU @@ -42095,35 +42116,31 @@ cBU cBU cBU cBU -xrh -byo -byo -uba -byo -byo -byo -byo -byo -byo -uba -byo -byo -eJa -eJa -tQw -qqZ -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -42171,35 +42188,33 @@ cBU cBU cBU pDM -xoF +cPK inc +ixB +pDM +pDM +pDM +xoF +xoF inc inc -lZe inc inc -rnD cNs cNs -rnD -inc -inc -inc +vQy +psj +psj +psj fYx -idq fYx -inc -inc -inc -rnD -cNs -cNs -rnD -inc -inc -lZe -inc -inc +fYx +psj +psj +psj +vQy +oGW +oGW inc inc inc @@ -42208,9 +42223,15 @@ inc inc inc inc +tax inc xoF pDM +pDM +cBU +cBU +cBU +cBU cBU cBU cBU @@ -42352,34 +42373,24 @@ cBU cBU cBU cBU -xrh -byo -byo -byo -byo -byo -byo -byo -byo -gPT -byo -iZg -byo -eJa -tGI -tQw -tQw -cXa -pPH -tQw -dVy -tQw -tQw +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU eJa -kEn -dpl -kik -rBh +cBU +cBU +cBU +cBU eJa cBU cBU @@ -42421,45 +42432,50 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM -pDM +upk pDM pDM cBU pDM +pDM xoF -inc -inc -inc -inc +lZe inc inc inc cNs cNs -inc -inc -inc -inc +iew fYx +waR fYx fYx -inc -inc -inc -inc +fYx +fYx +fYx +waR +fYx +wNR cNs cNs inc inc inc -inc -inc -inc -inc -inc -inc +lZe inc inc inc @@ -42480,6 +42496,11 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU "} (92,1,1) = {" cBU @@ -42609,34 +42630,24 @@ cBU cBU cBU cBU -xrh -iZg -byo -llO -jFC -byo -tiU -llO -byo -qrX -jFC -byo -byo +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU eJa -naq -bnK -bnK -bnK -qWm -uxS -tQw -fQr -tQw -hsS -rit -rit -rUp -rit +cBU +cBU +cBU +cBU eJa cBU cBU @@ -42678,42 +42689,49 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -mPy -cPK -inc pDM pDM +cBU +cBU +pDM pDM xoF -xoF -inc inc -lZe inc inc inc cNs cNs -inc -inc -inc -inc +iew +waR +avx fYx fYx fYx -inc -inc -inc -inc +fYx +fYx +avx +waR +wNR cNs cNs inc inc inc -lZe -inc -inc inc inc inc @@ -42721,8 +42739,6 @@ inc inc inc inc -inc -xoF pDM pDM cBU @@ -42737,6 +42753,11 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU "} (93,1,1) = {" cBU @@ -42866,34 +42887,24 @@ cBU cBU cBU cBU -xrh -tKJ -byo -ocA -ggX -byo -fOx -ggX -byo -mML -ggX -byo -tKJ -eJa -kcY -bnK -bnK -bnK -hPO -tQw -tQw -cXa -tQw +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU eJa -abt -rit -qVj -hRl +gqw +alh +cBU +cBU eJa cBU cBU @@ -42934,53 +42945,63 @@ cBU cBU cBU cBU -pDM -pDM -inc -inc -lbw -inc -xoF +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM xoF lZe inc -inc -inc -inc -inc +xik inc cNs cNs -inc -inc -inc -inc -inc +iew fYx +waR fYx -inc -inc -inc -inc +fYx +fYx +fYx +fYx +waR +fYx +wNR cNs cNs inc inc inc -inc -inc -inc -inc -xik -inc -inc +lZe inc inc inc inc xoF pDM +pDM +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -43123,35 +43144,45 @@ cBU cBU cBU cBU -xrh -byo -byo -byo -byo -byo -byo -iZg -gPT -byo -byo -byo -byo -eJa -uRJ -bnK -fqj -cXa -hPO -mDg -tQw -nKw -cXa -eJa -pZY -uVv -qpe -qpe -eJa +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +eJa +cBU +pLR +xZJ +cBU +eJa +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -43192,44 +43223,27 @@ cBU cBU cBU pDM -ixB -inc -qIz -inc -inc -xoF -xoF xoF -xoF -lZe inc -lZe -inc -iPU -inc -cNs -cNs inc inc inc -qqU +oGW +eaI +vQy +tDf +tDf +tDf fYx fYx -inc -qqU -inc -inc -inc +fYx +tDf +tDf +tDf +vQy cNs cNs inc -upk -inc -lZe -inc -inc -inc -inc inc inc inc @@ -43238,6 +43252,13 @@ inc inc xoF pDM +pDM +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -43340,7 +43361,7 @@ sXe sXe sXe sXe -alo +sXe sXe sXe sXe @@ -43381,37 +43402,23 @@ cBU cBU cBU xrh -byo -byo -pXr -jFC -byo -xrX -jFC -byo -llO -bUq -byo -byo -eJa -kcY -bnK -bnK -cXa -gmt -xKJ -qWm -qWm -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa +xrh +xrh +xrh +xrh +xrh +xrh +xrh +xrh +xrh +xrh +xrh +xrh eJa +rzP +lnj +nKH +alh eJa cBU cBU @@ -43448,25 +43455,39 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM -inc -inc -inc -inc -xoF -pDM -xoF -xoF lZe inc inc -inc -inc -inc +rnD cNs cNs -inc +rnD inc inc inc @@ -43476,25 +43497,25 @@ fYx inc inc inc -inc +rnD cNs cNs +rnD inc inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc +lZe inc inc xoF pDM +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -43638,55 +43659,65 @@ cBU cBU cBU xrh -tKJ byo -tSb -ggX byo -ocA -ggX +uba +byo +byo +byo +byo +byo +byo +uba byo -mML -ggX byo -tKJ eJa -bxi -cXa -bnK -aTy -tQw -tQw -bnK -bnK -ueF -eeL -tQw -nKj -iRm -nKH -qEe -hcm +eJa tQw -pqV +qqZ +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa eJa -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -43707,17 +43738,7 @@ cBU cBU cBU pDM -lbw -inc -inc -inc -xoF -pDM -xoF -xoF -inc inc -lZe inc inc inc @@ -43729,7 +43750,7 @@ inc inc fYx fYx -inc +fYx inc inc inc @@ -43739,14 +43760,6 @@ cNs inc inc inc -lZe -inc -inc -inc -inc -inc -inc -inc inc inc inc @@ -43765,6 +43778,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (97,1,1) = {" cBU @@ -43899,51 +43920,61 @@ byo byo byo byo -gPT -cAx byo -gPT byo byo byo -xrh +gPT +byo +iZg +byo eJa -pqV -nnq -bnK +tGI +tQw tQw -bnK -bnK -bnK -cXa cXa -bnK +pPH tQw -bnK -bnK -bnK -nnq -nnq +dVy tQw tQw -fcg -lJG -lJG -lJG -lJG -woq -cKL -oHR -lJG -lJG -cKL -cKL -iEv -lJG -lJG -lJG -baK -gpI +eJa +kEn +dpl +kik +rBh +eJa +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -43964,17 +43995,7 @@ cBU cBU cBU pDM -cPK -inc -ixB -pDM -pDM -pDM -xoF -xoF -inc -inc -inc +lZe inc inc inc @@ -43986,7 +44007,7 @@ inc inc fYx fYx -fYx +inc inc inc inc @@ -43996,19 +44017,19 @@ cNs inc inc inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc +lZe inc xoF pDM +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -44152,55 +44173,34 @@ cBU cBU cBU xrh +iZg byo +llO +jFC byo -xrX -xrX +tiU +llO byo -aGZ -xrX +qrX +jFC byo -llO -pXr byo -pzi -tQw +eJa +naq bnK -tQw -hcm -tQw bnK -cXa bnK +qWm +uxS tQw -bnK -bnK -cXa -bnK -bnK -bnK -ueF -bnK -bnK -cXa +fQr +tQw +hsS +rit +rit +rUp +rit eJa -cKL -cKL -cKL -oHR -cKL -lJG -lJG -lJG -lJG -vTw -cKL -rbQ -cKL -cKL -lJG -vTw -gpI cBU cBU cBU @@ -44220,45 +44220,57 @@ cBU cBU cBU cBU -pDM -pDM -upk -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU pDM -xoF -lZe inc -kBd -lZe -xik inc -rnD +inc +inc cNs cNs -rnD inc inc inc -fYx +inc fYx fYx inc inc inc -rnD -cNs -cNs -rnD inc inc -lZe -inc -inc -inc -mPy -inc +cNs +cNs inc inc inc @@ -44279,6 +44291,15 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (99,1,1) = {" cBU @@ -44411,53 +44432,60 @@ cBU xrh tKJ byo -mML -ggX -byo ocA ggX byo fOx ggX byo -kEM -tQw +mML +ggX +byo +tKJ +eJa +kcY bnK -tQw +bnK +bnK +hPO tQw tQw cXa tQw -tQw -fqj -bnK -bnK -ueF -bnK -bnK -cXa -bnK -bnK -bnK -ueF eJa -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -gpI -cKL -cKL -gpI +abt +rit +qVj +hRl +eJa +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -44478,50 +44506,34 @@ cBU cBU cBU cBU -pDM -pDM -pDM cBU cBU pDM -xoF -xoF -inc -inc -inc +pDM inc inc inc cNs -oGW -vQy -psj -psj -psj -fYx -fYx -fYx -psj -psj -psj -vQy -eaI cNs inc inc inc inc +fYx inc +fYx inc inc inc inc +cNs +cNs inc inc inc inc -xoF -xoF +inc +pDM pDM cBU cBU @@ -44536,6 +44548,15 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (100,1,1) = {" cBU @@ -44667,36 +44688,32 @@ cBU cBU xrh byo -etk byo byo byo byo byo +iZg +gPT byo byo byo -gPT byo -tQw -cXa -tQw -tQw -bnK -bnK -bnK -bnK -tQw +eJa +uRJ bnK +ibM +cXa +hPO +mDg tQw -nnq -tQw -tQw -bnK -bnK -bnK -bnK -nnq +nKw +cXa +eJa +pZY +uVv +qpe +qpe eJa cBU cBU @@ -44711,10 +44728,19 @@ cBU cBU cBU cBU -gpI -lJG -oHR -gpI +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -44741,43 +44767,28 @@ cBU cBU cBU pDM -inc xoF inc +kBd +cNs +lwD inc -lZe inc inc inc -cNs -cNs -iew -fYx -waR fYx fYx -uMq fYx -fYx -waR -fYx -wNR -cNs -cNs -inc -inc -inc -lZe -inc inc inc inc inc +lwD +cNs inc inc inc inc -xoF pDM pDM cBU @@ -44793,6 +44804,16 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (101,1,1) = {" cBU @@ -44925,36 +44946,53 @@ cBU xrh byo byo -hxC -byo +pXr +jFC byo -rMY -iZg +xrX +jFC byo -hxC +llO +bUq byo byo -gQA -ueF -tQw -nnq -bnK -bnK -bnK -ueF -nnq -nnq +eJa +kcY bnK bnK -tQw -tQw -gOd -tQw -ueF -tQw -nnq -nnq +cXa +gmt +xKJ +qWm +qWm eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI cBU cBU cBU @@ -44968,18 +45006,6 @@ cBU cBU cBU cBU -gpI -lJG -cKL -gpI -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -44998,51 +45024,32 @@ cBU cBU cBU pDM -pDM -inc -inc +xoF inc inc +cNs +cNs inc inc +qll inc -cNs -cNs -iew -waR -avx -fYx fYx fYx fYx -fYx -avx -waR -wNR -cNs -cNs -inc -inc -inc -inc -inc inc inc inc inc +cNs +cNs inc inc inc inc -xoF pDM cBU cBU cBU -pDM -pDM -pDM -pDM cBU cBU cBU @@ -45050,8 +45057,6 @@ cBU cBU cBU cBU -"} -(102,1,1) = {" cBU cBU cBU @@ -45066,6 +45071,8 @@ cBU cBU cBU cBU +"} +(102,1,1) = {" cBU cBU cBU @@ -45179,39 +45186,6 @@ cBU cBU cBU cBU -xrh -xrh -jkM -xrh -xrh -xrh -xrh -xrh -xrh -xrh -xrh -xrh -xrh -akr -tQw -bMr -akr -eJa -iUc -akr -eJa -tvB -eJa -akr -akr -eJa -tvB -eJa -akr -iUc -eJa -tvB -eJa cBU cBU cBU @@ -45225,9 +45199,56 @@ cBU cBU cBU cBU -gpI +cBU +xrh +tKJ +byo +tSb +ggX +byo +ocA +ggX +byo +mML +ggX +byo +tKJ +eJa +bxi +cXa +bnK +aTy +tQw +tQw +bnK +bnK +ueF +eeL +tQw +nKj +iRm +nKH +qEe +hcm +tQw +pqV +eJa +lJG +lJG lJG +lJG +woq cKL +oHR +lJG +lJG +cKL +cKL +iEv +lJG +lJG +lJG +baK gpI cBU cBU @@ -45255,50 +45276,32 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU pDM -inc -inc -inc -lZe -inc +xoF inc inc cNs cNs -iew -fYx -waR -fYx -fYx -fYx -fYx -fYx -waR -fYx -wNR -cNs -cNs inc inc inc -lZe inc inc +fYx +fYx inc inc inc inc +cNs +cNs +inc inc inc -xoF -xoF -pDM -cBU -cBU -pDM -gnh -mPy -dkS pDM pDM cBU @@ -45307,8 +45310,6 @@ cBU cBU cBU cBU -"} -(103,1,1) = {" cBU cBU cBU @@ -45327,6 +45328,8 @@ cBU cBU cBU cBU +"} +(103,1,1) = {" cBU cBU cBU @@ -45436,39 +45439,12 @@ cBU cBU cBU cBU -sec -dto -dto -dto -sec -cBU cBU cBU cBU cBU cBU cBU -eJa -alh -nKH -nKH -alh -eJa -rit -rit -gly -ueF -eJa -rit -rit -oqJ -rit -eJa -rit -rit -oqJ -rit -eJa cBU cBU cBU @@ -45481,10 +45457,55 @@ cBU cBU cBU cBU -cBU -gpI +xrh +byo +byo +byo +byo +gPT +cAx +byo +gPT +byo +byo +byo +xrh +eJa +pqV +nnq +bnK +tQw +bnK +bnK +bnK +cXa +cXa +bnK +tQw +bnK +bnK +bnK +nnq +nnq +tQw +tQw +fcg +cKL cKL cKL +oHR +cKL +lJG +lJG +lJG +lJG +vTw +cKL +rbQ +cKL +cKL +lJG +vTw gpI cBU cBU @@ -45512,51 +45533,32 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +pDM pDM xoF inc -inc -inc -inc -inc -inc -oGW cNs -vQy -tDf -tDf -tDf -fYx -fYx -fYx -tDf -tDf -tDf -vQy cNs -eaI inc inc inc inc inc +fYx +fYx inc inc -ibM inc inc +cNs +cNs inc inc -xoF -xoF -pDM -pDM -pDM pDM -inc -inc -cPK -coH pDM cBU cBU @@ -45564,8 +45566,6 @@ cBU cBU cBU cBU -"} -(104,1,1) = {" cBU cBU cBU @@ -45585,6 +45585,8 @@ cBU cBU cBU cBU +"} +(104,1,1) = {" cBU cBU cBU @@ -45693,11 +45695,6 @@ cBU cBU cBU cBU -sec -nXQ -dto -dto -sec cBU cBU cBU @@ -45705,28 +45702,6 @@ cBU cBU cBU cBU -eJa -ouG -cBU -eLv -cBU -eJa -hML -ueF -mNM -dyz -eJa -kEn -rit -mNM -dyz -eJa -kEn -rit -mNM -dyz -eJa -cBU cBU cBU cBU @@ -45739,8 +45714,54 @@ cBU cBU cBU cBU +xrh +byo +byo +xrX +xrX +byo +aGZ +xrX +byo +llO +pXr +byo +pzi +tQw +bnK +tQw +eja +tQw +bnK +cXa +bnK +tQw +bnK +bnK +cXa +bnK +bnK +bnK +ueF +bnK +bnK +cXa +eJa gpI -oHR +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +gpI +cKL cKL gpI cBU @@ -45769,17 +45790,17 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU pDM xoF -inc -inc -lZe -inc -inc -rnD +bpk cNs cNs -rnD +inc inc inc inc @@ -45789,40 +45810,18 @@ fYx inc inc inc -rnD +inc cNs cNs -rnD -inc -inc -lZe -inc -inc -inc inc -inc -inc -qll -lZe -xoF -xoF pDM pDM -xoF -xoF -inc -inc -inc -inc -pDM cBU cBU cBU cBU cBU cBU -"} -(105,1,1) = {" cBU cBU cBU @@ -45843,6 +45842,8 @@ cBU cBU cBU cBU +"} +(105,1,1) = {" cBU cBU cBU @@ -45950,11 +45951,6 @@ cBU cBU cBU cBU -sec -mEZ -dto -dto -sec cBU cBU cBU @@ -45962,26 +45958,51 @@ cBU cBU cBU cBU -eJa cBU cBU -pLR -ouG -eJa -uBD -dyz -vtp -dyz -eJa -uBD -dyz -uGL -dyz -eJa -uBD -dyz -uGL -dyz +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +xrh +tKJ +byo +mML +ggX +byo +ocA +ggX +byo +fOx +ggX +byo +kEM +tQw +bnK +tQw +tQw +tQw +cXa +tQw +tQw +fqj +bnK +bnK +ueF +bnK +bnK +cXa +bnK +bnK +bnK +ueF eJa cBU cBU @@ -45997,8 +46018,8 @@ cBU cBU cBU gpI -cKL -cKL +lJG +oHR gpI cBU cBU @@ -46026,14 +46047,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU pDM pDM inc -inc -inc -inc -inc -inc cNs cNs inc @@ -46041,37 +46062,37 @@ inc inc inc fYx -fYx -fYx +idq +xxl inc inc inc inc cNs cNs -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -lZe -xoF -xoF -xoF -xoF -xoF -xoF -coH -inc -inc -xMl pDM +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -46207,44 +46228,56 @@ cBU cBU cBU cBU -sec -dto -nXQ -lEA -sec -cBU +xrh +byo +etk +byo +byo +byo +byo +byo +byo +byo +byo +gPT +byo +tQw +cXa +tQw +tQw +bnK +bnK +bnK +bnK +tQw +bnK +tQw +nnq +tQw +tQw +bnK +bnK +bnK +bnK +nnq +eJa cBU cBU cBU cBU cBU cBU -eJa cBU -gqw -gqw cBU -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa -eJa cBU cBU cBU cBU cBU +gpI +lJG +cKL +gpI cBU cBU cBU @@ -46253,13 +46286,6 @@ cBU cBU cBU cBU -gpI -cKL -cKL -gpI -cBU -cBU -cBU cBU cBU cBU @@ -46285,12 +46311,7 @@ cBU cBU cBU pDM -inc -inc -lZe -ibM -inc -inc +pDM cNs cNs inc @@ -46306,29 +46327,29 @@ inc inc cNs cNs -inc -inc -inc -lZe -inc -inc -inc -inc -inc -inc -inc -lZe -xoF -xoF pDM pDM -xoF -xoF -inc -cPK -inc -inc -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -46464,11 +46485,39 @@ cBU cBU cBU cBU -sec -dto -nXQ -dto -sec +xrh +byo +byo +hxC +byo +byo +rMY +iZg +byo +hxC +byo +byo +gQA +ueF +tQw +nnq +bnK +bnK +bnK +ueF +nnq +nnq +bnK +bnK +tQw +tQw +gOd +tQw +ueF +tQw +nnq +nnq +eJa cBU cBU cBU @@ -46476,14 +46525,16 @@ cBU cBU cBU cBU -eJa cBU cBU cBU cBU -eJa cBU cBU +gpI +vTw +cKL +gpI cBU cBU cBU @@ -46510,10 +46561,6 @@ cBU cBU cBU cBU -gpI -vTw -cKL -gpI cBU cBU cBU @@ -46521,6 +46568,25 @@ cBU cBU cBU cBU +pDM +cNs +cNs +pDM +inc +inc +inc +lcy +lcy +lcy +inc +pDM +pDM +pDM +cNs +cNs +pDM +cBU +cBU cBU cBU cBU @@ -46541,51 +46607,6 @@ cBU cBU cBU cBU -pDM -xoF -inc -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -fYx -xik -fYx -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -xoF -xoF -pDM -pDM -pDM -xoF -inc -sXb -inc -iPU -pDM cBU cBU cBU @@ -46721,23 +46742,38 @@ cBU cBU cBU cBU -sec -dto -nXQ -vdn -sec -cBU -cBU -cBU -cBU -cBU -cBU -cBU +xrh +xrh +jkM +xrh +xrh +xrh +xrh +xrh +xrh +xrh +xrh +xrh +xrh +akr +tQw +bMr +akr eJa -cBU -cBU -cBU -cBU +iUc +akr +eJa +tvB +eJa +akr +akr +eJa +tvB +eJa +akr +iUc +eJa +tvB eJa cBU cBU @@ -46752,6 +46788,10 @@ cBU cBU cBU cBU +gpI +cKL +cKL +gpI cBU cBU cBU @@ -46767,19 +46807,6 @@ cBU cBU cBU cBU -gpI -cKL -cKL -gpI -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -46799,65 +46826,22 @@ cBU cBU cBU pDM -xoF -inc -lZe -inc -mPy -inc -cNs -cNs -inc -inc -inc -qqU -inc -fYx -fYx -qqU -inc -inc -inc cNs cNs -inc -mPy -inc -lZe -inc -inc -inc -inc -inc -inc -inc -inc -xoF -pDM pDM -cBU pDM pDM pDM -dkS -coH +shz +shz +shz pDM pDM cBU -cBU -cBU -cBU -cBU -cBU -"} -(109,1,1) = {" -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +cNs +cNs +pDM cBU cBU cBU @@ -46886,6 +46870,8 @@ cBU cBU cBU cBU +"} +(109,1,1) = {" cBU cBU cBU @@ -46901,40 +46887,6 @@ cBU cBU cBU cBU -hAu -hAu -hAu -wQm -wQm -wQm -wQm -wQm -qZh -qZh -hAu -uGD -sJM -hAu -wQm -njg -heL -uNQ -dDc -urj -fOV -wQm -eOF -fYF -wQm -sJM -uGD -ojR -hAu -hAu -sJM -hAu -hAu -hAu cBU cBU cBU @@ -46970,6 +46922,44 @@ cBU cBU cBU cBU +hAu +hAu +hAu +wQm +wQm +wQm +wQm +wQm +qZh +qZh +hAu +uGD +sJM +hAu +wQm +njg +heL +uNQ +dDc +urj +fOV +wQm +eOF +fYF +wQm +sJM +uGD +ojR +hAu +hAu +sJM +hAu +hAu +hAu +cBU +cBU +cBU +cBU cBU cBU cBU @@ -46978,11 +46968,6 @@ cBU cBU cBU cBU -sec -dto -nXQ -dto -sec cBU cBU cBU @@ -47014,6 +46999,42 @@ cBU cBU cBU cBU +sec +dto +dto +dto +sec +cBU +cBU +cBU +cBU +cBU +cBU +cBU +eJa +alh +nKH +nKH +alh +eJa +rit +rit +gly +ueF +eJa +rit +rit +oqJ +rit +eJa +rit +rit +oqJ +rit +eJa +cBU +cBU +cBU cBU lam lam @@ -47055,49 +47076,28 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -inc -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -fYx -fYx -fYx -inc -inc -inc -inc cNs cNs -inc -inc -inc -inc -inc -inc -bpk -inc -inc -inc -inc -inc -xoF pDM cBU cBU -cBU -cBU pDM +sAG +sAG +sAG pDM +cBU +cBU pDM +cNs +cNs pDM cBU cBU @@ -47106,6 +47106,27 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (110,1,1) = {" cBU @@ -47236,9 +47257,9 @@ cBU cBU cBU sec +nXQ dto dto -nXQ sec cBU cBU @@ -47247,27 +47268,27 @@ cBU cBU cBU cBU +eJa +ouG cBU +eLv cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +eJa +hML +ueF +mNM +dyz +eJa +kEn +rit +mNM +dyz +eJa +kEn +rit +mNM +dyz +eJa cBU cBU cBU @@ -47312,41 +47333,28 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -inc -lZe -inc -inc -inc cNs cNs -inc -inc -inc -inc -fYx -fYx -fYx -inc -inc -inc -inc +pDM +cBU +cBU +pDM +sAG +sAG +sAG +pDM +cBU +cBU +pDM cNs cNs -inc -inc -inc -lZe -inc -inc -inc -inc -inc -inc -inc -inc -xoF pDM cBU cBU @@ -47363,6 +47371,19 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (111,1,1) = {" cBU @@ -47492,30 +47513,11 @@ cBU cBU cBU cBU -sec -dto -dto -vdn -sec -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +sec +mEZ +dto +dto +sec cBU cBU cBU @@ -47523,8 +47525,27 @@ cBU cBU cBU cBU +eJa cBU cBU +pLR +ouG +eJa +uBD +dyz +vtp +dyz +eJa +uBD +dyz +uGL +dyz +eJa +uBD +dyz +uGL +dyz +eJa cBU cBU cBU @@ -47569,41 +47590,28 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -xoF -inc -inc -inc -inc cNs cNs -inc -inc -inc -inc -inc -uKC -fYx -inc -inc -inc -inc +pDM +cBU +cBU +pDM +sAG +sAG +sAG +pDM +cBU +cBU +pDM cNs cNs -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc -pDM pDM cBU cBU @@ -47620,6 +47628,19 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (112,1,1) = {" cBU @@ -47751,8 +47772,8 @@ cBU cBU sec dto -dto -dto +nXQ +lEA sec cBU cBU @@ -47761,27 +47782,27 @@ cBU cBU cBU cBU +eJa cBU +gqw +gqw cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa +eJa cBU cBU cBU @@ -47826,40 +47847,28 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -xoF -lZe -inc -inc -rnD -cNs -cNs -rnD -inc -inc -inc -fYx -fYx -fYx -inc -inc -inc -rnD cNs +lwD +pDM +cBU +cBU +pDM +sAG +sAG +sAG +pDM +cBU +cBU +pDM +lwD cNs -rnD -inc -inc -lZe -inc -xik -inc -inc -inc -inc -inc -inc pDM cBU cBU @@ -47877,6 +47886,18 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (113,1,1) = {" cBU @@ -48007,8 +48028,8 @@ cBU cBU cBU sec -lEA dto +nXQ dto sec cBU @@ -48018,12 +48039,12 @@ cBU cBU cBU cBU +eJa cBU cBU cBU cBU -cBU -cBU +eJa cBU cBU cBU @@ -48083,40 +48104,28 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -xoF -inc -inc -inc -inc cNs cNs -vQy -psj -psj -psj -fYx -fYx -fYx -psj -psj -psj -vQy -oGW -oGW -inc -inc -inc -inc -inc -inc -inc -inc -tax -inc -xoF pDM +cBU +cBU +pDM +sAG +sAG +sAG +pDM +cBU +cBU +pDM +cNs +cNs pDM cBU cBU @@ -48134,6 +48143,18 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (114,1,1) = {" cBU @@ -48264,9 +48285,9 @@ cBU cBU cBU sec -vdn dto -rQu +nXQ +vdn sec cBU cBU @@ -48275,12 +48296,12 @@ cBU cBU cBU cBU +eJa cBU cBU cBU cBU -cBU -cBU +eJa cBU cBU cBU @@ -48340,40 +48361,40 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM +cpi +cpi pDM -xoF -lZe -inc -inc -inc -cNs -cNs -iew -fYx -waR -fYx -fYx -fYx -fYx -fYx -waR -fYx -wNR -cNs -cNs -inc -inc -inc -lZe -inc -inc -inc -inc -inc -inc -xoF +cBU +cBU pDM +wsl +sAG +wsl +pDM +cBU +cBU +pDM +qst +qst +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -48521,9 +48542,9 @@ cBU cBU cBU sec -vdn dto nXQ +dto sec cBU cBU @@ -48598,37 +48619,26 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +pDM +pDM +pDM +pDM +cBU +cBU +pDM +sAG +sAG +sAG +pDM +cBU +cBU +pDM pDM -xoF -inc -inc -inc -inc -cNs -cNs -iew -waR -avx -fYx -fYx -fYx -fYx -fYx -avx -waR -wNR -cNs -cNs -inc -inc -inc -inc -inc -inc -inc -inc -inc -inc pDM pDM cBU @@ -48648,6 +48658,17 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (116,1,1) = {" cBU @@ -48779,8 +48800,8 @@ cBU cBU sec dto -nXQ dto +nXQ sec cBU cBU @@ -48855,37 +48876,21 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -lZe -inc -xik -inc -cNs -cNs -iew -fYx -waR -fYx -fYx -fYx -fYx -fYx -waR -fYx -wNR -cNs -cNs -inc -inc -inc -lZe -inc -inc -inc -inc -xoF -pDM +sAG +sAG +sAG pDM cBU cBU @@ -48905,6 +48910,22 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (117,1,1) = {" cBU @@ -49036,8 +49057,8 @@ cBU cBU sec dto -mEZ dto +vdn sec cBU cBU @@ -49112,36 +49133,21 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -inc -inc -inc -inc -oGW -eaI -vQy -tDf -tDf -tDf -fYx -fYx -fYx -tDf -tDf -tDf -vQy -cNs -cNs -inc -inc -inc -inc -inc -inc -inc -xoF -pDM +sAG +sAG +sAG pDM cBU cBU @@ -49162,6 +49168,21 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (118,1,1) = {" cBU @@ -49293,7 +49314,7 @@ cBU cBU sec dto -nXQ +dto dto sec cBU @@ -49327,7 +49348,7 @@ cBU cBU cBU cBU -cBU +lam lam imv jYB @@ -49369,36 +49390,36 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM +sAG +sAG +sAG pDM -lZe -inc -inc -rnD -cNs -cNs -rnD -inc -inc -inc -fYx -fYx -fYx -inc -inc -inc -rnD -cNs -cNs -rnD -inc -inc -lZe -inc -inc -xoF -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -49529,7 +49550,7 @@ jzI jzI jzI jzI -mKs +rQX pNr hGp awq @@ -49549,7 +49570,7 @@ cBU cBU cBU sec -gBL +lEA dto dto sec @@ -49584,8 +49605,8 @@ cBU cBU cBU cBU -cBU lam +nPs tcd jYB jYB @@ -49627,33 +49648,20 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -fYx -fYx -fYx -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -inc -inc -xoF +sAG +sAG +sAG pDM cBU cBU @@ -49676,6 +49684,19 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (120,1,1) = {" cBU @@ -49781,7 +49802,7 @@ pNr pNr jzI jzI -aRc +jzI jzI jzI jzI @@ -49841,9 +49862,9 @@ cBU cBU cBU cBU -cBU lam -jYB +nPs +nPs jYB jYB oPq @@ -49884,33 +49905,20 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -lZe -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -fYx -fYx -inc -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -lZe -inc -xoF -pDM +wsl +sAG +wsl pDM cBU cBU @@ -49933,6 +49941,19 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (121,1,1) = {" cBU @@ -50065,7 +50086,7 @@ cBU sec dto dto -dto +gBL sec cBU cBU @@ -50098,9 +50119,9 @@ cBU cBU cBU cBU -cBU lam nPs +nPs jYB jYB oPq @@ -50123,7 +50144,7 @@ ylH mbB mbB epO -yia +gEn qju qju dEI @@ -50141,32 +50162,20 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -fYx -fYx -inc -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -inc -xoF +sAG +sAG +sAG pDM cBU cBU @@ -50190,6 +50199,18 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (122,1,1) = {" cBU @@ -50355,7 +50376,7 @@ cBU cBU cBU cBU -cBU +lam lam imv jYB @@ -50384,7 +50405,7 @@ yia uVZ oTR gBe -oTR +kPc lLt wCu cMn @@ -50398,32 +50419,20 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -pDM -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -fYx -inc -fYx -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -inc -inc -pDM +sAG +sAG +sAG pDM cBU cBU @@ -50447,6 +50456,18 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (123,1,1) = {" cBU @@ -50656,30 +50677,19 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -inc -kBd -cNs -lwD -inc -inc -inc -inc -fYx -fYx -fYx -inc -inc -inc -inc -lwD -cNs -inc -inc -inc -inc -pDM +sAG +sAG +sAG pDM cBU cBU @@ -50704,6 +50714,17 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (124,1,1) = {" cBU @@ -50913,29 +50934,19 @@ mWo cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -inc -inc -cNs -cNs -inc -inc -qll -inc -fYx -fYx -fYx -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -inc +sAG +sAG +sAG pDM cBU cBU @@ -50961,6 +50972,16 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (125,1,1) = {" cBU @@ -51170,29 +51191,19 @@ mWo cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -inc -inc -cNs -cNs -inc -inc -inc -inc -inc -fYx -fYx -inc -inc -inc -inc -cNs -cNs -inc -inc -inc -pDM +sAG +sAG +sAG pDM cBU cBU @@ -51218,6 +51229,16 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (126,1,1) = {" cBU @@ -51315,7 +51336,7 @@ hAu cBU cBU awq -pNr +iua jzI jzI jzI @@ -51427,29 +51448,29 @@ mWo cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM +wsl +sAG +wsl pDM -xoF -inc -cNs -cNs -inc -inc -inc -inc -inc -fYx -fYx -inc -inc -inc -inc -cNs -cNs -inc -inc -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -51685,26 +51706,18 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -xoF -bpk -cNs -cNs -inc -inc -inc -inc -fYx -fYx -fYx -inc -inc -inc -inc -cNs -cNs -inc -pDM +sAG +sAG +sAG pDM cBU cBU @@ -51732,6 +51745,14 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (128,1,1) = {" cBU @@ -51942,26 +51963,26 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM +sAG +sAG +sAG pDM -inc -cNs -cNs -inc -inc -inc -inc -fYx -idq -xxl -inc -inc -inc -inc -cNs -cNs -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -52022,7 +52043,7 @@ rPn nOT rPn ygZ -fbn +lHU cBU cBU cBU @@ -52200,25 +52221,25 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM +sAG +sAG +sAG pDM -cNs -cNs -inc -inc -inc -inc -fYx -fYx -fYx -inc -inc -inc -inc -cNs -cNs -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -52438,7 +52459,7 @@ mbB ryp mWo tEt -oTR +kPc eQR btr mtH @@ -52458,22 +52479,16 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM -cNs -cNs -pDM -inc -inc -inc -lcy -lcy -lcy -inc -pDM -pDM -pDM -cNs -cNs +sAG +sAG +sAG pDM cBU cBU @@ -52503,6 +52518,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (131,1,1) = {" cBU @@ -52532,7 +52553,7 @@ cBU cBU lHU lHU -tFM +jlm rPn rPn lHU @@ -52715,22 +52736,16 @@ cBU cBU cBU cBU -pDM -cNs -cNs -pDM -pDM -pDM -pDM -shz -shz -shz -pDM -pDM +cBU +cBU +cBU +cBU +cBU cBU pDM -cNs -cNs +sAG +sAG +sAG pDM cBU cBU @@ -52760,6 +52775,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU "} (132,1,1) = {" cBU @@ -52787,173 +52808,179 @@ cBU cBU cBU cBU -lHU -lHU -lHU -rPn -rPn -qrA -lHU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -wQm -wGz -wGz -wQm -hAu -fOV -wQm -pjp -mdI -pjp -wQm -wQm -hAu -hAu -hAu -wQm -jJn -tRK -tRK -fOV -saK -wQm -soY -oju -soY -soY -soY -soY -soY -soY -soY -soY -soY -oju -soY -hAu -hAu -ojR -hAu -hAu -hAu -hAu -hAu -hAu -hAu -cBU -cBU -cBU -awq -mFn -jzI -jzI -jzI -uHn -hiP -uSx -uSx -uSx -xcU -uSx -uSx -uSx -jaA -exB -jzI -jzI -jzI -qzT -awq -cBU -cBU -cBU -cBU -sec -dto -dto -dto -vdn -sfi -ltT -lZs -dto -nXQ -vdn -sec -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -lam -lam -lam -huL -eup -qQa -rVM -huL -lam -lam -lam -tiK -lam -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +lHU +lHU +lHU +rPn +rPn +qrA +lHU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +wQm +wGz +wGz +wQm +hAu +fOV +wQm +pjp +mdI +pjp +wQm +wQm +hAu +hAu +hAu +wQm +jJn +tRK +tRK +fOV +saK +wQm +soY +oju +soY +soY +soY +soY +soY +soY +soY +soY +soY +oju +soY +hAu +hAu +ojR +hAu +hAu +hAu +hAu +hAu +hAu +hAu +cBU +cBU +cBU +awq +mFn +jzI +jzI +jzI +uHn +hiP +uSx +uSx +uSx +xcU +uSx +uSx +uSx +jaA +exB +jzI +jzI +jzI +qzT +awq +cBU +cBU +cBU +cBU +sec +dto +dto +dto +vdn +sfi +ltT +lZs +dto +nXQ +vdn +sec +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +lam +lam +lam +huL +eup +qQa +rVM +huL +lam +lam +lam +tiK +lam +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -52973,22 +53000,16 @@ cBU cBU cBU pDM -cNs -cNs +wsl +sAG +wsl pDM cBU cBU -pDM -sAG -sAG -sAG -pDM cBU cBU -pDM -cNs -cNs -pDM +cBU +cBU cBU cBU cBU @@ -53230,11 +53251,11 @@ cBU cBU cBU pDM -cNs -cNs pDM -cBU -cBU +pDM +pDM +pDM +pDM pDM sAG sAG @@ -53242,10 +53263,10 @@ sAG pDM cBU cBU -pDM -cNs -cNs -pDM +cBU +cBU +cBU +cBU cBU cBU cBU @@ -53375,7 +53396,7 @@ cBU awq mFn jzI -jzI +vvv jzI jzI jzI @@ -53487,22 +53508,22 @@ cBU cBU cBU pDM -cNs -cNs -pDM -cBU -cBU -pDM +wsl +vzR +vzR +vzR +wsl +rJr sAG sAG sAG pDM cBU cBU -pDM -cNs -cNs -pDM +cBU +cBU +cBU +cBU cBU cBU cBU @@ -53634,7 +53655,7 @@ pNr pNr jzI jzI -aRc +jzI jzI jzI jzI @@ -53744,27 +53765,18 @@ cBU cBU cBU pDM -cNs -lwD -pDM -cBU -cBU -pDM +vzR +sAG +sAG +sAG +sAG +rJr sAG sAG sAG pDM cBU cBU -pDM -lwD -cNs -pDM -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -53775,6 +53787,15 @@ cBU cBU cBU cBU +pDM +pDM +pDM +pDM +pDM +pDM +pDM +pDM +pDM cBU cBU cBU @@ -53815,13 +53836,13 @@ cBU cBU cBU lHU -lHU -qpX -xuE +fkB +rPn +rPn rPn -jlm lHU -cBU +lHU +lHU cBU cBU cBU @@ -53894,7 +53915,7 @@ pNr jzI jzI jzI -vvv +jzI jzI jzI jzI @@ -54000,32 +54021,17 @@ cBU cBU cBU cBU -pDM -cNs -cNs -pDM -cBU -cBU -pDM -sAG -sAG -sAG -pDM -cBU -cBU -pDM -cNs -cNs -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +vzR +sAG +mxS +mxS +sAG +xno +sAG +sAG +sAG +pDM cBU cBU cBU @@ -54035,6 +54041,21 @@ cBU cBU cBU cBU +pDM +pDM +pDM +pDM +fzo +fzo +fzo +qVd +fzo +fzo +fzo +pDM +pDM +pDM +pDM cBU cBU cBU @@ -54070,16 +54091,16 @@ cBU cBU cBU cBU -cBU lHU lHU lHU rPn rPn -fPn +rPn +rPn +lHU +ubv lHU -cBU -cBU cBU cBU cBU @@ -54258,21 +54279,15 @@ cBU cBU cBU pDM -cpi -cpi -pDM -cBU -cBU -pDM -wsl +vzR +sAG +mxS +mxS +sAG +usu +sAG +sAG sAG -wsl -pDM -cBU -cBU -pDM -qst -qst pDM cBU cBU @@ -54281,19 +54296,25 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +pDM +fzo +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +fzo +pDM +pDM +pDM cBU cBU cBU @@ -54327,9 +54348,11 @@ cBU cBU cBU cBU -cBU lHU lHU +lHU +skR +xuE rPn rPn lHU @@ -54339,8 +54362,6 @@ cBU cBU cBU cBU -cBU -cBU rsC uHz gMY @@ -54515,43 +54536,43 @@ cBU cBU cBU pDM -pDM -pDM -pDM -cBU -cBU -pDM +vzR sAG +mxS +mxS sAG +xno +wsl sAG +wsl pDM cBU cBU -pDM -pDM -pDM -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU cBU +pDM +pDM +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +pDM +pDM cBU cBU cBU @@ -54584,16 +54605,16 @@ cBU cBU cBU cBU -cBU lHU -lhm +jlm +qrA +rTn rPn rPn +rPn +rPn +qrA lHU -lHU -lHU -cBU -cBU cBU cBU cBU @@ -54771,13 +54792,13 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU pDM +vzR +sAG +sAG +sAG +sAG +rJr sAG sAG sAG @@ -54787,29 +54808,29 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +pDM +pDM cBU cBU cBU @@ -54841,16 +54862,16 @@ cBU cBU cBU cBU -cBU lHU lHU -rPn -rPn lHU lHU lHU -cBU -cBU +rPn +eaO +rPn +qrA +lHU cBU cBU cBU @@ -55028,46 +55049,46 @@ cBU cBU cBU cBU +pDM +wsl +vzR +vzR +vzR +wsl +rJr +sAG +sAG +sAG +pDM cBU cBU cBU cBU -cBU -cBU -pDM -sAG -sAG -sAG -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +qVd +fzo +fzo +fzo +fzo +fzo +fzo +fzo +mnL +mnL +mnL +mnL +mnL +fzo +fzo +fzo +fzo +fzo +fzo +fzo +qVd +pDM +pDM cBU cBU cBU @@ -55097,21 +55118,21 @@ cBU cBU cBU cBU -cBU +lHU +lHU +lHU lHU lHU lHU rPn rPn rPn -qrA +jlm lHU cBU cBU cBU cBU -cBU -cBU rsC uch oOP @@ -55285,12 +55306,12 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +pDM +pDM +pDM +pDM pDM sAG sAG @@ -55299,33 +55320,33 @@ pDM cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +fzo +fzo +qVd +fzo +fzo +fzo +fzo +mnL +mnL +fzo +fzo +qVd +fzo +fzo +mnL +mnL +fzo +fzo +fzo +fzo +qVd +fzo +fzo +pDM +pDM cBU cBU cBU @@ -55354,10 +55375,12 @@ cBU cBU cBU cBU -cBU lHU lHU -jlm +lHU +lHU +qrA +rPn rPn rPn rPn @@ -55367,8 +55390,6 @@ cBU cBU cBU cBU -cBU -cBU rsC rtp aAc @@ -55499,7 +55520,7 @@ cBU lam jYB jYB -tXF +raf iio uCd iio @@ -55556,33 +55577,33 @@ pDM cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +fzo +fzo +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +fzo +fzo +pDM cBU cBU cBU @@ -55611,17 +55632,17 @@ cBU cBU cBU cBU -cBU -kRO +lHU +lHU +lHU lHU lHU lHU rPn -lhm +rPn +rPn +lHU lHU -cBU -cBU -cBU cBU cBU cBU @@ -55752,7 +55773,7 @@ cBU cBU cBU cBU -cBU +lam lam imv jYB @@ -55806,41 +55827,41 @@ cBU cBU cBU pDM -wsl sAG -wsl +sAG +sAG pDM cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +fzo +fzo +fzo +fzo +fzo +qVd +qVd +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +qVd +qVd +fzo +fzo +fzo +fzo +fzo +pDM +pDM cBU cBU cBU @@ -55867,22 +55888,22 @@ cBU cBU cBU cBU -cBU -cBU lHU -qrA lHU lHU +lHU +lHU +lHU +lHU +lHU +rPn xuE -ljD +ubv lHU cBU cBU cBU cBU -cBU -cBU -cBU rsC heN nLL @@ -55944,8 +55965,8 @@ cBU cBU eWk dop -pcB -pcB +pOI +pOI lqR lqR lqR @@ -56009,8 +56030,8 @@ cBU cBU cBU cBU -cBU lam +nPs ndr jYB xGL @@ -56063,41 +56084,41 @@ cBU cBU cBU pDM +wsl sAG -sAG -sAG +wsl pDM cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +fzo +fzo +fzo +fzo +fzo +fzo +qVd +qVd +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +qVd +qVd +fzo +fzo +fzo +fzo +fzo +fzo +pDM cBU cBU cBU @@ -56124,18 +56145,18 @@ cBU cBU cBU cBU -cBU -cBU lHU +sed lHU +jlm lHU lHU +eqD +qpX xuE +eqD +lHU lHU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -56266,9 +56287,9 @@ cBU cBU cBU cBU -cBU lam -jYB +nPs +nPs jYB xGL ktP @@ -56326,35 +56347,35 @@ sAG pDM cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +mnL +fzo +qVd +fzo +mnL +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +pDM cBU cBU cBU @@ -56381,19 +56402,19 @@ cBU cBU cBU cBU -cBU -cBU lHU lHU lHU +qrA +lHU +lHU +qpX +lHU rPn rPn +jlm +lHU lHU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -56523,9 +56544,9 @@ cBU cBU cBU cBU -cBU lam nPs +nPs jYB xGL mpR @@ -56582,37 +56603,37 @@ sAG sAG pDM cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +fzo +fzo +fzo +fzo +mnL +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +qVd +fzo +fzo +fzo +qVd +fzo +fzo +mpu +fzo +mnL +fzo +fzo +fzo +fzo +pDM +pDM cBU cBU "} @@ -56638,19 +56659,19 @@ cBU cBU cBU cBU -cBU -cBU lHU lHU lHU +lHU +qrA +qrA +lHU +lHU rPn rPn lHU -cBU -cBU -cBU -cBU -cBU +sed +lHU cBU cBU cBU @@ -56780,66 +56801,30 @@ cBU cBU cBU cBU -cBU -lam -imv -jYB -xGL -mpR -cZp -iio -xGL -jYB -jYB -rTo -euy -lam -cBU -cBU -cBU -cBU -cBU -cBU -kCO -nHK -pwk -kCO -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +lam +lam +imv +jYB +xGL +mpR +cZp +iio +xGL +jYB +jYB +rTo +euy +lam cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM cBU cBU +kCO +nHK +pwk +kCO cBU cBU cBU @@ -56869,7 +56854,43 @@ cBU cBU cBU cBU +pDM +sAG +sAG +sAG +pDM cBU +pDM +fzo +fzo +fzo +fzo +fzo +mnL +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +qVd +fzo +qAN +mnL +mnL +wQB +mnL +mnL +fzo +fzo +fzo +fzo +pDM cBU cBU "} @@ -56895,19 +56916,19 @@ cBU cBU cBU cBU -cBU -cBU lHU lHU lHU +ubv +lHU +lHU +lHU +eqD +xuE rPn -uLn lHU -cBU -cBU -cBU -cBU -cBU +lHU +lHU cBU cBU cBU @@ -57091,42 +57112,42 @@ cBU cBU cBU pDM +pcB sAG -sAG -sAG +wsl +pDM +pDM +pDM +fzo +fzo +fzo +fzo +mnL +fzo +fzo +fzo +fzo +fzo +fzo +fzo +qVd +fzo +qVd +fzo +qVd +fzo +fzo +qAN +qVd +qVd +fzo +qVd +mnL +fzo +fzo +fzo +fzo pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU "} @@ -57152,19 +57173,19 @@ cBU cBU cBU cBU -cBU -cBU +sed +lHU +lHU +lHU +lHU lHU lHU lHU rPn rPn lHU -cBU -cBU -cBU -cBU -cBU +lHU +lHU cBU cBU cBU @@ -57348,44 +57369,44 @@ cBU cBU cBU pDM -wsl +sAG +sAG +sAG sAG wsl +usu +fzo +fzo +fzo +fzo +mnL +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +qVd +qVd +qVd +fzo +fzo +fzo +qAN +pXU +sqa +vfW +fzo +mnL +fzo +fzo +fzo +fzo pDM cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU "} (150,1,1) = {" cBU @@ -57409,19 +57430,19 @@ cBU cBU cBU cBU -cBU -cBU -fbn +lHU +qrA +qrA +lHU lHU lHU +pdI +lHU rPn rPn lHU -cBU -cBU -cBU -cBU -cBU +pdI +lHU cBU cBU cBU @@ -57604,43 +57625,43 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +sAG +sAG +sAG +sAG +wsl +usu +qVd +qVd +qVd +qVd +mnL +qVd +qVd +qVd +qVd +qVd +qVd +tce +qVd +qVd +qVd +qVd +qVd +qVd +qVd +qAN +uJh +dQy +dOs +fzo +mnL +qVd +qVd +qVd +qVd +pDM cBU cBU "} @@ -57666,19 +57687,19 @@ cBU cBU cBU cBU -cBU -cBU +lHU +lHU +jlm +lHU +lHU lHU lHU lHU rPn rPn -fkB -cBU -cBU -cBU -cBU -cBU +lHU +jlm +lHU cBU cBU cBU @@ -57865,41 +57886,41 @@ pDM sAG sAG sAG +sAG +wsl +usu +fzo +fzo +fzo +fzo +mnL +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +qVd +qVd +qVd +fzo +fzo +fzo +qAN +auq +tgn +oPu +fzo +mnL +fzo +fzo +fzo +fzo pDM cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU "} (152,1,1) = {" cBU @@ -57923,19 +57944,19 @@ cBU cBU cBU cBU -cBU -cBU lHU +qrA +lHU +lml +lml +lml lHU lHU -xuE rPn -rQX -cBU -cBU -cBU -cBU -cBU +rPn +lHU +lHU +lHU cBU cBU cBU @@ -58119,42 +58140,42 @@ cBU cBU cBU pDM -sAG -sAG -sAG pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +pDM +pDM +pDM +pDM +pDM +fzo +fzo +fzo +fzo +mnL +fzo +fzo +fzo +fzo +fzo +fzo +fzo +qVd +fzo +qVd +fzo +qVd +fzo +fzo +qAN +qVd +qVd +fzo +qVd +mnL +fzo +fzo +fzo +fzo +pDM cBU cBU "} @@ -58180,19 +58201,19 @@ cBU cBU cBU cBU -cBU -cBU lHU -jlm lHU lHU -rPn +shN +xUH +lml +lHU +lHU +lAQ +lAQ +lHU lHU lHU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -58375,43 +58396,43 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU cBU cBU cBU +pDM +fzo +fzo +fzo +fzo +fzo +mnL +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +qVd +fzo +qAN +mnL +mnL +wQB +mnL +mnL +fzo +fzo +fzo +fzo +pDM cBU cBU "} @@ -58438,18 +58459,18 @@ cBU cBU cBU cBU -cBU -lHU -lHU -eqD -rPn -rPn -lHU -lHU -cBU -cBU -cBU -cBU +gCB +cgL +cgL +jgF +cgL +gCB +gCB +sCY +ema +gCB +gCB +gCB cBU cBU cBU @@ -58632,43 +58653,43 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU cBU cBU cBU +pDM +pDM +fzo +fzo +fzo +fzo +mnL +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +qVd +fzo +fzo +fzo +qVd +fzo +fzo +bry +fzo +mnL +fzo +fzo +fzo +fzo +pDM +pDM cBU cBU "} @@ -58695,17 +58716,17 @@ cBU cBU cBU cBU -cBU -cBU -lHU -qpX -xuE -rPn -lHU -lHU -cBU -cBU -cBU +gCB +vvz +kzB +suO +mKq +gCB +sCY +vCc +vCc +sCY +gCB cBU cBU cBU @@ -58889,35 +58910,6 @@ cBU cBU cBU cBU -pDM -wsl -sAG -wsl -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -58925,6 +58917,35 @@ cBU cBU cBU cBU +pDM +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +mnL +fzo +qVd +fzo +mnL +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +pDM cBU cBU cBU @@ -58952,17 +58973,17 @@ cBU cBU cBU cBU -cBU -cBU -lHU -lHU -rPn -lHU -lHU -lHU -cBU -cBU -cBU +gCB +urs +sCY +sCY +sCY +gCB +sCY +vCc +vCc +sCY +gCB cBU cBU cBU @@ -59146,35 +59167,6 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -59182,6 +59174,35 @@ cBU cBU cBU cBU +pDM +fzo +fzo +fzo +fzo +fzo +fzo +qVd +qVd +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +qVd +qVd +fzo +fzo +fzo +fzo +fzo +fzo +pDM cBU cBU cBU @@ -59209,34 +59230,34 @@ cBU cBU cBU cBU -cBU -cBU -lHU -lHU -rPn -rPn -rPn -lHU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +gCB +gCB +gCB +qWn +gCB +gCB +sCY +vCc +vCc +sCY +gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -59403,35 +59424,6 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -59439,6 +59431,35 @@ cBU cBU cBU cBU +pDM +pDM +fzo +fzo +fzo +fzo +fzo +qVd +qVd +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +qVd +qVd +fzo +fzo +fzo +fzo +fzo +pDM +pDM cBU cBU cBU @@ -59466,17 +59487,17 @@ cBU cBU cBU cBU -cBU -cBU -lHU -lHU -rPn -rPn -rPn -lHU -cBU -cBU -cBU +gCB +bJF +lCA +sCY +sCY +gCB +sCY +vCc +vCc +sCY +gCB cBU cBU cBU @@ -59660,33 +59681,6 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -59695,6 +59689,33 @@ cBU cBU cBU cBU +pDM +fzo +fzo +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +qVd +fzo +fzo +qVd +fzo +fzo +fzo +fzo +pDM cBU cBU cBU @@ -59723,17 +59744,17 @@ cBU cBU cBU cBU -cBU -cBU -lHU -lHU -rPn -rPn -uLn -lHU -lHU -cBU -cBU +gCB +lCA +lCA +sCY +sCY +gCB +sCY +vCc +vCc +sCY +gCB cBU cBU cBU @@ -59911,89 +59932,89 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU pDM pDM +fzo +fzo +qVd +fzo +fzo +fzo +fzo +mnL +mnL +fzo +fzo +qVd +fzo +fzo +mnL +mnL +fzo +fzo +fzo +fzo +qVd +fzo +fzo pDM pDM -pDM -pDM -pDM -sAG -sAG -sAG -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -"} -(160,1,1) = {" -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -lHU -fkB -rPn -rPn -rPn -lHU -lHU -lHU cBU cBU cBU cBU +"} +(160,1,1) = {" +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +gCB +sCY +mPR +lCA +sCY +gCB +uIO +vCc +vCc +uIO +gCB +cBU +cBU +cBU cBU cBU cBU @@ -60168,31 +60189,6 @@ cBU cBU cBU cBU -pDM -wsl -vzR -vzR -vzR -wsl -rJr -sAG -sAG -sAG -pDM -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU cBU cBU cBU @@ -60208,6 +60204,31 @@ cBU cBU cBU cBU +pDM +pDM +qVd +fzo +fzo +fzo +fzo +fzo +fzo +fzo +mnL +mnL +mnL +mnL +mnL +fzo +fzo +fzo +fzo +fzo +fzo +fzo +qVd +pDM +pDM cBU cBU cBU @@ -60237,17 +60258,17 @@ cBU cBU cBU cBU -cBU -lHU -lHU -lHU -rPn -rPn -rPn -rPn -lHU -ubv -lHU +gCB +sCY +lCA +sCY +sCY +gCB +gCB +wqt +wqt +gCB +gCB cBU cBU cBU @@ -60425,20 +60446,6 @@ cBU cBU cBU cBU -pDM -vzR -sAG -sAG -sAG -sAG -rJr -wsl -sAG -wsl -pDM -cBU -cBU -cBU cBU cBU cBU @@ -60448,15 +60455,6 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM cBU cBU cBU @@ -60464,6 +60462,29 @@ cBU cBU cBU cBU +pDM +pDM +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +qVd +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +fzo +pDM +pDM cBU cBU cBU @@ -60494,17 +60515,17 @@ cBU cBU cBU cBU -cBU -lHU -lHU -lHU -skR -xuE -rPn -rPn -lHU -lHU -lHU +gCB +uIO +sCY +sCY +uIO +gCB +sCY +vCc +vCc +sCY +gCB cBU cBU cBU @@ -60682,17 +60703,14 @@ cBU cBU cBU cBU -pDM -vzR -sAG -mxS -mxS -sAG -xno -sAG -sAG -sAG -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -60704,8 +60722,11 @@ cBU cBU pDM pDM -pDM -pDM +fzo +fzo +fzo +fzo +fzo fzo fzo fzo @@ -60713,13 +60734,13 @@ qVd fzo fzo fzo +fzo +fzo +fzo +fzo +fzo pDM pDM -pDM -pDM -cBU -cBU -cBU cBU cBU cBU @@ -60751,17 +60772,17 @@ cBU cBU cBU cBU -cBU -lHU -jlm -qrA -rTn -rPn -rPn -rPn -rPn -qrA -lHU +gCB +gCB +qWn +gCB +gCB +gCB +sCY +vCc +vCc +sCY +gCB cBU cBU cBU @@ -60939,17 +60960,17 @@ cBU cBU cBU cBU -pDM -vzR -sAG -mxS -mxS -sAG -usu -sAG -sAG -sAG -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -61008,17 +61029,17 @@ cBU cBU cBU cBU -cBU -lHU -lHU -lHU -lHU -lHU -rPn -eaO -rPn -qrA -lHU +gCB +sun +sCY +sCY +sCY +gCB +uLn +vCc +vCc +uLn +gCB cBU cBU cBU @@ -61149,7 +61170,7 @@ cBU cBU cBU cBU -cBU +lam lam imv jYB @@ -61196,17 +61217,20 @@ cBU cBU cBU cBU -pDM -vzR -sAG -mxS -mxS -sAG -xno -sAG -sAG -sAG -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -61215,11 +61239,8 @@ cBU cBU pDM pDM -fzo -fzo -fzo -fzo -fzo +pDM +pDM fzo fzo fzo @@ -61227,13 +61248,13 @@ qVd fzo fzo fzo -fzo -fzo -fzo -fzo -fzo pDM pDM +pDM +pDM +cBU +cBU +cBU cBU cBU cBU @@ -61265,17 +61286,17 @@ cBU cBU cBU cBU -lHU -lHU -lHU -lHU -lHU -lHU -rPn -rPn -rPn -jlm -lHU +gCB +sCY +sCY +sCY +sCY +gCB +urs +vCc +vCc +urs +gCB cBU cBU cBU @@ -61406,8 +61427,8 @@ cBU cBU cBU cBU -cBU lam +nPs aCN jYB jYB @@ -61453,17 +61474,24 @@ cBU cBU cBU cBU -pDM -vzR -sAG -sAG -sAG -sAG -rJr -sAG -sAG -sAG -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -61471,27 +61499,20 @@ cBU cBU pDM pDM -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo pDM pDM +pDM +pDM +pDM +pDM +pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -61522,18 +61543,18 @@ cBU cBU cBU cBU -lHU -lHU -lHU -lHU -qrA -rPn -rPn -rPn -rPn -lHU -lHU -cBU +gCB +sCY +sCY +sCY +sCY +gCB +gCB +pbY +pbY +gCB +gCB +gCB cBU cBU dom @@ -61663,9 +61684,9 @@ cBU cBU cBU cBU -cBU lam -jYB +lam +nPs jYB jYB oPq @@ -61710,46 +61731,46 @@ cBU cBU cBU cBU -pDM -wsl -vzR -vzR -vzR -wsl -rJr -sAG -sAG -sAG -pDM cBU cBU cBU cBU -pDM -pDM -qVd -fzo -fzo -fzo -fzo -fzo -fzo -fzo -mnL -mnL -mnL -mnL -mnL -fzo -fzo -fzo -fzo -fzo -fzo -fzo -qVd -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -61779,18 +61800,18 @@ cBU cBU cBU cBU -lHU -lHU -lHU -lHU -lHU -lHU -rPn -rPn -rPn -lHU -lHU -cBU +gCB +sCY +sCY +rQu +aOq +sCY +fWm +sCY +sCY +fWm +sCY +gCB cBU cBU dom @@ -61920,9 +61941,9 @@ cBU cBU cBU cBU -cBU lam nPs +nPs jYB jYB oPq @@ -61967,47 +61988,47 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM -pDM -pDM -wsl -sAG -wsl -pDM cBU cBU cBU -pDM -pDM -fzo -fzo -qVd -fzo -fzo -fzo -fzo -mnL -mnL -fzo -fzo -qVd -fzo -fzo -mnL -mnL -fzo -fzo -fzo -fzo -qVd -fzo -fzo -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -62035,19 +62056,19 @@ cBU cBU cBU cBU -lHU -lHU -lHU -lHU -lHU -lHU -lHU -lHU -rPn -xuE -ubv -lHU cBU +gCB +kuN +sCY +aOq +sCY +sCY +sCY +sCY +sCY +sCY +sun +gCB cBU cBU dom @@ -62177,7 +62198,7 @@ cBU cBU cBU cBU -cBU +lam lam imv jYB @@ -62230,41 +62251,41 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM cBU cBU cBU -pDM -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -fzo -fzo -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -62292,19 +62313,19 @@ cBU cBU cBU cBU -lHU -sed -lHU -jlm -lHU -lHU -eqD -qpX -xuE -eqD -lHU -lHU cBU +gCB +sCY +urs +sCY +mPR +nYy +sCY +sCY +sCY +sCY +sCY +gCB cBU cBU dom @@ -62435,21 +62456,65 @@ cBU cBU cBU cBU -lam -jYB -jYB -jYB -oPq -mMq -cNP -jYB -jYB -jYB -lam -cBU -cBU -cBU -cBU +lam +jYB +jYB +jYB +oPq +mMq +cNP +jYB +jYB +jYB +lam +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +kCO +kCO +kCO +kCO +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -62465,11 +62530,6 @@ cBU cBU cBU cBU -kCO -kCO -kCO -kCO -cBU cBU cBU cBU @@ -62487,45 +62547,6 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM -cBU -cBU -pDM -pDM -fzo -fzo -fzo -fzo -fzo -qVd -qVd -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -qVd -qVd -fzo -fzo -fzo -fzo -fzo -pDM -pDM -cBU -cBU -cBU "} (170,1,1) = {" cBU @@ -62549,19 +62570,19 @@ cBU cBU cBU cBU -lHU -lHU -lHU -qrA -lHU -lHU -qpX -lHU -rPn -rPn -jlm -lHU -lHU +cBU +gCB +gCB +gCB +gCB +sCY +sCY +sCY +sCY +qMG +sCY +osC +gCB cBU cBU dom @@ -62744,42 +62765,42 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM cBU cBU -pDM -fzo -fzo -fzo -fzo -fzo -fzo -qVd -qVd -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -qVd -qVd -fzo -fzo -fzo -fzo -fzo -fzo -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -62806,19 +62827,19 @@ cBU cBU cBU cBU -lHU -lHU -lHU -lHU -qrA -qrA -lHU -lHU -rPn -rPn -lHU -sed -lHU +cBU +gCB +mKq +oyL +cgL +suO +sCY +sCY +sCY +sCY +sCY +sCY +gCB cBU cBU dom @@ -63001,42 +63022,42 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM cBU cBU -pDM -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -63063,19 +63084,19 @@ cBU cBU cBU cBU -lHU -lHU -lHU -ubv -lHU -lHU -lHU -eqD -xuE -rPn -lHU -lHU -lHU +cBU +gCB +sun +mHK +jgF +suO +sCY +rQu +qMG +sCY +sCY +lCA +gCB cBU cBU dom @@ -63258,43 +63279,43 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM cBU -pDM -pDM -fzo -fzo -fzo -fzo -mnL -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -qVd -fzo -fzo -fzo -qVd -fzo -fzo -mpu -fzo -mnL -fzo -fzo -fzo -fzo -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU "} @@ -63320,19 +63341,19 @@ cBU cBU cBU cBU -sed -lHU -lHU -lHU -lHU -lHU -lHU -lHU -rPn -rPn -lHU -lHU -lHU +cBU +gCB +smm +kUw +gCB +sCY +sCY +sCY +sCY +sCY +qMG +sCY +gCB cBU cBU dom @@ -63515,43 +63536,43 @@ cBU cBU cBU cBU -pDM -wsl -sAG -wsl -pDM cBU -pDM -fzo -fzo -fzo -fzo -fzo -mnL -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -qVd -fzo -qAN -mnL -mnL -wQB -mnL -mnL -fzo -fzo -fzo -fzo -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU "} @@ -63577,19 +63598,19 @@ cBU cBU cBU cBU -lHU -qrA -qrA -lHU -lHU -lHU -pdI -lHU -rPn -rPn -lHU -pdI -lHU +cBU +gCB +lgH +gCB +gCB +rQu +sCY +aOq +sCY +lCA +lCA +lCA +gCB cBU cBU uNL @@ -63772,43 +63793,43 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -pDM -pDM -pDM -fzo -fzo -fzo -fzo -mnL -fzo -fzo -fzo -fzo -fzo -fzo -fzo -qVd -fzo -qVd -fzo -qVd -fzo -fzo -qAN -qVd -qVd -fzo -qVd -mnL -fzo -fzo -fzo -fzo -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU "} @@ -63834,19 +63855,19 @@ cBU cBU cBU cBU -lHU -lHU -jlm -lHU -lHU -lHU -lHU -lHU -rPn -rPn -lHU -jlm -lHU +cBU +gCB +sCY +bKD +sCY +aOq +rQu +sCY +qMG +lCA +sCY +tjR +gCB cBU cBU uNL @@ -64029,47 +64050,8 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -sAG -wsl -usu -fzo -fzo -fzo -fzo -mnL -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -qVd -qVd -qVd -fzo -fzo -fzo -qAN -pXU -sqa -vfW -fzo -mnL -fzo -fzo -fzo -fzo -pDM cBU cBU -"} -(176,1,1) = {" cBU cBU cBU @@ -64091,19 +64073,58 @@ cBU cBU cBU cBU -lHU -qrA -lHU -lml -lml -lml -lHU -lHU -rPn -rPn -lHU -lHU -lHU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +"} +(176,1,1) = {" +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +gCB +gCB +gCB +gCB +sCY +tFu +lCA +sCY +qMG +sCY +sCY +sCY +sCY +bJF +gCB cBU cBU uNL @@ -64286,47 +64307,8 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -sAG -wsl -usu -qVd -qVd -qVd -qVd -mnL -qVd -qVd -qVd -qVd -qVd -qVd -tce -qVd -qVd -qVd -qVd -qVd -qVd -qVd -qAN -uJh -dQy -dOs -fzo -mnL -qVd -qVd -qVd -qVd -pDM cBU cBU -"} -(177,1,1) = {" cBU cBU cBU @@ -64348,19 +64330,58 @@ cBU cBU cBU cBU -lHU -lHU -lHU -shN -xUH -lml -lHU -lHU -rPn -rPn -lHU -lHU -lHU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +"} +(177,1,1) = {" +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +eSd +sCY +sCY +sCY +lCA +sCY +aOq +sCY +sCY +sCY +ihO +lCA +lCA +nix +gCB cBU cBU uNL @@ -64543,47 +64564,8 @@ cBU cBU cBU cBU -pDM -sAG -sAG -sAG -sAG -wsl -usu -fzo -fzo -fzo -fzo -mnL -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -qVd -qVd -qVd -fzo -fzo -fzo -qAN -auq -tgn -oPu -fzo -mnL -fzo -fzo -fzo -fzo -pDM cBU cBU -"} -(178,1,1) = {" cBU cBU cBU @@ -64606,17 +64588,56 @@ cBU cBU cBU cBU -gCB -cgL -cgL -jgF -cgL -gCB -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +"} +(178,1,1) = {" +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +eSd sCY -ema -gCB -gCB +sCY +rFw +sCY +qMG +sCY +sCY +sCY +sCY +sCY +lCA +lCA +bJF gCB cBU cBU @@ -64800,47 +64821,8 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM -pDM -pDM -fzo -fzo -fzo -fzo -mnL -fzo -fzo -fzo -fzo -fzo -fzo -fzo -qVd -fzo -qVd -fzo -qVd -fzo -fzo -qAN -qVd -qVd -fzo -qVd -mnL -fzo -fzo -fzo -fzo -pDM cBU cBU -"} -(179,1,1) = {" cBU cBU cBU @@ -64863,20 +64845,59 @@ cBU cBU cBU cBU -gCB -vvz -kzB -suO -mKq -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +"} +(179,1,1) = {" +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +eSd +lCA +sun sCY -vCc -vCc sCY +lCA +sCY +nYy +sCY +qMG +lCA +sCY +lCA +jFS gCB cBU cBU -cBU uNL uNL uNL @@ -65063,41 +65084,8 @@ cBU cBU cBU cBU -pDM -fzo -fzo -fzo -fzo -fzo -mnL -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -qVd -fzo -qAN -mnL -mnL -wQB -mnL -mnL -fzo -fzo -fzo -fzo -pDM cBU cBU -"} -(180,1,1) = {" cBU cBU cBU @@ -65120,20 +65108,53 @@ cBU cBU cBU cBU -gCB -urs +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +"} +(180,1,1) = {" +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +eSd +tFu +lCA sCY sCY +cZc +xFO sCY -gCB sCY -vCc -vCc +sCY +sCY +lCA +mTL sCY gCB cBU cBU -cBU uNL uNL uNL @@ -65275,33 +65296,65 @@ cBU cBU cBU cBU -xZT -tUl -wwF -pOl -wGQ -ptr -wGQ -srS -wGQ -mXa -owu -owu -owu -bBe -bBe -owu -owu -owu -kFR -owu -owu -bBe -bBe -mIE -owu -bGS -cXr +xZT +tUl +wwF +pOl +wGQ +ptr +wGQ +srS +wGQ +mXa +owu +owu +owu +bBe +bBe +owu +owu +owu +kFR +owu +owu +bBe +bBe +mIE +owu +bGS +cXr +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -65320,38 +65373,6 @@ cBU cBU cBU cBU -pDM -pDM -fzo -fzo -fzo -fzo -mnL -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -qVd -fzo -fzo -fzo -qVd -fzo -fzo -bry -fzo -mnL -fzo -fzo -fzo -fzo -pDM -pDM -cBU cBU "} (181,1,1) = {" @@ -65374,21 +65395,21 @@ cBU cBU cBU cBU -cBU -cBU -cBU gCB gCB gCB -qWn gCB gCB +gCB +gCB +pkT sCY -vCc -vCc sCY +qMG +osC +gCB +gCB gCB -cBU cBU cBU uNL @@ -65578,35 +65599,35 @@ cBU cBU cBU cBU -pDM -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -65634,16 +65655,15 @@ cBU cBU cBU cBU +cBU +cBU +cBU gCB -bJF -lCA -sCY -sCY -gCB -sCY -vCc -vCc -sCY +eow +eow +sPZ +eow +eow gCB cBU cBU @@ -65658,6 +65678,7 @@ cBU cBU cBU cBU +cBU uNL uNL uNL @@ -65784,123 +65805,122 @@ cBU cBU cBU cBU -bFW -xcv -clC -clC -jiD -bFW -pOl -wwF -wGQ -wGQ -wGQ -wGQ -pOl -tKc -xZT -dWW -owu -tjO -cXr -cXr -cXr -cXr -cXr -cXr -owu -iDd -cXr -cXr -cXr -cXr -cXr -cXr -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -pDM -fzo -fzo -fzo -fzo -fzo -fzo -qVd -qVd -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -qVd -qVd -fzo -fzo -fzo -fzo -fzo -fzo -pDM -cBU -cBU -cBU -"} -(183,1,1) = {" -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU -cBU +bFW +xcv +clC +clC +jiD +bFW +pOl +wwF +wGQ +wGQ +wGQ +wGQ +pOl +tKc +xZT +dWW +owu +tjO +cXr +cXr +cXr +cXr +cXr +cXr +owu +iDd +cXr +cXr +cXr +cXr +cXr +cXr +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +"} +(183,1,1) = {" +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU gCB -lCA -lCA -sCY -sCY -gCB -sCY -vCc -vCc -sCY +sPZ +sPZ +riF +sPZ +sPZ gCB cBU cBU @@ -65915,6 +65935,7 @@ cBU cBU cBU cBU +cBU uNL uNL uNL @@ -66056,7 +66077,7 @@ wGQ pOl ybK xZT -tjO +uNn owu tjO cXr @@ -66092,35 +66113,35 @@ cBU cBU cBU cBU -pDM -pDM -fzo -fzo -fzo -fzo -fzo -qVd -qVd -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -qVd -qVd -fzo -fzo -fzo -fzo -fzo -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -66148,16 +66169,15 @@ cBU cBU cBU cBU +cBU +cBU +cBU gCB -sCY -mPR -lCA -sCY gCB -uIO -vCc -vCc -uIO +ckl +riF +sPZ +sPZ gCB cBU cBU @@ -66172,6 +66192,7 @@ cBU cBU cBU cBU +cBU uNL uNL uNL @@ -66313,7 +66334,7 @@ ptr pOl mcy xZT -tjO +sRN kFR dWW cXr @@ -66350,33 +66371,33 @@ cBU cBU cBU cBU -pDM -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -qVd -fzo -fzo -qVd -fzo -fzo -fzo -fzo -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -66405,16 +66426,15 @@ cBU cBU cBU cBU +cBU +cBU +cBU gCB -sCY -lCA -sCY -sCY -gCB -gCB -wqt -wqt -gCB +riF +sPZ +riF +sPZ +riF gCB cBU cBU @@ -66429,6 +66449,7 @@ cBU cBU cBU cBU +cBU uNL uNL uNL @@ -66607,33 +66628,33 @@ cBU cBU cBU cBU -pDM -pDM -fzo -fzo -qVd -fzo -fzo -fzo -fzo -mnL -mnL -fzo -fzo -qVd -fzo -fzo -mnL -mnL -fzo -fzo -fzo -fzo -qVd -fzo -fzo -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -66662,16 +66683,15 @@ cBU cBU cBU cBU +cBU +cBU +cBU gCB -uIO -sCY -sCY -uIO -gCB -sCY -vCc -vCc -sCY +qfg +qfg +qfg +qfg +qfg gCB cBU cBU @@ -66686,6 +66706,7 @@ cBU cBU cBU cBU +cBU uNL uNL uNL @@ -66753,6 +66774,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU imX imX imX @@ -66800,12 +66827,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU bFW vKJ vKJ @@ -66865,31 +66886,31 @@ cBU cBU cBU cBU -pDM -pDM -qVd -fzo -fzo -fzo -fzo -fzo -fzo -fzo -mnL -mnL -mnL -mnL -mnL -fzo -fzo -fzo -fzo -fzo -fzo -fzo -qVd -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -66919,16 +66940,15 @@ cBU cBU cBU cBU +cBU +cBU +cBU +gCB gCB gCB -qWn gCB gCB gCB -sCY -vCc -vCc -sCY gCB cBU cBU @@ -66943,6 +66963,7 @@ cBU cBU cBU cBU +cBU uNL uNL uNL @@ -67010,6 +67031,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU imX kPp qkQ @@ -67057,12 +67084,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU bFW lYY lYY @@ -67123,29 +67144,29 @@ cBU cBU cBU cBU -pDM -pDM -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -67176,17 +67197,17 @@ cBU cBU cBU cBU -gCB -sun -sCY -sCY -sCY -gCB -sCY -vCc -vCc -sCY -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -67267,6 +67288,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU imX hcf vJj @@ -67314,12 +67341,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU bFW lYY lYY @@ -67381,27 +67402,27 @@ cBU cBU cBU cBU -pDM -pDM -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -fzo -fzo -fzo -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -67433,17 +67454,17 @@ cBU cBU cBU cBU -gCB -sCY -sCY -sCY -sCY -gCB -uIO -vCc -vCc -uIO -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -67524,6 +67545,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU imX xCP uNK @@ -67571,12 +67598,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU bFW oza bFW @@ -67639,25 +67660,25 @@ cBU cBU cBU cBU -pDM -pDM -pDM -fzo -fzo -fzo -fzo -fzo -fzo -qVd -fzo -fzo -fzo -fzo -fzo -fzo -pDM -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -67690,18 +67711,18 @@ cBU cBU cBU cBU -gCB -sCY -sCY -sCY -sCY -gCB -gCB -pbY -pbY -gCB -gCB -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -67781,6 +67802,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU imX wDP eRF @@ -67828,12 +67855,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU bFW vKJ sXB @@ -67898,21 +67919,21 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -fzo -fzo -fzo -qVd -fzo -fzo -fzo -pDM -pDM -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -67947,18 +67968,18 @@ cBU cBU cBU cBU -gCB -sCY -sCY -sCY -sCY -sCY -fWm -sCY -sCY -fWm -sCY -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -68038,6 +68059,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU imX gSn bBj @@ -68085,12 +68112,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU bFW akl sXB @@ -68158,15 +68179,15 @@ cBU cBU cBU cBU -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM -pDM +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -68204,18 +68225,18 @@ cBU cBU cBU cBU -gCB -kuN -sCY -sCY -sCY -sCY -sCY -sCY -sCY -sCY -sun -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -68295,6 +68316,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT cGG vBa @@ -68342,12 +68369,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU bFW oza bFW @@ -68461,18 +68482,18 @@ cBU cBU cBU cBU -gCB -sCY -urs -sCY -mPR -nYy -sCY -sCY -sCY -sCY -sCY -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -68552,6 +68573,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT anD hSO @@ -68599,12 +68626,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU bFW ikc lYY @@ -68718,18 +68739,18 @@ cBU cBU cBU cBU -gCB -gCB -gCB -gCB -sCY -sCY -sCY -sCY -qMG -sCY -osC -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -68809,6 +68830,12 @@ ewG ewG cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT anD oHW @@ -68856,12 +68883,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU bFW ikc lYY @@ -68975,18 +68996,18 @@ cBU cBU cBU cBU -gCB -mKq -oyL -cgL -suO -sCY -sCY -sCY -sCY -sCY -sCY -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -69066,14 +69087,20 @@ aZV ewG cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT anD hSO lsT yli fgI -iWV -uNn +ikQ +vFk lsT iUg tSu @@ -69109,12 +69136,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs vfs vfs @@ -69232,18 +69253,18 @@ cBU cBU cBU cBU -gCB -sun -mHK -jgF -suO -sCY -sCY -qMG -sCY -sCY -lCA -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -69323,14 +69344,20 @@ ttW ewG cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT anD hSO cCI -yli -yli ikQ -uNn +iQT +ikQ +vFk lsT ogV ogV @@ -69366,12 +69393,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs aPT fvM @@ -69489,18 +69510,18 @@ cBU cBU cBU cBU -gCB -smm -kUw -gCB -sCY -sCY -sCY -sCY -sCY -qMG -sCY -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -69580,14 +69601,20 @@ bwp ewG cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT anD hSO kEc -yli -yli +iQT ikQ -uNn +ikQ +vFk lsT gSl gSl @@ -69623,12 +69650,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs phZ iaA @@ -69746,18 +69767,18 @@ cBU cBU cBU cBU -gCB -lgH -gCB -gCB -sCY -sCY -sCY -sCY -lCA -lCA -lCA -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -69837,14 +69858,20 @@ bzU ewG cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT anD hSO lsT yli iWV -iWV -uNn +ikQ +vFk lsT hSO bcx @@ -69880,12 +69907,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs oao iwV @@ -70003,18 +70024,18 @@ cBU cBU cBU cBU -gCB -sCY -bKD -sCY -sCY -sCY -sCY -qMG -lCA -sCY -tjR -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -70094,6 +70115,12 @@ ttW ewG cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT anD wZx @@ -70137,12 +70164,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs dko geO @@ -70257,21 +70278,21 @@ cBU cBU cBU cBU -gCB -gCB -gCB -gCB -sCY -tFu -lCA -sCY -qMG -sCY -sCY -sCY -sCY -bJF -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -70351,6 +70372,12 @@ ewG ewG cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT anD hSO @@ -70394,12 +70421,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs phZ iaA @@ -70514,21 +70535,21 @@ cBU cBU cBU cBU -eSd -sCY -sCY -sCY -lCA -sCY -sCY -sCY -sCY -sCY -ihO -lCA -lCA -nix -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -70608,6 +70629,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT ayA cGq @@ -70651,12 +70678,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs pDq fDU @@ -70771,21 +70792,21 @@ cBU cBU cBU cBU -eSd -sCY -sCY -rFw -sCY -qMG -sCY -sCY -sCY -sCY -sCY -lCA -lCA -bJF -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -70865,6 +70886,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU lsT lsT lsT @@ -70908,12 +70935,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs vfs vfs @@ -71028,21 +71049,21 @@ cBU cBU cBU cBU -eSd -lCA -sun -sCY -sCY -lCA -sCY -nYy -sCY -qMG -lCA -sCY -lCA -jFS -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -71136,6 +71157,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU ffQ jYW xOF @@ -71169,12 +71196,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs eHZ sNi @@ -71285,21 +71306,21 @@ cBU cBU cBU cBU -eSd -tFu -lCA -sCY -sCY -cZc -xFO -sCY -sCY -sCY -sCY -lCA -mTL -sCY -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -71393,6 +71414,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU ffQ xHR vDH @@ -71426,12 +71453,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs eHZ sNi @@ -71542,21 +71563,21 @@ cBU cBU cBU cBU -gCB -gCB -gCB -gCB -gCB -gCB -gCB -pkT -sCY -sCY -qMG -osC -gCB -gCB -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -71650,6 +71671,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU ffQ gRd wPz @@ -71683,12 +71710,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs lya sNi @@ -71805,13 +71826,13 @@ cBU cBU cBU cBU -gCB -eow -eow -sPZ -eow -eow -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -71907,6 +71928,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU ffQ xHR xxs @@ -71940,12 +71967,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs eHZ sNi @@ -72062,13 +72083,19 @@ cBU cBU cBU cBU -gCB -sPZ -sPZ -sPZ -sPZ -sPZ -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -72197,12 +72224,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs eHZ omX @@ -72210,7 +72231,7 @@ qNR gdy sNi sNi -sbd +ntL vfs cBU cBU @@ -72319,13 +72340,13 @@ cBU cBU cBU cBU -gCB -gCB -ckl -sPZ -sPZ -sPZ -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -72421,6 +72442,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU ffQ eEN vDH @@ -72454,12 +72481,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vfs eHZ sNi @@ -72576,13 +72597,13 @@ cBU cBU cBU cBU -gCB -riF -sPZ -riF -sPZ -riF -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -72636,7 +72657,7 @@ rru rru rru iJx -aXl +vQr rcG aXl jwD @@ -72678,6 +72699,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU ffQ dGw vDH @@ -72701,12 +72728,6 @@ ffQ ffQ ffQ ffQ -ffQ -ffQ -ffQ -ffQ -ffQ -ffQ cBU cBU cBU @@ -72724,7 +72745,7 @@ qNR gdy sNi atr -sbd +yhB vfs cBU cBU @@ -72833,13 +72854,13 @@ cBU cBU cBU cBU -gCB -iQT -iQT -iQT -iQT -iQT -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -72935,6 +72956,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU ffQ qKf vDH @@ -72950,12 +72977,6 @@ cJx cJx cJx cJx -jUd -dZy -cJx -cJx -cJx -cJx cJx cJx bon @@ -73090,13 +73111,13 @@ cBU cBU cBU cBU -gCB -gCB -gCB -gCB -gCB -gCB -gCB +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -73192,6 +73213,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU ffQ rQO vDH @@ -73203,12 +73230,6 @@ eXs eXs eXs eXs -raf -eXs -eXs -eXs -eXs -eXs eXs eXs eXs @@ -73407,11 +73428,11 @@ mjI mjI mZX iJx -vQr +aXl aXl krZ aXl -oIv +aXl aXl itY aXl @@ -73449,6 +73470,12 @@ cBU cBU cBU cBU +cBU +cBU +cBU +cBU +cBU +cBU ffQ vaB rhL @@ -73463,12 +73490,6 @@ mDm mDm mDm mDm -vFk -mDm -rhL -mDm -mDm -mDm dkw mDm mDm @@ -73667,7 +73688,7 @@ iJx aXl aXl aXl -aXl +oIv utI rtx rtx @@ -73706,12 +73727,12 @@ cBU cBU cBU cBU -ffQ -ffQ -ffQ -ffQ -ffQ -ffQ +cBU +cBU +cBU +cBU +cBU +cBU ffQ ffQ ffQ @@ -74242,7 +74263,7 @@ pYv nqq bWC shF -shF +fBe pnF tbg xHR @@ -75206,7 +75227,7 @@ liq liq liq iJx -vQr +aXl aXl rmM mBO @@ -75288,7 +75309,7 @@ sNi sNi iwV iwV -ifL +ljD geO ifL vfs @@ -75688,11 +75709,11 @@ pIu pIu pIu pIu -pIu -lRe +iFq lRe lRe lRe +aBu lRe nrj aYx @@ -75766,8 +75787,8 @@ dXu uEM uEM sUG -slw -slw +mhL +mhL mhL oRp uPC @@ -76023,8 +76044,8 @@ uEM uEM uEM oFP -slw -slw +mhL +mhL mhL oRp uPC @@ -76041,7 +76062,7 @@ woi shF wWP shF -gEn +shF shF dwI nSs @@ -76982,12 +77003,12 @@ lRe nrj lRe mtw -cBU -cBU -cBU -cBU -cBU -cBU +mtw +mtw +mtw +mtw +mtw +mtw cBU cBU cBU @@ -77238,6 +77259,12 @@ dNY lRe nrj lRe +lRe +hbJ +hcP +clO +feX +tFM mtw cBU cBU @@ -77249,12 +77276,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vqb liq gtN @@ -77494,7 +77515,13 @@ pIu dNY lRe nrj -aYx +nrj +nrj +uza +nrj +uKC +uKC +tFM mtw cBU cBU @@ -77506,12 +77533,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vqb liq gtN @@ -77750,8 +77771,14 @@ rOw pIu dNY lRe -nrj lRe +lRe +lRe +hbJ +hcP +clO +aeV +tFM mtw cBU cBU @@ -77763,12 +77790,6 @@ cBU cBU cBU cBU -cBU -cBU -cBU -cBU -cBU -cBU vqb liq gtN @@ -78006,16 +78027,16 @@ ajC tVX pIu dNY -lRe -nrj -lRe mtw -cBU -cBU -cBU -cBU -cBU -cBU +mtw +mtw +mtw +mtw +mtw +mtw +mtw +mtw +mtw cBU cBU cBU @@ -78263,10 +78284,10 @@ ajC pIu pIu dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -78494,7 +78515,7 @@ tkT cBU vfH vfH -rab +xPM xPM vfH vfH @@ -78520,10 +78541,10 @@ ajC pIu pIu dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -78777,10 +78798,10 @@ ajC tVX pIu dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -78865,7 +78886,7 @@ cBU cBU bbe cqo -nqq +rdw shF shF shF @@ -79034,10 +79055,10 @@ ajC gUm sRF dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -79269,7 +79290,7 @@ rab rab vfH cBU -hhM +cBU hhM hhM hhM @@ -79291,10 +79312,10 @@ ajC pUu fgh dNY -lRe -nrj -aYx -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -79527,11 +79548,11 @@ hzy tkT tkT tkT +tkT +aGx aGx -ntL -icy icy -ntL +aGx aGx hhM jcD @@ -79548,10 +79569,10 @@ ajC fgh pIu dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -79782,13 +79803,13 @@ gHV gHV gHV gHV +gHV seR tkT hhM wqJ wqJ wqJ -wqJ hhM hhM iPV @@ -79805,10 +79826,10 @@ ajC pIu pIu dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -80039,9 +80060,9 @@ gHV gHV gHV gHV +gHV seR -aVR -bLK +dPL bLK bLK bLK @@ -80050,7 +80071,7 @@ bLK bAz bLK bLK -bAz +swk pIu pIu pIu @@ -80062,10 +80083,10 @@ ajC tVX pIu dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -80289,6 +80310,7 @@ riS bmb gHV gHV +dZy gHV gHV gHV @@ -80297,14 +80319,13 @@ gHV gHV gHV seR -gHV -bLK +dPL bLK bLK bLK bLK bLK -lgI +bAz bLK bLK lgI @@ -80319,10 +80340,10 @@ ajC pIu pIu dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -80553,13 +80574,13 @@ gHV gHV gHV gHV +gHV seR tkT hhM wqJ wqJ wqJ -wqJ hhM hhM iPV @@ -80576,10 +80597,10 @@ xdZ pIu sRF dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -80812,11 +80833,11 @@ eEJ tkT tkT tkT +tkT +aGx aGx -ntL -pxl pxl -ntL +aGx aGx hhM jcD @@ -80833,10 +80854,10 @@ pIu pIu rOw dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -81068,7 +81089,7 @@ pwu pwu oMw cBU -hhM +cBU hhM hhM hhM @@ -81090,10 +81111,10 @@ pIu pIu pIu dNY -lRe -nrj -aYx -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -81343,14 +81364,14 @@ dNY dNY dNY dNY -pIu +exE exE dNY dNY -lRe -nrj -lRe -mtw +cBU +cBU +cBU +cBU cBU cBU cBU @@ -81604,16 +81625,16 @@ pIu pIu pIu dNY -lRe -nrj -lRe -mtw -mtw -mtw -mtw -mtw -mtw -mtw +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -81811,7 +81832,7 @@ cBU hvc lzo lzo -lzo +lkt lzo lzo hvc @@ -81861,16 +81882,16 @@ pIu pIu pIu dNY -lRe -nrj -lRe -lRe -hbJ -hcP -clO -feX -xlP -mtw +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -82068,7 +82089,7 @@ cBU hvc hvc wap -lzo +lkt lzo lzo hvc @@ -82092,7 +82113,7 @@ oMw oMw oMw oMw -pwu +wOg wOg oMw oMw @@ -82118,16 +82139,16 @@ pIu iox sRF dNY -lRe -nrj -nrj -nrj -uza -nrj -clO -clO -xlP -mtw +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -82375,16 +82396,16 @@ xYg xVR lBi dNY -lRe -lRe -lRe -lRe -hbJ -hcP -clO -aeV -xlP -mtw +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU @@ -82632,16 +82653,16 @@ aNH aNH aNH dNY -mtw -mtw -mtw -mtw -mtw -mtw -mtw -mtw -mtw -mtw +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU +cBU cBU cBU cBU diff --git a/_maps/map_files220/RandomZLevels/caves.dmm b/_maps/map_files220/RandomZLevels/caves.dmm index c2477216dd5f..902a197ec42f 100644 --- a/_maps/map_files220/RandomZLevels/caves.dmm +++ b/_maps/map_files220/RandomZLevels/caves.dmm @@ -1273,10 +1273,6 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/wood/oak, /area/awaymission/caves/build/reqpower_build) -"fO" = ( -/obj/effect/spawner/random_spawners/grille_maybe, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/awaymission/caves) "fQ" = ( /obj/structure/table_frame, /obj/effect/spawner/random_spawners/dirt_often, @@ -22556,7 +22552,7 @@ TK TK TK TK -fO +mc ZJ Aq ZJ @@ -22788,8 +22784,8 @@ TK TK TK TK -fO -fO +mc +Pb ZJ ZJ ZJ @@ -23021,7 +23017,7 @@ TK TK TK TK -fO +Pb ZJ gc qi @@ -23253,7 +23249,7 @@ TK TK TK TK -fO +mc TK qi qE diff --git a/_maps/map_files220/RandomZLevels/gate_lizard.dmm b/_maps/map_files220/RandomZLevels/gate_lizard.dmm index 616713d1adf8..a5085f015980 100644 --- a/_maps/map_files220/RandomZLevels/gate_lizard.dmm +++ b/_maps/map_files220/RandomZLevels/gate_lizard.dmm @@ -161,7 +161,7 @@ /obj/machinery/economy/vending/cigarette/free, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "ajJ" = ( @@ -318,7 +318,7 @@ /obj/structure/largecrate, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "atT" = ( @@ -358,7 +358,7 @@ /obj/item/clothing/gloves/color/black, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "axq" = ( @@ -456,7 +456,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "aHl" = ( @@ -504,7 +504,7 @@ /obj/effect/turf_decal/caution, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "aKg" = ( @@ -566,7 +566,7 @@ /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "aPs" = ( @@ -639,7 +639,7 @@ /obj/effect/decal/remains/human, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "aWy" = ( @@ -671,7 +671,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "baN" = ( @@ -865,7 +865,7 @@ /obj/item/shard, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "blr" = ( @@ -893,7 +893,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "bon" = ( @@ -920,7 +920,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "boK" = ( @@ -1000,7 +1000,7 @@ /obj/structure/railing, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside/river) "bru" = ( @@ -1030,7 +1030,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "bsO" = ( @@ -1069,7 +1069,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "btI" = ( @@ -1102,7 +1102,7 @@ /obj/item/ammo_casing/caseless/arrow, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "bvC" = ( @@ -1344,7 +1344,7 @@ /obj/structure/closet/crate, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "bKN" = ( @@ -1463,7 +1463,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "bSO" = ( @@ -1560,7 +1560,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "caM" = ( @@ -1585,7 +1585,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "cbH" = ( @@ -1691,7 +1691,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside/river) "cjT" = ( @@ -1775,7 +1775,7 @@ /obj/structure/closet/crate/radiation, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "cod" = ( @@ -1797,7 +1797,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "cpc" = ( @@ -1884,7 +1884,7 @@ /obj/structure/reagent_dispensers/watertank, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "cxP" = ( @@ -1957,7 +1957,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "cAM" = ( @@ -2080,7 +2080,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "cFQ" = ( @@ -2184,7 +2184,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "cLm" = ( @@ -2206,7 +2206,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "cNf" = ( @@ -2423,7 +2423,7 @@ /obj/structure/closet/crate/radiation, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "deq" = ( @@ -2521,7 +2521,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "dla" = ( @@ -2776,7 +2776,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "dGT" = ( @@ -2965,7 +2965,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "dSA" = ( @@ -2975,7 +2975,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "dTm" = ( @@ -3063,7 +3063,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "dZu" = ( @@ -3137,7 +3137,7 @@ /obj/machinery/light_construct/directional/east, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "ecP" = ( @@ -3330,7 +3330,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "erB" = ( @@ -3719,7 +3719,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "eOR" = ( @@ -3729,7 +3729,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "ePb" = ( @@ -3816,7 +3816,7 @@ /obj/effect/turf_decal/arrows, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "eUq" = ( @@ -3944,7 +3944,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "fgN" = ( @@ -4006,7 +4006,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "fjM" = ( @@ -4051,7 +4051,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "fnP" = ( @@ -4411,7 +4411,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "fJU" = ( @@ -4594,7 +4594,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside/river) "fYG" = ( @@ -4653,7 +4653,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "gck" = ( @@ -4691,7 +4691,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "geP" = ( @@ -4728,7 +4728,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "giz" = ( @@ -4801,7 +4801,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "gon" = ( @@ -4977,7 +4977,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "gBW" = ( @@ -5177,7 +5177,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "gQV" = ( @@ -5309,7 +5309,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "gZv" = ( @@ -5668,7 +5668,7 @@ /obj/item/storage/box, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "htc" = ( @@ -5697,7 +5697,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "htO" = ( @@ -5772,7 +5772,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "hyb" = ( @@ -6175,7 +6175,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "iaW" = ( @@ -6210,7 +6210,7 @@ /obj/effect/landmark/awaystart, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "ibX" = ( @@ -6333,7 +6333,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "iim" = ( @@ -6530,7 +6530,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "ivg" = ( @@ -6573,7 +6573,7 @@ /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "iyF" = ( @@ -6607,7 +6607,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "iBS" = ( @@ -6724,7 +6724,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside/river) "iJu" = ( @@ -6811,7 +6811,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "iMW" = ( @@ -6820,7 +6820,7 @@ /obj/item/clothing/gloves/color/black, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "iNw" = ( @@ -6977,7 +6977,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "iXz" = ( @@ -7050,7 +7050,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside/river) "jcp" = ( @@ -7124,7 +7124,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "jhj" = ( @@ -7351,7 +7351,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "jvN" = ( @@ -7386,7 +7386,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "jxF" = ( @@ -7548,7 +7548,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "jFM" = ( @@ -7559,7 +7559,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "jHd" = ( @@ -7885,7 +7885,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "kcJ" = ( @@ -7916,7 +7916,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "kdW" = ( @@ -8077,7 +8077,7 @@ /obj/item/shield/riot, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "knx" = ( @@ -8174,7 +8174,7 @@ /obj/effect/turf_decal/arrows, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "kuK" = ( @@ -8279,7 +8279,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "kzW" = ( @@ -8333,7 +8333,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "kDy" = ( @@ -8414,7 +8414,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "kIr" = ( @@ -8661,7 +8661,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "kWD" = ( @@ -8703,7 +8703,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "kZj" = ( @@ -8990,7 +8990,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "lpa" = ( @@ -9051,7 +9051,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "lsA" = ( @@ -9108,7 +9108,7 @@ /obj/item/storage/bag/ore, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "lxn" = ( @@ -9201,7 +9201,7 @@ "lFP" = ( /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside/river) "lGm" = ( @@ -9211,7 +9211,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "lGL" = ( @@ -9333,7 +9333,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "lPf" = ( @@ -9520,7 +9520,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "mdg" = ( @@ -9553,7 +9553,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "mfj" = ( @@ -9636,7 +9636,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "mjM" = ( @@ -9652,7 +9652,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "mky" = ( @@ -9668,7 +9668,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "mkC" = ( @@ -9807,7 +9807,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "mqZ" = ( @@ -10053,14 +10053,14 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "mFZ" = ( /obj/structure/sign/poster/official/random/south, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "mHv" = ( @@ -10168,7 +10168,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "mKY" = ( @@ -10268,7 +10268,7 @@ /obj/effect/turf_decal/delivery, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "mRQ" = ( @@ -10365,7 +10365,7 @@ /obj/machinery/light_construct/directional/south, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "mVl" = ( @@ -10510,7 +10510,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "ndV" = ( @@ -10558,7 +10558,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "nhk" = ( @@ -10702,7 +10702,7 @@ /obj/item/pen, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "nwg" = ( @@ -10945,7 +10945,7 @@ /obj/item/stack/rods, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "nOA" = ( @@ -11011,7 +11011,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "nRW" = ( @@ -11025,7 +11025,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside/river) "nSR" = ( @@ -11251,7 +11251,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "ojJ" = ( @@ -11335,7 +11335,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside/river) "opf" = ( @@ -11483,7 +11483,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "oyy" = ( @@ -11621,7 +11621,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "oFV" = ( @@ -11652,7 +11652,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "oHG" = ( @@ -11682,7 +11682,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "oKl" = ( @@ -11753,7 +11753,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "oNm" = ( @@ -11848,7 +11848,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "oSZ" = ( @@ -12067,7 +12067,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "piW" = ( @@ -12214,7 +12214,7 @@ /obj/item/radio, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "psW" = ( @@ -12296,7 +12296,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "pzw" = ( @@ -12797,7 +12797,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "qlE" = ( @@ -12961,7 +12961,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "quj" = ( @@ -12971,7 +12971,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "qur" = ( @@ -13019,7 +13019,7 @@ /obj/effect/turf_decal/grass, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "qwS" = ( @@ -13051,7 +13051,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "qxx" = ( @@ -13071,7 +13071,7 @@ /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "qzb" = ( @@ -13124,7 +13124,7 @@ "qCV" = ( /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "qDq" = ( @@ -13190,7 +13190,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "qGN" = ( @@ -13209,7 +13209,7 @@ /obj/item/ammo_casing/caseless/arrow, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "qIV" = ( @@ -13364,7 +13364,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "qTm" = ( @@ -13424,7 +13424,7 @@ /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "qVG" = ( @@ -13464,7 +13464,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "qZP" = ( @@ -13656,7 +13656,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "rma" = ( @@ -13727,7 +13727,7 @@ /obj/effect/spawner/random_spawners/blood_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "rpz" = ( @@ -13862,7 +13862,7 @@ /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "ryw" = ( @@ -13909,7 +13909,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "rAs" = ( @@ -13928,7 +13928,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "rAR" = ( @@ -14053,7 +14053,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "rKf" = ( @@ -14238,7 +14238,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "rSb" = ( @@ -14257,7 +14257,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "rSv" = ( @@ -14391,7 +14391,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "rZa" = ( @@ -14523,7 +14523,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "skb" = ( @@ -14573,7 +14573,7 @@ /obj/machinery/light_construct/directional/south, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "soo" = ( @@ -14638,7 +14638,7 @@ /obj/structure/ore_box, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "srO" = ( @@ -14652,7 +14652,7 @@ /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "srT" = ( @@ -14720,7 +14720,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "syQ" = ( @@ -14765,7 +14765,7 @@ /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "szw" = ( @@ -14933,7 +14933,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "sKN" = ( @@ -14943,7 +14943,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "sMs" = ( @@ -15023,7 +15023,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "sQQ" = ( @@ -15084,7 +15084,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "sUj" = ( @@ -15330,7 +15330,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "tjS" = ( @@ -15426,7 +15426,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "tpH" = ( @@ -15573,7 +15573,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "tAH" = ( @@ -15593,7 +15593,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "tAY" = ( @@ -15632,7 +15632,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "tDn" = ( @@ -15739,7 +15739,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "tLH" = ( @@ -15874,7 +15874,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "tUb" = ( @@ -15910,7 +15910,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "tUU" = ( @@ -16005,7 +16005,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "ubw" = ( @@ -16079,7 +16079,7 @@ /obj/structure/railing/corner, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside/river) "ueW" = ( @@ -16248,7 +16248,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "upc" = ( @@ -16664,7 +16664,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "uNI" = ( @@ -16719,7 +16719,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "uRJ" = ( @@ -16846,7 +16846,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "vbZ" = ( @@ -16970,7 +16970,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "vjv" = ( @@ -16996,7 +16996,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "vlw" = ( @@ -17056,7 +17056,7 @@ /obj/effect/landmark/damageturf, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "vot" = ( @@ -17105,7 +17105,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "vqT" = ( @@ -17194,7 +17194,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "vws" = ( @@ -17463,7 +17463,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "vKb" = ( @@ -17528,7 +17528,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "vMV" = ( @@ -17746,7 +17746,7 @@ /obj/item/stack/sheet/mineral/plasma/fifty, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "wbT" = ( @@ -17786,7 +17786,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "weC" = ( @@ -17812,7 +17812,7 @@ "wft" = ( /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "wgn" = ( @@ -17823,7 +17823,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "who" = ( @@ -17935,7 +17935,7 @@ /obj/effect/decal/cleanable/glass, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "wtJ" = ( @@ -18010,7 +18010,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "wzc" = ( @@ -18244,7 +18244,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "wMk" = ( @@ -18368,7 +18368,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "wRw" = ( @@ -18411,7 +18411,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "wUi" = ( @@ -18467,7 +18467,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "wZE" = ( @@ -18526,7 +18526,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside/complex) "xaS" = ( @@ -18742,7 +18742,7 @@ /obj/effect/spawner/random_spawners/dirt_frequent, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "xsG" = ( @@ -18760,7 +18760,7 @@ /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "xtu" = ( @@ -18771,7 +18771,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "xtv" = ( @@ -18935,7 +18935,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "xDi" = ( @@ -19004,7 +19004,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "xJT" = ( @@ -19015,7 +19015,7 @@ }, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/outside) "xKX" = ( @@ -19087,7 +19087,7 @@ /obj/effect/spawner/random_spawners/dirt_often, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "xPg" = ( @@ -19153,7 +19153,7 @@ /obj/effect/landmark/awaystart, /turf/simulated/floor/plasteel{ dir = 4; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/awaymission/jungle_planet/inside) "xQt" = ( diff --git a/_maps/map_files220/cyberiad/cyberiad.dmm b/_maps/map_files220/cyberiad/cyberiad.dmm index 50fda46f384d..f579411fd465 100644 --- a/_maps/map_files220/cyberiad/cyberiad.dmm +++ b/_maps/map_files220/cyberiad/cyberiad.dmm @@ -4425,6 +4425,25 @@ /area/station/security/lobby) "asY" = ( /obj/structure/chair/office/dark, +/obj/machinery/door_control/normal/east{ + id = "BrigRight"; + name = "Brig Foyer Right Doors"; + req_one_access_txt = "63" + }, +/obj/machinery/door_control/normal/east{ + pixel_y = 8; + name = "Brig Foyer Left Doors"; + req_one_access_txt = "63"; + desc = "A remote control switch for the brig foyer."; + id = "BrigLeft" + }, +/obj/machinery/door_control/normal/east{ + pixel_y = -8; + desc = "A remote control switch for the brig foyer."; + id = "BrigEast"; + name = "Brig Foyer East Doors"; + req_one_access_txt = "63" + }, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "darkred" @@ -4877,29 +4896,13 @@ icon_state = "4-8" }, /obj/effect/mapping_helpers/airlock/windoor/access/any/security/general, -/obj/machinery/door_control/normal{ - desc = "A remote control switch for the brig foyer."; - id = "BrigLeft"; - name = "Brig Foyer Left Doors"; - pixel_x = -5; - pixel_y = 6; - req_one_access_txt = "63" - }, -/obj/machinery/door_control/normal{ - desc = "A remote control switch for the brig foyer."; - id = "BrigRight"; - name = "Brig Foyer Right Doors"; - pixel_x = 5; - pixel_y = 6; - req_one_access_txt = "63" +/obj/item/paper_bin{ + pixel_y = 3; + pixel_x = -4 }, -/obj/machinery/door_control/normal{ - desc = "A remote control switch for the brig foyer."; - id = "BrigEast"; - name = "Brig Foyer East Doors"; - pixel_x = 5; - pixel_y = -2; - req_one_access_txt = "63" +/obj/item/pen{ + pixel_x = -2; + pixel_y = 5 }, /turf/simulated/floor/plasteel{ icon_state = "redfull" @@ -9749,7 +9752,7 @@ }, /obj/structure/window/reinforced, /turf/simulated/floor/plasteel{ - icon_state = "Dark_Golden_1"; + icon_state = "dark"; dir = 6 }, /area/station/legal/courtroom) @@ -13411,7 +13414,16 @@ /turf/simulated/floor/plating, /area/station/maintenance/fpmaint) "aXI" = ( +/obj/machinery/light/small/directional/west, /obj/structure/table/glass, +/obj/item/reagent_containers/spray/pestspray{ + pixel_x = -6; + pixel_y = 9 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_y = 4; + pixel_x = 4 + }, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/garden) "aXL" = ( @@ -13888,9 +13900,9 @@ }, /area/station/command/vault) "aZj" = ( -/obj/machinery/light/small/directional/west, /obj/structure/table/glass, /obj/item/cultivator, +/obj/item/shovel/spade, /obj/item/hatchet, /obj/item/crowbar, /obj/item/plant_analyzer, @@ -15022,10 +15034,12 @@ /area/station/hallway/primary/central/north) "bdx" = ( /obj/structure/table/glass, -/obj/item/reagent_containers/spray/plantbgone, -/obj/item/reagent_containers/spray/pestspray, -/obj/item/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/reagent_containers/glass/bottle/nutrient/rh, +/obj/item/reagent_containers/glass/bottle/nutrient/ez{ + pixel_x = 4 + }, +/obj/item/reagent_containers/glass/bottle/nutrient/rh{ + pixel_x = -4 + }, /obj/machinery/light/directional/east, /turf/simulated/floor/plasteel{ dir = 4; @@ -15903,8 +15917,9 @@ /area/station/service/expedition) "bgM" = ( /obj/structure/table/glass, -/obj/item/hatchet, /obj/item/cultivator, +/obj/item/shovel/spade, +/obj/item/hatchet, /obj/item/crowbar, /obj/item/plant_analyzer, /obj/item/reagent_containers/glass/bucket, @@ -26144,6 +26159,9 @@ /area/station/medical/sleeper) "caS" = ( /obj/structure/table, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitepurplecorner" @@ -26931,6 +26949,11 @@ /area/station/hallway/primary/central/south) "cdP" = ( /obj/effect/turf_decal/stripes/corner, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/simulated/floor/plasteel{ icon_state = "whitepurplecorner" }, @@ -43617,6 +43640,9 @@ /area/station/turret_protected/aisat/interior) "dnY" = ( /obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "purple" @@ -51967,7 +51993,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/assembly/mousetrap/armed, /turf/simulated/floor/plasteel{ - icon_state = "Dark" + icon_state = "dark" }, /area/station/maintenance/abandonedbar) "fZX" = ( @@ -52214,6 +52240,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/cyan, /turf/simulated/floor/plasteel, /area/station/maintenance/apmaint) +"ggx" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/station/science/hallway) "ggB" = ( /obj/machinery/light/directional/south, /turf/simulated/floor/plasteel{ @@ -54264,7 +54298,7 @@ /obj/effect/turf_decal/arrows/black{ dir = 8 }, -/obj/machinery/door/poddoor/shutters/preopen{ +/obj/machinery/door/poddoor/shutters/window/preopen{ dir = 8; id_tag = "hopqueue"; name = "Privacy Shutters" @@ -55157,7 +55191,7 @@ /obj/item/reagent_containers/glass/bucket, /obj/structure/sink/directional/north, /turf/simulated/floor/plasteel{ - icon_state = "Dark" + icon_state = "dark" }, /area/station/maintenance/abandonedbar) "heL" = ( @@ -55314,6 +55348,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/cyan{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, /area/station/science/hallway) "hhz" = ( @@ -56620,6 +56655,9 @@ /obj/structure/table, /obj/item/reagent_containers/food/drinks/mug/sci, /obj/machinery/light/directional/west, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "whitepurplecorner" @@ -60566,6 +60604,8 @@ /obj/item/radio/intercom/custom{ pixel_y = 36 }, +/obj/structure/filingcabinet/security, +/obj/machinery/light/directional/north, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "darkred" @@ -62447,7 +62487,9 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, /area/station/science/hallway) @@ -64740,10 +64782,9 @@ /obj/machinery/door/airlock/medical/glass{ name = "Isolator" }, -/obj/machinery/door/poddoor/shutters/preopen{ +/obj/machinery/door/poddoor/shutters/window/preopen{ dir = 1; - id_tag = "durka2"; - layer = 4 + id_tag = "durka2" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -68970,7 +69011,9 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -69712,10 +69755,9 @@ /obj/item/reagent_containers/glass/beaker/waterbottle/large{ pixel_x = 7 }, -/obj/machinery/door/poddoor/shutters/preopen{ +/obj/machinery/door/poddoor/shutters/window/preopen{ dir = 1; - id_tag = "durka2"; - layer = 4 + id_tag = "durka2" }, /obj/machinery/door/window/reinforced/normal{ dir = 1; @@ -71314,6 +71356,15 @@ icon_state = "darkyellow" }, /area/station/command/office/ce) +"ngB" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple" + }, +/area/station/science/hallway) "ngO" = ( /obj/structure/cable{ d1 = 1; @@ -72325,17 +72376,17 @@ d2 = 8; icon_state = "1-8" }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -74473,6 +74524,22 @@ icon_state = "dark" }, /area/station/science/robotics) +"onv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/station/science/hallway) "onE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -75608,6 +75675,15 @@ icon_state = "dark" }, /area/station/science/server) +"oIJ" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner" + }, +/area/station/science/hallway) "oJc" = ( /obj/structure/chair/stool, /turf/simulated/floor/plasteel{ @@ -76961,7 +77037,7 @@ /obj/effect/turf_decal/arrows/black{ dir = 4 }, -/obj/machinery/door/poddoor/shutters/preopen{ +/obj/machinery/door/poddoor/shutters/window/preopen{ dir = 8; id_tag = "hopqueue"; name = "Privacy Shutters" @@ -77073,7 +77149,8 @@ dir = 8 }, /obj/structure/holohoop{ - dir = 4 + dir = 4; + pixel_x = -6 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -77849,7 +77926,10 @@ "pwk" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/power/apc/directional/east, -/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -78176,8 +78256,8 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "Dark_Golden_1"; - dir = 5 + icon_state = "dark"; + dir = 6 }, /area/station/legal/courtroom) "pBP" = ( @@ -78664,14 +78744,13 @@ /obj/machinery/door/airlock/medical/glass{ name = "Isolator" }, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id_tag = "durka1"; - layer = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/mapping_helpers/airlock/access/any/medical/psychology, +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 1; + id_tag = "durka1" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -78974,11 +79053,6 @@ }, /area/station/engineering/atmos) "pTa" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id_tag = "durka1"; - layer = 4 - }, /obj/structure/table/reinforced, /obj/machinery/door/window/reinforced/normal{ name = "Secure Desk" @@ -78990,6 +79064,10 @@ /obj/effect/mapping_helpers/airlock/windoor/access/any/medical/psychology{ dir = 1 }, +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 1; + id_tag = "durka1" + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -79793,7 +79871,7 @@ /area/station/maintenance/assembly_line) "qjA" = ( /turf/simulated/floor/plasteel{ - icon_state = "Dark" + icon_state = "dark" }, /area/station/maintenance/abandonedbar) "qjC" = ( @@ -84518,6 +84596,21 @@ icon_state = "browncorner" }, /area/station/hallway/primary/central/sw) +"rXa" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/station/science/hallway) "rXb" = ( /obj/structure/closet/wardrobe/white, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -85553,6 +85646,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -95642,7 +95736,7 @@ /obj/item/clothing/accessory/scarf/white, /obj/effect/spawner/lootdrop/maintenance/three, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/maintenance/abandonedbar) "vXb" = ( @@ -96023,13 +96117,20 @@ }, /area/station/security/brig) "wet" = ( +/obj/structure/disposalpipe/segment, /obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "whitepurplecorner" + icon_state = "white" }, /area/station/science/hallway) "wew" = ( @@ -96724,6 +96825,15 @@ icon_state = "white" }, /area/station/maintenance/aft) +"wsm" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplecorner" + }, +/area/station/science/hallway) "wsA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -99212,7 +99322,9 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/station/science/hallway) @@ -100753,7 +100865,6 @@ }, /area/station/science/xenobiology) "xRV" = ( -/obj/machinery/hologram/holopad, /obj/structure/disposalpipe/sortjunction{ dir = 2; name = "Sci RD Office 1"; @@ -101824,6 +101935,9 @@ }, /area/station/command/office/ce) "yku" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "purple" @@ -149365,7 +149479,7 @@ ctI eGm bNp bNp -bNp +ngB bNp bNp hLu @@ -149374,7 +149488,7 @@ cKT nXo cbq cEs -cbq +wsm cyI ctI nvq @@ -149385,7 +149499,7 @@ cbq cEs cbq lvJ -cbq +wsm cLa gVu cNx @@ -149622,7 +149736,7 @@ sqn xRV dAD aeJ -sbp +wet sbp sbp gqu @@ -149631,7 +149745,7 @@ sbp giy vXN sbp -sbp +wet aeJ aeJ ndQ @@ -149642,7 +149756,7 @@ aeJ aeJ fKW xKi -pmv +onv kyf pmv nkt @@ -149878,8 +149992,8 @@ uMa awK ctI wci -spl cgq +ggx spl keJ ufq @@ -149888,7 +150002,7 @@ spl uMa lvJ spl -uMa +oIJ uMa ctI spl @@ -149899,7 +150013,7 @@ spl spl lvJ spl -spl +ggx hug spl spl @@ -150645,7 +150759,7 @@ cZT xcO oOz vzI -sbp +rXa nwR cdP cbj @@ -150903,7 +151017,7 @@ lmS bWv bTe caS -wet +spl pwk cqc kHG diff --git a/_maps/map_files220/delta/delta.dmm b/_maps/map_files220/delta/delta.dmm index 2ca7e72ae829..0beb30b278c1 100644 --- a/_maps/map_files220/delta/delta.dmm +++ b/_maps/map_files220/delta/delta.dmm @@ -60,7 +60,8 @@ /turf/simulated/wall/r_wall, /area/station/maintenance/starboard2) "abV" = ( -/obj/machinery/economy/vending/security, +/obj/structure/table/reinforced, +/obj/machinery/recharger, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "darkred" @@ -249,6 +250,9 @@ d2 = 8; icon_state = "1-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/oak, /area/station/science/robotics/showroom) "adb" = ( @@ -425,6 +429,7 @@ icon_state = "2-8" }, /obj/effect/landmark/start/internal_affairs, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "aeh" = ( @@ -979,6 +984,12 @@ icon_state = "cmo" }, /area/station/medical/break_room) +"ahr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "aht" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -1513,6 +1524,9 @@ "alX" = ( /obj/machinery/economy/vending/lawdrobe, /obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "amd" = ( @@ -1532,11 +1546,6 @@ /turf/simulated/floor/plating, /area/station/maintenance/starboard) "amh" = ( -/obj/structure/disposalpipe/sortjunction/reversed{ - dir = 4; - name = "Disposals Maint"; - sort_type_txt = "1" - }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/structure/cable{ @@ -1559,6 +1568,10 @@ d2 = 8; icon_state = "2-8" }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/station/maintenance/disposal/west) "amu" = ( @@ -1623,6 +1636,9 @@ id = "PrivateRoom2" }, /obj/structure/chair/comfy/brown, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_male) "amF" = ( @@ -1795,6 +1811,7 @@ /area/station/hallway/secondary/entry) "anv" = ( /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/blue, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "any" = ( @@ -1984,6 +2001,17 @@ icon_state = "neutral" }, /area/station/maintenance/fore2) +"aon" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/public/vacant_store) "aoo" = ( /turf/simulated/wall, /area/station/public/vacant_office) @@ -3447,9 +3475,6 @@ }, /area/station/maintenance/disposal/west) "asN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -3461,6 +3486,10 @@ d2 = 8; icon_state = "4-8" }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "brown" @@ -4109,6 +4138,9 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "auz" = ( @@ -4835,7 +4867,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/security/permabrig) "axv" = ( @@ -5298,6 +5330,15 @@ }, /turf/simulated/floor/plasteel, /area/station/engineering/controlroom) +"ayU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "ayV" = ( /obj/structure/cable/yellow{ d1 = 2; @@ -5422,13 +5463,9 @@ }, /area/station/command/office/cmo) "azx" = ( -/obj/structure/table/reinforced, -/obj/machinery/photocopier/faxmachine/longrange{ - pixel_y = 4; - department = "Quartermaster's Office" - }, /obj/effect/turf_decal/delivery/hollow, /obj/machinery/light/directional/north, +/obj/structure/filingcabinet, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "brown" @@ -6305,6 +6342,12 @@ }, /turf/simulated/floor/plating, /area/station/supply/qm) +"aCA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "aCD" = ( /obj/machinery/atmospherics/portable/scrubber/huge/stationary, /obj/effect/decal/cleanable/dirt, @@ -6447,6 +6490,9 @@ /obj/machinery/economy/vending/crittercare, /obj/effect/turf_decal/delivery, /obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, /turf/simulated/floor/plasteel, /area/station/public/pool) "aCU" = ( @@ -6617,6 +6663,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/effect/turf_decal/delivery/partial{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "brown" @@ -6935,7 +6984,6 @@ }, /area/station/supply/qm) "aEL" = ( -/obj/effect/turf_decal/delivery/hollow, /obj/structure/dresser, /turf/simulated/floor/carpet/orange, /area/station/supply/qm) @@ -7197,6 +7245,9 @@ }, /area/station/hallway/primary/fore) "aFD" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 6; @@ -7381,6 +7432,9 @@ /area/station/engineering/controlroom) "aGr" = ( /obj/structure/dresser, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "aGs" = ( @@ -7689,6 +7743,9 @@ dir = 4 }, /obj/machinery/light_switch/west, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "aHR" = ( @@ -8493,12 +8550,9 @@ }, /area/station/hallway/primary/fore) "aKw" = ( -/obj/effect/turf_decal/delivery/hollow, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "neutralcorner" - }, -/area/station/hallway/primary/fore) +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "aKx" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -8784,6 +8838,9 @@ /area/station/service/clown) "aLE" = ( /obj/item/kirbyplants, +/obj/effect/turf_decal/siding/blue{ + dir = 9 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "aLM" = ( @@ -9416,6 +9473,7 @@ dir = 1 }, /obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/siding/dark_red, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "aON" = ( @@ -9468,6 +9526,9 @@ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery/partial{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "brown" @@ -10414,6 +10475,9 @@ "aTB" = ( /obj/machinery/light/directional/west, /obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -11069,10 +11133,11 @@ /turf/simulated/floor/plasteel, /area/station/security/permabrig) "aWG" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, /obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "brown" @@ -11245,7 +11310,7 @@ /obj/effect/turf_decal/delivery/hollow, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/security/permabrig) "aXu" = ( @@ -11308,6 +11373,12 @@ /area/station/engineering/atmos) "aXH" = ( /obj/machinery/light_switch/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "aXJ" = ( @@ -12046,8 +12117,14 @@ }, /area/station/supply/office) "baZ" = ( -/obj/machinery/recharge_station, /obj/effect/turf_decal/delivery/hollow, +/obj/structure/table/reinforced, +/obj/item/eftpos{ + pixel_x = 6 + }, +/obj/item/eftpos{ + pixel_x = -6 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "red" @@ -12460,7 +12537,12 @@ }, /area/station/aisat) "bcB" = ( -/obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/arrows/black{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/partial{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "brown" @@ -14318,6 +14400,12 @@ icon_state = "purple" }, /area/station/supply/miningdock) +"bjM" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/simulated/floor/wood/oak, +/area/station/command/office/captain) "bjN" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -14401,6 +14489,9 @@ /area/station/hallway/primary/port) "bjZ" = ( /obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "bka" = ( @@ -15548,6 +15639,9 @@ /obj/structure/chair/sofa/corner{ dir = 1 }, +/obj/effect/turf_decal/siding/dark_red{ + dir = 10 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "bpm" = ( @@ -16431,6 +16525,14 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/medmaint) +"bta" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "btc" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -16563,6 +16665,9 @@ /area/station/service/hydroponics) "btF" = ( /obj/structure/dresser, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_male) "btH" = ( @@ -17001,6 +17106,12 @@ /obj/item/shard, /turf/simulated/floor/plating, /area/station/maintenance/starboard) +"bvS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "bvT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -17182,6 +17293,13 @@ icon_state = "whiteblue" }, /area/station/medical/medbay2) +"bwV" = ( +/obj/item/flag/nt, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/simulated/floor/wood/oak, +/area/station/command/office/ntrep) "bwY" = ( /obj/machinery/light/small/directional/west, /obj/structure/closet/firecloset, @@ -17782,8 +17900,9 @@ }, /area/station/hallway/primary/central/sw) "bzb" = ( -/turf/simulated/floor/plasteel, -/area/station/hallway/primary/central/ne) +/obj/effect/turf_decal/siding/wood/corner, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "bzc" = ( /obj/structure/sign/electricshock, /turf/simulated/wall/r_wall, @@ -18606,6 +18725,9 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "bCL" = ( @@ -20314,6 +20436,7 @@ dir = 10; initialize_directions = 10 }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "bHK" = ( @@ -20703,19 +20826,34 @@ /obj/structure/table/wood, /obj/machinery/status_display/directional/west, /obj/item/flashlight/lamp, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bIZ" = ( /obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bJa" = ( /obj/item/kirbyplants, /obj/machinery/light/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bJb" = ( /obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bJc" = ( @@ -20724,10 +20862,17 @@ d2 = 4; icon_state = "0-4" }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bJe" = ( /obj/machinery/newscaster/security_unit/south, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bJf" = ( @@ -20739,6 +20884,9 @@ "bJg" = ( /obj/structure/table/wood, /obj/item/paicard, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bJi" = ( @@ -20759,6 +20907,9 @@ /obj/structure/table/wood, /obj/item/clipboard, /obj/item/toy/figure/crew/captain, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bJk" = ( @@ -20767,6 +20918,9 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bJl" = ( @@ -20780,28 +20934,46 @@ /area/station/security/permabrig) "bJm" = ( /obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bJn" = ( /obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bJo" = ( /obj/machinery/ai_status_display/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bJp" = ( /obj/structure/sign/bobross{ pixel_y = 32 }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bJq" = ( /obj/machinery/status_display/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bJr" = ( /obj/item/kirbyplants, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bJs" = ( @@ -21258,6 +21430,9 @@ pixel_y = -4; req_one_access_txt = "18" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bKH" = ( @@ -21278,9 +21453,19 @@ /area/station/command/meeting_room) "bKM" = ( /obj/machinery/light_switch/south, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bKN" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bKP" = ( @@ -21344,6 +21529,9 @@ /area/station/command/office/captain) "bLg" = ( /obj/machinery/alarm/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bLh" = ( @@ -21366,6 +21554,9 @@ /obj/item/clipboard, /obj/item/book/manual/wiki/security_space_law/black, /obj/item/stamp/law, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "bLj" = ( @@ -21398,10 +21589,16 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "bLm" = ( /obj/machinery/hologram/holopad, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "bLn" = ( @@ -21800,10 +21997,16 @@ /area/station/hallway/primary/central/north) "bMM" = ( /obj/machinery/photocopier, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bMN" = ( /obj/machinery/hologram/holopad, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bMO" = ( @@ -21846,6 +22049,9 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bMV" = ( @@ -21909,16 +22115,11 @@ "bNh" = ( /obj/machinery/light/directional/east, /obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) -"bNi" = ( -/obj/structure/table, -/obj/item/flashlight/lamp{ - pixel_y = 10 - }, -/obj/item/book/manual/wiki/security_space_law, -/turf/simulated/floor/plasteel, -/area/station/security/processing) "bNj" = ( /obj/structure/chair/office/dark{ dir = 8 @@ -22404,6 +22605,9 @@ "bOE" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bOF" = ( @@ -22495,6 +22699,9 @@ /area/station/command/office/captain) "bOV" = ( /obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bOX" = ( @@ -22511,6 +22718,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bOZ" = ( @@ -22522,6 +22730,7 @@ d2 = 8; icon_state = "0-8" }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bPb" = ( @@ -22529,6 +22738,9 @@ c_tag = "Captain's Room"; dir = 8 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bPc" = ( @@ -22548,6 +22760,9 @@ }, /obj/item/camera, /obj/item/taperecorder, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "bPe" = ( @@ -22560,6 +22775,7 @@ pixel_y = 6; pixel_x = 6 }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "bPf" = ( @@ -22582,6 +22798,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "bPh" = ( @@ -22590,6 +22807,9 @@ dir = 8 }, /obj/machinery/light_switch/east, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "bPi" = ( @@ -22652,16 +22872,15 @@ }, /area/station/maintenance/fsmaint) "bPq" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4; - name = "CORPSE disposal unit" - }, /obj/structure/disposalpipe/trunk{ dir = 4 }, /obj/structure/window/reinforced{ dir = 4 }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, /turf/simulated/floor/plating, /area/station/maintenance/disposal/west) "bPs" = ( @@ -22949,7 +23168,7 @@ network = list("Prison","SS13") }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/security/permabrig) "bQi" = ( @@ -23094,11 +23313,18 @@ /obj/machinery/ai_status_display/west, /obj/item/storage/briefcase, /obj/item/storage/secure/briefcase, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bQG" = ( /obj/item/kirbyplants, /obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bQH" = ( @@ -23107,6 +23333,10 @@ c_tag = "Command Meeting Room"; dir = 1 }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "bQI" = ( @@ -23210,11 +23440,17 @@ /obj/machinery/photocopier/faxmachine/longrange{ department = "Captain's Office" }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bQU" = ( /obj/structure/table/wood, /obj/machinery/recharger, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "bQV" = ( @@ -23768,7 +24004,7 @@ "bSX" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/security/permabrig) "bTb" = ( @@ -24410,16 +24646,30 @@ name = "Head of Personnel Requests Console"; pixel_y = 30 }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/turf_decal/siding/wood/corner, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "bUR" = ( /obj/item/kirbyplants, /obj/machinery/keycard_auth/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "bUU" = ( /obj/structure/table/wood, /obj/machinery/smartfridge/id, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "bUV" = ( @@ -24576,6 +24826,9 @@ /obj/structure/chair/office/light{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "bVz" = ( @@ -24962,6 +25215,12 @@ /turf/simulated/floor/plasteel/dark, /area/station/command/office/hop) "bWR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "bWT" = ( @@ -25299,6 +25558,12 @@ "bYu" = ( /obj/machinery/status_display/directional/east, /obj/machinery/pdapainter, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "bYv" = ( @@ -25310,10 +25575,19 @@ "bYy" = ( /obj/machinery/photocopier, /obj/machinery/computer/security/telescreen/entertainment/directional/west, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "bYA" = ( /obj/machinery/light_switch/north, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "bYB" = ( @@ -25712,10 +25986,14 @@ department = "Head of Personnel's Office" }, /obj/machinery/keycard_auth/east, +/obj/effect/turf_decal/siding/wood/end, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "cab" = ( /obj/structure/closet/secure_closet/ntrep, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cad" = ( @@ -25734,23 +26012,39 @@ /area/station/command/office/ntrep) "cae" = ( /obj/structure/bookcase/sop, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "caf" = ( /obj/structure/chair/sofa/right, /obj/structure/sign/poster/official/random/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cag" = ( /obj/structure/chair/sofa, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cah" = ( /obj/structure/chair/sofa/corner, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cai" = ( /obj/item/flag/nt, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "caj" = ( @@ -25779,6 +26073,9 @@ name = "Blueshield Requests Console"; pixel_y = 30 }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "cam" = ( @@ -25855,6 +26152,9 @@ d2 = 4; icon_state = "2-4" }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "caF" = ( @@ -25877,6 +26177,9 @@ /obj/item/book/manual/wiki/sop_legal, /obj/item/book/manual/wiki/sop_command, /obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "caM" = ( @@ -26165,6 +26468,9 @@ "cbz" = ( /obj/machinery/suit_storage_unit/captain, /obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "cbA" = ( @@ -26216,7 +26522,7 @@ }, /obj/effect/mapping_helpers/airlock/access/any/service/library, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/service/library) "cbQ" = ( @@ -26275,6 +26581,12 @@ /obj/machinery/light_switch/west{ pixel_y = 32 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cbX" = ( @@ -26303,6 +26615,9 @@ d2 = 4; icon_state = "2-4" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cca" = ( @@ -26329,12 +26644,21 @@ }, /obj/structure/sign/poster/official/random/east, /obj/machinery/computer/security/telescreen/entertainment/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "ccd" = ( /obj/structure/chair/comfy/black{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "cce" = ( @@ -26355,6 +26679,12 @@ pixel_x = 24; req_access_txt = "67" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "cch" = ( @@ -26398,6 +26728,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "cck" = ( @@ -26492,6 +26825,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "ccD" = ( @@ -26744,6 +27080,9 @@ /obj/item/storage/box/PDAs, /obj/item/storage/box/ids, /obj/effect/spawner/random_spawners/id_skins, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "cdI" = ( @@ -26752,6 +27091,12 @@ }, /obj/effect/mapping_helpers/airlock/access/all/command/ntrep, /obj/machinery/light/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cdJ" = ( @@ -26779,6 +27124,9 @@ dir = 8 }, /obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cdP" = ( @@ -26790,6 +27138,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "cdQ" = ( @@ -26825,6 +27179,12 @@ /obj/machinery/keycard_auth/east{ pixel_y = -3 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "cdT" = ( @@ -26844,6 +27204,9 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "cdW" = ( @@ -26856,6 +27219,9 @@ c_tag = "Captain's Quarters"; dir = 1 }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "cdY" = ( @@ -26885,18 +27251,37 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "cem" = ( /obj/structure/table/wood, -/obj/machinery/computer/secure_data/laptop{ - dir = 8 - }, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/item/paper_bin{ + pixel_y = 4; + pixel_x = 6 + }, +/obj/item/pen/multi{ + pixel_y = 6; + pixel_x = 6 + }, +/obj/item/ashtray/glass{ + pixel_x = -8; + pixel_y = -4 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba, +/obj/item/lighter/zippo/engraved{ + pixel_x = -5 + }, /turf/simulated/floor/carpet/royalblack, /area/station/legal/magistrate) "cen" = ( @@ -26904,6 +27289,9 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "ceo" = ( @@ -26931,6 +27319,9 @@ /area/station/security/warden) "ceq" = ( /obj/machinery/papershredder, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "cer" = ( @@ -27079,6 +27470,9 @@ /area/station/engineering/control) "cfa" = ( /obj/structure/closet/secure_closet/captains, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "cfb" = ( @@ -27223,6 +27617,15 @@ }, /turf/simulated/floor/wood/parquet, /area/station/service/library) +"cfx" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "cfy" = ( /obj/structure/table/wood, /obj/structure/window/reinforced, @@ -27250,6 +27653,12 @@ "cfE" = ( /obj/structure/table/wood, /obj/machinery/recharger, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "cfF" = ( @@ -27266,10 +27675,15 @@ /turf/simulated/floor/carpet/royalblack, /area/station/command/office/ntrep) "cfK" = ( +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cfL" = ( /obj/item/flag/nt, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "cfM" = ( @@ -27280,6 +27694,12 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "cfN" = ( @@ -27293,6 +27713,12 @@ /area/station/command/office/blueshield) "cfP" = ( /obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "cfQ" = ( @@ -27432,8 +27858,13 @@ /area/station/turret_protected/aisat) "cgL" = ( /obj/structure/table/wood/fancy/black, -/obj/machinery/computer/secure_data/laptop{ - dir = 4 +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen/multi{ + pixel_x = -4; + pixel_y = 5 }, /turf/simulated/floor/carpet/royalblack, /area/station/legal/courtroom) @@ -27476,6 +27907,9 @@ "cgS" = ( /obj/structure/table/wood, /obj/item/clothing/head/helmet/skull/Yorick, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "cgW" = ( @@ -27537,6 +27971,12 @@ /area/station/command/office/hop) "chj" = ( /obj/machinery/photocopier, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "chl" = ( @@ -27552,6 +27992,12 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "chq" = ( @@ -27570,6 +28016,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "chs" = ( @@ -27577,6 +28029,12 @@ /obj/item/reagent_containers/food/drinks/bottle/whiskey, /obj/item/reagent_containers/food/drinks/drinkingglass, /obj/item/reagent_containers/food/drinks/drinkingglass, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "cht" = ( @@ -27649,6 +28107,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "chG" = ( @@ -27675,10 +28136,14 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "chN" = ( /obj/item/kirbyplants, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "chO" = ( @@ -27909,12 +28374,24 @@ /obj/structure/bed/dogbed/ian, /obj/machinery/alarm/directional/east, /mob/living/simple_animal/pet/dog/corgi/Ian, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "ciF" = ( /obj/machinery/photocopier, /obj/structure/sign/poster/official/random/west, /obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "ciH" = ( @@ -27927,6 +28404,10 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "ciL" = ( @@ -27947,6 +28428,12 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "ciP" = ( @@ -27959,12 +28446,22 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "ciR" = ( /obj/machinery/photocopier, /obj/structure/sign/poster/official/random/east, /obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/blueshield) "ciS" = ( @@ -28419,11 +28916,23 @@ "ckp" = ( /obj/machinery/light/directional/west, /obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "cks" = ( /obj/machinery/ai_status_display/east, /obj/structure/filingcabinet, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "ckt" = ( @@ -28557,6 +29066,9 @@ /area/station/legal/courtroom) "ckP" = ( /obj/machinery/alarm/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "ckR" = ( @@ -28688,6 +29200,12 @@ /obj/item/clipboard, /obj/item/toy/figure/crew/ian, /obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "clU" = ( @@ -28993,6 +29511,12 @@ "cnt" = ( /obj/item/kirbyplants, /obj/machinery/light_switch/south, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "cnx" = ( @@ -29313,14 +29837,16 @@ /turf/simulated/floor/carpet/black, /area/station/legal/courtroom) "coM" = ( -/turf/simulated/floor/wood/fancy/oak, -/area/station/legal/courtroom) +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/public/vacant_store) "coN" = ( /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/wood/end, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "coP" = ( @@ -29340,6 +29866,9 @@ /obj/machinery/door_control/shutter/west{ id = "vacantstore" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "coS" = ( @@ -29355,11 +29884,17 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "coT" = ( /obj/machinery/status_display/directional/east, /obj/structure/table, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "coU" = ( @@ -29690,8 +30225,7 @@ /area/station/hallway/secondary/bridge) "cqt" = ( /obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/box/red, -/turf/simulated/floor/wood/fancy/oak, +/turf/simulated/floor/carpet, /area/station/legal/courtroom) "cqu" = ( /obj/effect/decal/cleanable/dirt, @@ -29732,6 +30266,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "cqy" = ( @@ -29750,11 +30285,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "cqB" = ( /obj/structure/table, /obj/machinery/alarm/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "cqG" = ( @@ -30872,6 +31411,9 @@ /area/station/ai_monitored/storage/eva) "cvu" = ( /obj/item/kirbyplants, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "cvz" = ( @@ -31264,6 +31806,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "cxp" = ( @@ -31495,6 +32040,9 @@ /area/station/science/robotics/showroom) "cyi" = ( /obj/structure/bookcase, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/oak, /area/station/science/robotics/showroom) "cyj" = ( @@ -31503,6 +32051,10 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/science/robotics/showroom) "cyl" = ( @@ -31772,6 +32324,10 @@ d2 = 4; icon_state = "2-4" }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -31984,6 +32540,9 @@ d2 = 4; icon_state = "2-4" }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/science/robotics/showroom) "czL" = ( @@ -32036,6 +32595,9 @@ d2 = 8; icon_state = "2-8" }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/science/robotics/showroom) "czV" = ( @@ -32265,12 +32827,7 @@ pixel_x = -8 }, /obj/effect/turf_decal/delivery/hollow, -/obj/item/eftpos{ - pixel_x = -6 - }, -/obj/item/eftpos{ - pixel_x = 6 - }, +/obj/item/book/manual/wiki/security_space_law, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "red" @@ -34082,6 +34639,9 @@ pixel_x = 3; pixel_y = 3 }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, /turf/simulated/floor/plasteel, /area/station/public/pool) "cJs" = ( @@ -34095,6 +34655,9 @@ "cJz" = ( /obj/structure/table/wood/poker, /obj/item/deck/cards, +/obj/effect/turf_decal/siding/dark_red{ + dir = 1 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "cJA" = ( @@ -34584,10 +35147,6 @@ /turf/simulated/floor/mineral/tranquillite, /area/station/service/mime) "cLr" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/structure/cable{ @@ -34600,6 +35159,9 @@ d2 = 4; icon_state = "1-4" }, +/obj/structure/disposalpipe/junction/y{ + dir = 1 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -34832,6 +35394,9 @@ icon_state = "4-8" }, /obj/item/flag/sec, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "cMG" = ( @@ -34869,6 +35434,7 @@ /obj/effect/turf_decal/delivery/partial{ dir = 1 }, +/obj/effect/turf_decal/siding/white, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "cMS" = ( @@ -35151,6 +35717,9 @@ /obj/item/bedsheet/red{ dir = 1 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "cOq" = ( @@ -35548,6 +36117,9 @@ /turf/simulated/floor/plating, /area/station/medical/psych) "cPQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "cPS" = ( @@ -35589,6 +36161,7 @@ dir = 1 }, /obj/machinery/light/directional/south, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "cQf" = ( @@ -35620,6 +36193,9 @@ "cQj" = ( /obj/machinery/economy/arcade/claw, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "cQk" = ( @@ -35830,6 +36406,9 @@ /area/station/science/xenobiology) "cRb" = ( /obj/machinery/photocopier, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "cRc" = ( @@ -36359,6 +36938,9 @@ dir = 8 }, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "cTf" = ( @@ -36713,6 +37295,9 @@ /obj/structure/sign/poster/official/walk{ pixel_x = -32 }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -37082,6 +37667,9 @@ }, /area/station/hallway/secondary/exit) "cWe" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, /obj/structure/curtain/open/shower/security{ icon_state = "closed"; opacity = 1 @@ -37090,6 +37678,9 @@ /area/station/public/arcade) "cWf" = ( /obj/structure/sign/poster/official/random/west, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -37106,6 +37697,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "cWh" = ( @@ -39268,7 +39862,9 @@ "dhd" = ( /obj/machinery/economy/vending/cigarette, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "dhe" = ( @@ -40371,6 +40967,9 @@ /obj/structure/sign/poster/official/walk{ pixel_y = 32 }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, /turf/simulated/floor/plasteel, /area/station/public/pool) "dne" = ( @@ -40381,6 +40980,9 @@ }, /mob/living/simple_animal/mouse/hamster/Representative, /obj/structure/bed/dogbed/pet, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "dng" = ( @@ -41192,6 +41794,7 @@ /area/station/medical/medbay) "drp" = ( /obj/item/kirbyplants, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "drq" = ( @@ -44141,6 +44744,9 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_male) "dIx" = ( @@ -45027,6 +45633,10 @@ d2 = 4; icon_state = "2-4" }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "dOn" = ( @@ -47839,7 +48449,9 @@ /turf/simulated/floor/plasteel/grimy, /area/station/security/detective) "dZP" = ( -/obj/machinery/hologram/holopad, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "dZQ" = ( @@ -48217,6 +48829,7 @@ /obj/structure/sign/poster/official/safety_internals{ pixel_y = -32 }, +/obj/effect/turf_decal/siding/white, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -48468,6 +49081,12 @@ "eir" = ( /obj/machinery/economy/vending/cart, /obj/machinery/computer/security/telescreen/entertainment/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "eiA" = ( @@ -48646,6 +49265,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -48842,6 +49464,9 @@ /area/station/maintenance/old_kitchen) "eoI" = ( /obj/effect/spawner/random_spawners/cobweb_right_rare, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "eoX" = ( @@ -49084,6 +49709,13 @@ }, /turf/simulated/floor/plasteel/white, /area/station/science/explab) +"esO" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "etw" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bucket, @@ -49330,6 +49962,9 @@ dir = 1 }, /obj/structure/sign/poster/official/random/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_male) "exh" = ( @@ -50235,18 +50870,6 @@ /area/station/engineering/controlroom) "eMB" = ( /obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_y = 14; - pixel_x = -5 - }, -/obj/item/paper_bin{ - pixel_y = 4; - pixel_x = 6 - }, -/obj/item/pen/multi{ - pixel_y = 6; - pixel_x = 6 - }, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -50257,14 +50880,6 @@ d2 = 4; icon_state = "1-4" }, -/obj/item/ashtray/glass{ - pixel_x = -8; - pixel_y = -4 - }, -/obj/item/clothing/mask/cigarette/cigar/cohiba, -/obj/item/lighter/zippo/engraved{ - pixel_x = -5 - }, /obj/structure/cable{ d1 = 2; d2 = 8; @@ -50275,6 +50890,7 @@ d2 = 8; icon_state = "1-8" }, +/obj/machinery/computer/secure_data/laptop, /turf/simulated/floor/carpet/royalblack, /area/station/legal/magistrate) "eMP" = ( @@ -50333,6 +50949,9 @@ /obj/item/clothing/suit/blacktrenchcoat, /obj/item/clothing/head/fedora, /obj/machinery/status_display/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/public/sleep_male) "eOm" = ( @@ -50903,6 +51522,18 @@ }, /turf/simulated/floor/plasteel/dark, /area/station/command/vault) +"eXa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/public/vacant_store) +"eXm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/simulated/floor/wood/oak, +/area/station/command/office/captain/bedroom) "eXw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance, @@ -50956,6 +51587,13 @@ icon_state = "vault" }, /area/station/service/expedition) +"eXM" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood/oak, +/area/station/medical/psych) "eXU" = ( /obj/machinery/atmospherics/unary/vent_pump{ autolink_id = "o2_out"; @@ -51304,6 +51942,12 @@ /area/station/medical/chemistry) "ffM" = ( /obj/item/kirbyplants, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "ffN" = ( @@ -51375,10 +52019,16 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "fhb" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "fhk" = ( @@ -51392,6 +52042,9 @@ /area/station/security/storage) "fho" = ( /obj/effect/spawner/random_spawners/cobweb_left_rare, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "fhp" = ( @@ -52412,7 +53065,7 @@ }, /obj/structure/railing, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/security/permabrig) "fxe" = ( @@ -54148,6 +54801,17 @@ icon_state = "redyellowfull" }, /area/station/maintenance/old_kitchen) +"fZt" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "fZJ" = ( /turf/simulated/floor/plasteel{ icon_state = "white" @@ -54371,6 +55035,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "gcZ" = ( @@ -54742,10 +55410,14 @@ /area/station/science/misc_lab) "gkg" = ( /obj/machinery/firealarm/directional/north, +/obj/structure/bed/dogbed, +/mob/living/simple_animal/pet/sloth/paperwork, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "gkj" = ( -/obj/effect/turf_decal/box/red, /obj/machinery/power/apc{ cell_type = 25000; dir = 4; @@ -54757,7 +55429,7 @@ d2 = 8; icon_state = "0-8" }, -/turf/simulated/floor/wood/fancy/oak, +/turf/simulated/floor/carpet, /area/station/legal/courtroom) "gkk" = ( /turf/simulated/floor/plasteel{ @@ -54769,6 +55441,7 @@ /obj/structure/table/glass, /obj/item/storage/fancy/donut_box, /obj/machinery/ai_status_display/south, +/obj/effect/turf_decal/siding/white, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -54815,6 +55488,9 @@ d2 = 8; icon_state = "2-8" }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "glw" = ( @@ -54854,7 +55530,12 @@ "glR" = ( /obj/machinery/disposal, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "gme" = ( @@ -55473,6 +56154,18 @@ /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plasteel, /area/station/engineering/break_room) +"gwF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "gwI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -56034,6 +56727,17 @@ /obj/effect/spawner/random_spawners/oil_maybe, /turf/simulated/floor/plating, /area/station/maintenance/apmaint) +"gIb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "gIn" = ( /obj/machinery/optable, /turf/simulated/floor/plasteel{ @@ -56166,6 +56870,9 @@ /turf/simulated/floor/plasteel, /area/station/maintenance/turbine) "gJQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "gJS" = ( @@ -56339,6 +57046,9 @@ "gMf" = ( /obj/machinery/papershredder, /obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "gMx" = ( @@ -56415,6 +57125,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "gMW" = ( @@ -56514,6 +57227,12 @@ icon_state = "darkbluecorners" }, /area/station/maintenance/starboard2) +"gOG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/simulated/floor/wood/oak, +/area/station/command/meeting_room) "gOP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -56578,6 +57297,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "gPW" = ( @@ -56595,7 +57317,6 @@ "gQg" = ( /obj/structure/table/wood, /obj/item/gavelblock, -/obj/item/gavelhammer, /obj/item/stamp/magistrate{ pixel_x = 7; pixel_y = 8 @@ -56605,6 +57326,11 @@ d2 = 2; icon_state = "1-2" }, +/obj/item/flashlight/lamp/green{ + pixel_y = 14; + pixel_x = -5 + }, +/obj/item/gavelhammer, /turf/simulated/floor/carpet/royalblack, /area/station/legal/magistrate) "gQm" = ( @@ -56644,6 +57370,9 @@ d2 = 8; icon_state = "1-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "gRm" = ( @@ -57415,6 +58144,13 @@ icon_state = "neutralcorner" }, /area/station/engineering/hardsuitstorage) +"heL" = ( +/obj/item/kirbyplants, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "heT" = ( /obj/effect/spawner/lootdrop/trash, /obj/effect/spawner/lootdrop/trash, @@ -57743,7 +58479,6 @@ /area/station/medical/cryo) "hiT" = ( /obj/structure/closet/secure_closet/quartermaster, -/obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/carpet/orange, /area/station/supply/qm) "hjl" = ( @@ -58132,7 +58867,7 @@ "hqM" = ( /obj/machinery/door/airlock{ name = "Bedroom"; - id_tag = "PrivateRoom1" + id_tag = "PrivateRoom2" }, /obj/machinery/door/firedoor, /obj/structure/cable{ @@ -58333,6 +59068,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "hvl" = ( @@ -58819,6 +59557,9 @@ d2 = 8; icon_state = "2-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "hCj" = ( @@ -59185,6 +59926,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/oak, /area/station/science/robotics/showroom) "hHk" = ( @@ -59208,6 +59952,9 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "hHy" = ( @@ -59241,6 +59988,7 @@ "hIj" = ( /obj/structure/bed/psych, /obj/random/therapy, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "hIE" = ( @@ -60375,6 +61123,9 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "iaP" = ( @@ -60981,6 +61732,9 @@ "ijQ" = ( /obj/structure/table, /obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "ijT" = ( @@ -61014,6 +61768,12 @@ icon_state = "white" }, /area/station/medical/virology/lab) +"ikz" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/public/vacant_store) "ikC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -61437,16 +62197,18 @@ }, /area/station/medical/paramedic) "ipY" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + name = "Disposals Maint"; + sort_type_txt = "1" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "brown" @@ -62309,6 +63071,9 @@ /obj/machinery/disposal, /obj/effect/turf_decal/delivery/hollow, /obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, /turf/simulated/floor/plasteel, /area/station/public/pool) "iEG" = ( @@ -62663,6 +63428,9 @@ /area/station/medical/virology/lab) "iKe" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "iKr" = ( @@ -62913,6 +63681,10 @@ /obj/machinery/hologram/holopad, /turf/simulated/floor/wood/fancy, /area/station/service/theatre) +"iOy" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/simulated/floor/wood, +/area/station/command/office/hos) "iOA" = ( /obj/structure/table/glass, /obj/item/defibrillator/loaded{ @@ -63287,6 +64059,12 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "iUW" = ( @@ -63368,6 +64146,9 @@ dir = 8 }, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "iVO" = ( @@ -63538,13 +64319,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/table/wood/fancy/black, -/obj/item/paper_bin, -/obj/item/pen/multi, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, +/obj/machinery/computer/secure_data/laptop, /turf/simulated/floor/carpet/royalblack, /area/station/legal/courtroom) "iYU" = ( @@ -63591,7 +64371,11 @@ d2 = 8; icon_state = "4-8" }, -/turf/simulated/floor/carpet, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "iZL" = ( /obj/effect/turf_decal/stripes/corner, @@ -63680,6 +64464,9 @@ /obj/structure/chair{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "jbL" = ( @@ -63689,6 +64476,12 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/security/permabrig) +"jbN" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "jbU" = ( /obj/structure/table/reinforced, /obj/structure/mirror{ @@ -64019,6 +64812,10 @@ icon_state = "neutral" }, /area/station/maintenance/fsmaint) +"jgY" = ( +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood/oak, +/area/station/command/office/captain) "jgZ" = ( /mob/living/simple_animal/hostile/retaliate/carp/koi{ name = "Jeremy" @@ -64914,6 +65711,12 @@ }, /turf/simulated/floor/wood/parquet, /area/station/service/library) +"jtC" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/public/vacant_store) "jtK" = ( /obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel, @@ -65061,6 +65864,9 @@ range = 10; req_one_access_txt = "38" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "jvu" = ( @@ -65436,6 +66242,9 @@ pixel_y = 6; pixel_x = 6 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "jDc" = ( @@ -65890,10 +66699,17 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "jKd" = ( /obj/machinery/photocopier, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "jKj" = ( @@ -66016,9 +66832,11 @@ /area/station/maintenance/starboard2) "jLO" = ( /obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/delivery/hollow, /obj/machinery/disposal, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "jMo" = ( @@ -66102,6 +66920,9 @@ /obj/structure/sign/poster/official/random/south, /obj/structure/rack, /obj/item/storage/secure/briefcase, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "jOi" = ( @@ -66155,6 +66976,9 @@ dir = 4 }, /obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "jOC" = ( @@ -66832,6 +67656,10 @@ /obj/machinery/atmospherics/meter, /turf/simulated/floor/plasteel/dark, /area/station/engineering/atmos) +"kaG" = ( +/obj/effect/turf_decal/siding/white, +/turf/simulated/floor/plasteel/freezer, +/area/station/public/pool) "kaL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table_frame, @@ -66851,6 +67679,10 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "kaO" = ( @@ -66922,6 +67754,9 @@ /obj/structure/table/glass, /obj/item/storage/fancy/crayons, /obj/item/lipstick/random, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, /turf/simulated/floor/plasteel, /area/station/public/pool) "kbw" = ( @@ -66976,6 +67811,9 @@ d2 = 4; icon_state = "1-4" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "kcd" = ( @@ -68253,6 +69091,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "kyg" = ( @@ -68514,6 +69355,9 @@ dir = 1 }, /obj/machinery/light/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "kCA" = ( @@ -68576,6 +69420,9 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "kEw" = ( @@ -68894,6 +69741,9 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "kIl" = ( @@ -69127,7 +69977,6 @@ /area/station/service/library) "kNe" = ( /obj/machinery/suit_storage_unit/qm/secure, -/obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/carpet/orange, /area/station/supply/qm) "kNg" = ( @@ -69383,6 +70232,9 @@ dir = 1 }, /obj/structure/sign/poster/official/random/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "kQQ" = ( @@ -69495,6 +70347,9 @@ d2 = 8; icon_state = "0-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "kTo" = ( @@ -69815,6 +70670,12 @@ }, /turf/simulated/floor/plasteel/dark, /area/station/engineering/atmos) +"kYb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "kYd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -69937,6 +70798,12 @@ icon_state = "red" }, /area/station/security/processing) +"laZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/simulated/floor/wood/oak, +/area/station/command/office/captain) "lbz" = ( /obj/structure/disposalpipe/junction/reversed{ dir = 4 @@ -70233,6 +71100,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "lgJ" = ( @@ -70575,14 +71445,14 @@ /area/station/maintenance/old_kitchen) "lkZ" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/reagent_containers/food/snacks/icecream/icecreamcone, -/obj/item/reagent_containers/food/snacks/icecream/icecreamcone, -/obj/item/reagent_containers/food/snacks/icecream/icecreamcone, -/obj/item/reagent_containers/food/snacks/icecream/icecreamcone, -/obj/item/reagent_containers/food/snacks/icecream, -/obj/item/reagent_containers/food/snacks/icecream, -/obj/item/reagent_containers/food/snacks/icecreamsandwich, -/obj/item/reagent_containers/food/snacks/icecreamsandwich, +/obj/item/reagent_containers/food/snacks/frozen/icecream/icecreamcone, +/obj/item/reagent_containers/food/snacks/frozen/icecream/icecreamcone, +/obj/item/reagent_containers/food/snacks/frozen/icecream/icecreamcone, +/obj/item/reagent_containers/food/snacks/frozen/icecream/icecreamcone, +/obj/item/reagent_containers/food/snacks/frozen/icecream, +/obj/item/reagent_containers/food/snacks/frozen/icecream, +/obj/item/reagent_containers/food/snacks/frozen/icecreamsandwich, +/obj/item/reagent_containers/food/snacks/frozen/icecreamsandwich, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ icon_state = "redyellowfull" @@ -71159,6 +72029,9 @@ /area/station/medical/virology/lab) "lvi" = ( /obj/structure/bookcase/sop, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "lvu" = ( @@ -71723,6 +72596,12 @@ /obj/effect/decal/cleanable/blood/old, /turf/simulated/floor/plasteel, /area/station/maintenance/medmaint) +"lDJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "lDP" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -71757,6 +72636,13 @@ icon_state = "darkred" }, /area/station/security/main) +"lDX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/simulated/floor/wood/oak, +/area/station/command/meeting_room) "lEd" = ( /obj/structure/table/wood, /obj/item/folder/blue, @@ -71765,6 +72651,12 @@ /obj/item/storage/box/keys{ pixel_x = -15 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "lEt" = ( @@ -72357,6 +73249,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "lOm" = ( @@ -72394,10 +73290,12 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "brown" }, @@ -72536,6 +73434,9 @@ /area/station/medical/virology/lab) "lPY" = ( /obj/machinery/suit_storage_unit/security/hos, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "lQa" = ( @@ -72665,6 +73566,9 @@ "lSa" = ( /obj/machinery/prize_counter, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "lSc" = ( @@ -72979,6 +73883,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "lYS" = ( @@ -73348,6 +74255,9 @@ "mga" = ( /obj/item/kirbyplants, /obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_male) "mgh" = ( @@ -73719,6 +74629,9 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "mmC" = ( @@ -73846,11 +74759,17 @@ c_tag = "Brig Head of Security's Office"; dir = 8 }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "moT" = ( /obj/structure/chair/comfy/brown, /obj/effect/landmark/start/psychiatrist, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "mpe" = ( @@ -74681,6 +75600,15 @@ icon_state = "neutralfull" }, /area/station/engineering/tech_storage) +"mCQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/simulated/floor/wood/oak, +/area/station/command/office/ntrep) "mCZ" = ( /obj/machinery/airlock_controller/air_cycler{ ext_button_link_id = "assolar_btn_ext"; @@ -74813,6 +75741,10 @@ }, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) +"mFE" = ( +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood, +/area/station/command/office/hos) "mGG" = ( /obj/item/radio/intercom/directional/east, /turf/simulated/floor/plasteel{ @@ -74907,6 +75839,12 @@ }, /turf/simulated/floor/plating, /area/station/supply/qm) +"mJJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/simulated/floor/wood/oak, +/area/station/command/meeting_room) "mKd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -75072,6 +76010,13 @@ "mNS" = ( /obj/structure/sign/poster/contraband/random/west, /obj/machinery/light/directional/west, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "mOB" = ( @@ -75135,6 +76080,9 @@ "mPR" = ( /obj/machinery/firealarm/directional/south, /obj/item/kirbyplants, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -75168,6 +76116,17 @@ icon_state = "greenblue" }, /area/station/maintenance/abandoned_garden) +"mQe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "mQD" = ( /obj/machinery/atmospherics/portable/canister/oxygen{ anchored = 1 @@ -75346,6 +76305,9 @@ id = "PrivateRoom1" }, /obj/structure/chair/comfy/brown, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "mRX" = ( @@ -75585,6 +76547,9 @@ pixel_y = 4 }, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "mVc" = ( @@ -76083,6 +77048,9 @@ /area/station/maintenance/starboard2) "ncO" = ( /obj/machinery/hologram/holopad, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "ncQ" = ( @@ -76546,6 +77514,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, /turf/simulated/floor/plasteel, /area/station/public/pool) "njM" = ( @@ -76673,6 +77644,10 @@ "nmw" = ( /obj/item/radio/intercom/directional/south, /obj/machinery/economy/slot_machine, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "nmA" = ( @@ -77703,6 +78678,13 @@ icon_state = "neutral" }, /area/station/maintenance/fore) +"nBA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "nBC" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -78026,6 +79008,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "nFu" = ( @@ -78063,6 +79048,12 @@ /obj/item/radio/intercom/directional/west, /turf/simulated/floor/plasteel/dark, /area/station/security/execution) +"nFQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "nGd" = ( /obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment{ @@ -78127,6 +79118,9 @@ pixel_y = 4 }, /obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "nHh" = ( @@ -78299,6 +79293,9 @@ /area/station/medical/patients_rooms) "nIH" = ( /obj/machinery/economy/vending/wallmed/directional/west, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -78321,6 +79318,9 @@ }, /area/station/service/theatre) "nJw" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutral" @@ -78521,6 +79521,9 @@ /obj/item/bedsheet/blue{ dir = 1 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_male) "nMc" = ( @@ -79426,6 +80429,9 @@ /obj/structure/railing{ dir = 1 }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "nZo" = ( @@ -79469,8 +80475,8 @@ /turf/simulated/floor/plasteel, /area/station/engineering/controlroom) "oav" = ( -/obj/machinery/economy/vending/security, /obj/effect/turf_decal/delivery/hollow, +/obj/machinery/recharge_station, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "red" @@ -79642,7 +80648,8 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/carpet, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "ocz" = ( /turf/simulated/floor/plasteel{ @@ -80153,6 +81160,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "olT" = ( @@ -80436,6 +81446,9 @@ d2 = 4; icon_state = "1-4" }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/oak, /area/station/science/robotics/showroom) "opB" = ( @@ -80612,6 +81625,9 @@ /area/station/security/permabrig) "osS" = ( /obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -80643,6 +81659,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain/bedroom) "otj" = ( @@ -80652,6 +81671,9 @@ d2 = 8; icon_state = "0-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "ott" = ( @@ -80752,6 +81774,12 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/starboard) +"ovJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "ovT" = ( /obj/item/radio/intercom/directional/west, /obj/effect/decal/cleanable/dirt, @@ -80838,6 +81866,9 @@ "oyu" = ( /obj/machinery/power/apc/directional/south, /obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "oyG" = ( @@ -81053,6 +82084,9 @@ /obj/structure/sign/poster/official/report_crimes{ pixel_y = 32 }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, /turf/simulated/floor/plasteel, /area/station/public/pool) "oBZ" = ( @@ -81147,6 +82181,10 @@ icon_state = "0-2" }, /obj/machinery/power/apc/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "oDB" = ( @@ -81239,6 +82277,9 @@ "oEY" = ( /obj/item/kirbyplants, /obj/machinery/light/directional/south, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -81885,6 +82926,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutral" @@ -81896,6 +82940,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "oSD" = ( @@ -82270,6 +83315,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "oYw" = ( @@ -82320,6 +83369,9 @@ c_tag = "Arcade"; dir = 4 }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "oYY" = ( @@ -82342,6 +83394,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) +"oZd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "oZm" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ @@ -82452,6 +83510,10 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "paM" = ( @@ -82492,6 +83554,7 @@ dir = 1 }, /obj/machinery/alarm/directional/south, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "pbJ" = ( @@ -82767,6 +83830,9 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/captain) "pgH" = ( @@ -82913,6 +83979,15 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/fore) +"pie" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "pih" = ( /obj/structure/cable{ d1 = 1; @@ -83873,6 +84948,9 @@ dir = 4 }, /obj/machinery/light_switch/west, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_male) "pwA" = ( @@ -83951,6 +85029,7 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/white, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -84178,6 +85257,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "pBh" = ( @@ -84360,6 +85442,12 @@ icon_state = "dark" }, /area/station/service/bar) +"pEU" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "pEY" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -84374,6 +85462,19 @@ icon_state = "neutralfull" }, /area/station/bridge/checkpoint/south) +"pFd" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp{ + pixel_y = 4; + pixel_x = -4 + }, +/obj/item/camera, +/obj/item/taperecorder, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "pFn" = ( /obj/machinery/computer/cloning, /turf/simulated/floor/plasteel{ @@ -84669,6 +85770,9 @@ /obj/structure/railing/cap/normal, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "pKe" = ( @@ -85137,6 +86241,7 @@ dir = 1 }, /obj/machinery/light/directional/south, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_male) "pRP" = ( @@ -85171,6 +86276,13 @@ icon_state = "whitegreencorner" }, /area/station/medical/virology) +"pSp" = ( +/obj/effect/turf_decal/siding/blue/corner, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "pSw" = ( /obj/machinery/economy/vending/coffee, /turf/simulated/floor/plasteel/dark, @@ -85451,6 +86563,9 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -85879,6 +86994,9 @@ pixel_x = -4; pixel_y = 5 }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "qfd" = ( @@ -86102,8 +87220,17 @@ icon_state = "redfull" }, /area/station/security/brig) +"qix" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "qiB" = ( /obj/machinery/status_display/directional/west, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -86216,6 +87343,10 @@ icon_state = "neutral" }, /area/station/maintenance/fore) +"qlh" = ( +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "qlt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -86570,6 +87701,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/effect/turf_decal/siding/white, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -86829,6 +87961,7 @@ /area/station/maintenance/old_kitchen) "qvE" = ( /obj/structure/curtain/open/shower/security, +/obj/effect/turf_decal/siding/blue, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "qvJ" = ( @@ -86925,6 +88058,9 @@ /area/station/security/prison/cell_block/A) "qwR" = ( /obj/item/flag/nt, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "qwS" = ( @@ -88194,6 +89330,8 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/effect/turf_decal/arrows/black, +/obj/effect/turf_decal/delivery/partial, /turf/simulated/floor/plasteel, /area/station/supply/miningdock) "qQL" = ( @@ -88574,6 +89712,9 @@ /area/station/maintenance/starboard2) "qVF" = ( /obj/machinery/economy/vending/coffee, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "qVK" = ( @@ -88779,6 +89920,7 @@ pixel_y = -2; pixel_x = -6 }, +/obj/effect/turf_decal/siding/white, /turf/simulated/floor/plasteel, /area/station/public/pool) "qZs" = ( @@ -89189,6 +90331,26 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/medmaint) +"rfC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "rfH" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 9 @@ -89237,6 +90399,11 @@ "rfS" = ( /obj/structure/cable, /obj/machinery/power/apc/directional/south, +/obj/effect/turf_decal/siding/blue, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "rfT" = ( @@ -89565,7 +90732,7 @@ /obj/effect/turf_decal/delivery/hollow, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/security/permabrig) "rma" = ( @@ -89597,6 +90764,9 @@ pixel_x = 6 }, /obj/machinery/status_display/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "rnI" = ( @@ -89666,8 +90836,7 @@ }, /area/station/medical/sleeper) "rpx" = ( -/obj/effect/turf_decal/box/red, -/turf/simulated/floor/wood/fancy/oak, +/turf/simulated/floor/carpet, /area/station/legal/courtroom) "rpC" = ( /obj/structure/cable{ @@ -90439,6 +91608,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "rzO" = ( @@ -90597,7 +91772,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/delivery/partial{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -90841,6 +92018,7 @@ }, /area/station/hallway/primary/aft) "rIU" = ( +/obj/effect/turf_decal/siding/white, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -91077,8 +92255,7 @@ /area/station/security/armory/secure) "rML" = ( /obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/box/red, -/turf/simulated/floor/wood/fancy/oak, +/turf/simulated/floor/carpet, /area/station/legal/courtroom) "rMW" = ( /obj/effect/spawner/window/reinforced/grilled, @@ -91514,6 +92691,12 @@ }, /turf/simulated/floor/plating, /area/station/medical/virology/lab) +"rTt" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "rTF" = ( /obj/structure/table/wood, /obj/item/taperecorder{ @@ -91646,6 +92829,10 @@ "rXg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "rXk" = ( @@ -91687,7 +92874,9 @@ "rXC" = ( /obj/machinery/economy/vending/coffee, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "rXE" = ( @@ -92253,6 +93442,15 @@ icon_state = "neutralcorner" }, /area/station/hallway/primary/starboard) +"sfc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "sfh" = ( /obj/structure/cable{ d1 = 1; @@ -92514,6 +93712,9 @@ /obj/structure/chair/sofa/right{ dir = 8 }, +/obj/effect/turf_decal/siding/dark_red{ + dir = 5 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "skK" = ( @@ -92654,6 +93855,10 @@ "sno" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) "snC" = ( @@ -94429,6 +95634,9 @@ d2 = 4; icon_state = "1-4" }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "sNN" = ( @@ -94545,6 +95753,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "sQe" = ( @@ -94779,6 +95988,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "sVl" = ( @@ -94992,6 +96204,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "sYI" = ( @@ -95376,6 +96591,12 @@ }, /turf/simulated/floor/plasteel/grimy, /area/station/service/chapel/office) +"teX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "tfg" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -95456,6 +96677,9 @@ }, /area/station/maintenance/dormitory_maintenance) "tgi" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -95547,7 +96771,7 @@ /obj/effect/turf_decal/delivery/hollow, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/security/permabrig) "tic" = ( @@ -95869,6 +97093,9 @@ "tmh" = ( /obj/machinery/hologram/holopad, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutral" @@ -95916,6 +97143,9 @@ /obj/machinery/light_switch/west, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random_spawners/cobweb_left_rare, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "tnu" = ( @@ -96072,6 +97302,10 @@ /area/station/engineering/tech_storage) "tpv" = ( /obj/machinery/light_switch/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "tpI" = ( @@ -96604,6 +97838,9 @@ /obj/structure/table, /obj/item/ashtray/glass, /obj/item/deck/cards/black, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "tyJ" = ( @@ -97019,6 +98256,9 @@ "tFR" = ( /obj/machinery/economy/vending/cigarette, /obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, /turf/simulated/floor/plasteel, /area/station/public/pool) "tGh" = ( @@ -97303,6 +98543,9 @@ c_tag = "Law Office" }, /obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "tMF" = ( @@ -97425,6 +98668,9 @@ }, /obj/item/reagent_containers/food/drinks/bottle/vodka, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "tOi" = ( @@ -97564,6 +98810,9 @@ "tQD" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/structure/closet/athletic_mixed, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, /turf/simulated/floor/plasteel, /area/station/public/pool) "tQK" = ( @@ -97625,6 +98874,9 @@ /obj/machinery/disposal, /obj/machinery/light/directional/south, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "tSn" = ( @@ -97809,6 +99061,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc/directional/west, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutral" @@ -98509,6 +99764,13 @@ icon_state = "dark" }, /area/station/maintenance/old_detective) +"ugn" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "ugq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, @@ -98592,9 +99854,13 @@ /turf/simulated/floor/plasteel, /area/station/hallway/secondary/exit/maintenance) "uhM" = ( -/obj/structure/filingcabinet, /obj/effect/turf_decal/delivery/hollow, /obj/machinery/light/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/photocopier/faxmachine/longrange{ + pixel_y = 4; + department = "Quartermaster's Office" + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "brown" @@ -98914,6 +100180,9 @@ /obj/structure/chair/sofa/corner{ dir = 8 }, +/obj/effect/turf_decal/siding/dark_red{ + dir = 6 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "unR" = ( @@ -99230,6 +100499,13 @@ icon_state = "white" }, /area/station/medical/cloning) +"urH" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "usc" = ( /obj/structure/bed, /obj/item/bedsheet/mime, @@ -99287,6 +100563,9 @@ dir = 8 }, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/turf_decal/siding/blue{ + dir = 5 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "usY" = ( @@ -99809,6 +101088,17 @@ }, /turf/simulated/floor/plasteel, /area/station/security/permabrig) +"uFx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "uFI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -99880,9 +101170,18 @@ icon_state = "neutral" }, /area/station/public/fitness) +"uGm" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/legal/lawoffice) "uGp" = ( /obj/item/kirbyplants, /obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "uGY" = ( @@ -99908,6 +101207,9 @@ /obj/structure/chair/sofa/left{ dir = 4 }, +/obj/effect/turf_decal/siding/dark_red{ + dir = 9 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "uHq" = ( @@ -99975,6 +101277,12 @@ icon_state = "neutralcorner" }, /area/station/hallway/primary/fore) +"uIl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood, +/area/station/command/office/hos) "uIn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -100254,6 +101562,9 @@ /area/station/maintenance/fsmaint) "uMC" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "uMD" = ( @@ -100567,8 +101878,17 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) +"uQa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "uQi" = ( /obj/structure/cable{ d1 = 2; @@ -100684,6 +102004,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "uRt" = ( @@ -101199,6 +102522,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "uXF" = ( @@ -101343,6 +102669,12 @@ icon_state = "whiteblue" }, /area/station/medical/cloning) +"vaB" = ( +/obj/effect/turf_decal/siding/blue/corner{ + dir = 8 + }, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "vaF" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -101373,6 +102705,9 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "vaZ" = ( @@ -101555,6 +102890,7 @@ dir = 1 }, /obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/fancy/cherry, /area/station/legal/lawoffice) "veB" = ( @@ -101572,6 +102908,9 @@ d2 = 8; icon_state = "0-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "veF" = ( @@ -102157,6 +103496,12 @@ "vol" = ( /obj/structure/chair/office/dark, /obj/effect/landmark/start/head_of_personnel, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "vom" = ( @@ -102959,6 +104304,17 @@ icon_state = "darkblue" }, /area/station/medical/morgue) +"vEt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/public/vacant_store) "vEy" = ( /obj/item/shard{ icon_state = "small" @@ -103070,6 +104426,9 @@ "vFK" = ( /obj/machinery/light/directional/east, /obj/structure/table, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "vGb" = ( @@ -103080,6 +104439,12 @@ "vGg" = ( /obj/machinery/economy/vending/coffee, /obj/structure/sign/poster/official/random/west, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "vGA" = ( @@ -103210,6 +104575,17 @@ icon_state = "darkblue" }, /area/station/medical/morgue) +"vIH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood, +/area/station/command/office/hos) "vIR" = ( /obj/machinery/atmospherics/unary/outlet_injector{ autolink_id = "o2_in"; @@ -103607,6 +104983,10 @@ /obj/effect/turf_decal/delivery, /turf/simulated/floor/plasteel, /area/station/engineering/hardsuitstorage) +"vOj" = ( +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood/oak, +/area/station/command/office/captain/bedroom) "vOo" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -103985,6 +105365,9 @@ d2 = 4; icon_state = "2-4" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "vUG" = ( @@ -104020,6 +105403,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner, /turf/simulated/floor/wood/oak, /area/station/command/office/ntrep) "vUX" = ( @@ -104031,6 +105418,7 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/white/corner, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "vVp" = ( @@ -104222,7 +105610,7 @@ "vXr" = ( /obj/structure/railing, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/security/permabrig) "vXG" = ( @@ -104965,6 +106353,9 @@ /obj/item/book/manual/wiki/sop_security, /obj/item/book/manual/wiki/sop_command, /obj/item/book/manual/wiki/sop_security, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "wkK" = ( @@ -104994,6 +106385,18 @@ /obj/machinery/atmospherics/portable/scrubber, /turf/simulated/floor/plasteel, /area/station/science/toxins/mixing) +"wlf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/simulated/floor/wood/oak, +/area/station/science/robotics/showroom) "wlm" = ( /turf/simulated/floor/plasteel{ dir = 6; @@ -105192,6 +106595,19 @@ /mob/living/simple_animal/pet/dog/pug/Frank, /turf/simulated/floor/engine, /area/station/science/explab/chamber) +"wpb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + icon_state = "neutral" + }, +/area/station/public/fitness) "wpc" = ( /mob/living/simple_animal/pet/slugcat/monk, /obj/structure/bed/dogbed/pet, @@ -105274,6 +106690,7 @@ }, /obj/item/stack/tape_roll, /obj/item/stack/packageWrap, +/obj/effect/turf_decal/siding/white, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -105438,6 +106855,13 @@ }, /turf/simulated/floor/plating, /area/station/medical/patients_rooms) +"wuQ" = ( +/obj/item/flag/nt, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/turf/simulated/floor/wood/oak, +/area/station/command/office/blueshield) "wuT" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -105514,6 +106938,13 @@ icon_state = "red" }, /area/station/security/permabrig) +"wvT" = ( +/obj/structure/bookcase, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/simulated/floor/wood/oak, +/area/station/science/robotics/showroom) "wvX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -105924,6 +107355,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/effect/turf_decal/siding/wood/corner, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "wDq" = ( @@ -106158,6 +107590,9 @@ layer = 4; pixel_x = -4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/courtroom) "wHt" = ( @@ -106239,6 +107674,18 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/hallway/secondary/exit/maintenance) +"wIL" = ( +/obj/effect/turf_decal/delivery/partial{ + dir = 4 + }, +/obj/effect/turf_decal/arrows/black{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "brown" + }, +/area/station/hallway/primary/fore) "wIR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -106294,7 +107741,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/station/security/permabrig) "wJU" = ( @@ -106457,6 +107904,9 @@ name = "spider bed" }, /mob/living/simple_animal/hostile/retaliate/araneus, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "wOC" = ( @@ -106848,6 +108298,9 @@ /obj/item/clothing/suit/browntrenchcoat, /obj/item/clothing/head/fedora/brownfedora, /obj/machinery/status_display/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_female) "wUk" = ( @@ -107169,6 +108622,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood, /area/station/command/office/hos) "wXE" = ( @@ -107189,6 +108645,7 @@ }, /obj/machinery/door/airlock/public, /obj/effect/mapping_helpers/airlock/autoname, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "wXM" = ( @@ -107789,6 +109246,12 @@ dir = 1 }, /obj/machinery/newscaster/security_unit/west, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "xif" = ( @@ -107948,6 +109411,12 @@ /obj/effect/spawner/random_spawners/id_skins, /turf/simulated/floor/plating, /area/station/maintenance/starboard2) +"xlQ" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "xlZ" = ( /obj/item/kirbyplants, /obj/machinery/light/directional/west, @@ -108467,6 +109936,15 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/starboard2) +"xtq" = ( +/obj/structure/chair/stool{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "xtv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -108586,6 +110064,10 @@ /area/station/security/permabrig) "xuX" = ( /obj/structure/bed/dogbed, +/mob/living/simple_animal/pet/dog/fox/fennec/fenya, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/oak, /area/station/legal/magistrate) "xvf" = ( @@ -108752,6 +110234,10 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, /turf/simulated/floor/wood/oak, /area/station/command/office/hop) "xxQ" = ( @@ -109040,6 +110526,16 @@ /obj/structure/shuttle/engine/propulsion/burst, /turf/simulated/wall/mineral/titanium, /area/shuttle/pod_2) +"xDn" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/simulated/floor/wood/fancy/oak, +/area/station/legal/courtroom) "xDo" = ( /obj/structure/cable{ d1 = 4; @@ -109317,6 +110813,9 @@ /obj/machinery/light/directional/west, /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "xIh" = ( @@ -109758,6 +111257,9 @@ "xOa" = ( /obj/structure/bed/dogbed, /mob/living/simple_animal/pet/dog/brittany/Psycho, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "xOd" = ( @@ -110031,6 +111533,9 @@ d2 = 8; icon_state = "0-8" }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, /turf/simulated/floor/wood/fancy, /area/station/public/sleep_male) "xRT" = ( @@ -110166,7 +111671,7 @@ icon_state = "1-2" }, /obj/machinery/hologram/holopad, -/obj/effect/turf_decal/delivery/hollow, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "xTV" = ( @@ -110479,6 +111984,12 @@ }, /turf/simulated/floor/plating, /area/station/medical/virology/lab) +"xYy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/simulated/floor/wood, +/area/station/command/office/hos) "xYE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -110496,6 +112007,16 @@ }, /turf/simulated/floor/plasteel/dark, /area/station/security/main) +"xYL" = ( +/obj/structure/curtain/open/shower/security{ + icon_state = "closed"; + opacity = 1 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "xYR" = ( /obj/structure/cable{ d1 = 1; @@ -110590,6 +112111,9 @@ /obj/structure/closet, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "yar" = ( @@ -110751,6 +112275,9 @@ /obj/structure/table/wood, /obj/item/storage/briefcase, /obj/machinery/light/nightshifted/west, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/simulated/floor/wood/oak, /area/station/medical/psych) "ydY" = ( @@ -110849,6 +112376,12 @@ }, /turf/simulated/floor/plasteel, /area/station/engineering/controlroom) +"ygh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/public/vacant_store) "ygp" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -111087,6 +112620,17 @@ icon_state = "dark" }, /area/station/service/theatre) +"ykb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/simulated/floor/wood/oak, +/area/station/science/robotics/showroom) "yki" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -144442,9 +145986,9 @@ bAs bAs bHj bIZ -bKN +mJJ bMN -bKN +mJJ nmw bSE bSE @@ -145984,9 +147528,9 @@ byU bFB bHk aXH -bKN +gOG fgZ -bKN +lDX bKM ciB bUU @@ -146241,7 +147785,7 @@ byU bFC bHk bJg -bKN +mJJ bMU bJe bHk @@ -146509,7 +148053,7 @@ bOZ cab cbW cdI -cfK +mCQ vGg ciF bYv @@ -147036,7 +148580,7 @@ euc uxq csN cxa -cyi +wvT cyj iJd cCM @@ -148263,7 +149807,7 @@ aFC uIk aEF aEF -aKw +aEF aRH aJc aEF @@ -148308,7 +149852,7 @@ bOZ cah ccc cdO -cfL +bwV ckt ckv ckv @@ -148819,7 +150363,7 @@ bSM bOT aaa bQI -cai +wuQ ccd cdP cfM @@ -148835,7 +150379,7 @@ csU gTk cvG nnM -hHd +ykb opu lrN dZj @@ -149093,7 +150637,7 @@ hFh csN cxa cyi -cyj +wlf gRO cCS qih @@ -149839,8 +151383,8 @@ byU bFN bWX bJj -bLc -bLc +laZ +laZ bOV bWX bWX @@ -150075,7 +151619,7 @@ dUy aNv baY aJd -bcB +wIL bfu bea nGd @@ -150098,7 +151642,7 @@ bWX bJk bKZ bLc -bLc +jgY bQO bSO bUV @@ -150618,7 +152162,7 @@ bSP bUW bWX bYA -cdW +eXm ccj cdV bYD @@ -150877,7 +152421,7 @@ bWX cbz cdW cck -cdW +vOj cfQ csL ciS @@ -151640,7 +153184,7 @@ bHx bJq bLf bLf -bLc +bjM bQT bYD bVa @@ -152916,7 +154460,7 @@ vnh cbd cbd cbd -bzb +cbd cbd bCE cbd @@ -153433,7 +154977,7 @@ eNt anA fNr bYM -bPd +pFd uXC bLi jvs @@ -153447,7 +154991,7 @@ mrW bYH fRQ sIA -cvu +heL cMF qwR wHc @@ -153704,13 +155248,13 @@ lsO bYH fMj hNV -lzp +bta hBX olR dOl gPT gQZ -mLg +xDn hBy dht bYH @@ -153948,12 +155492,12 @@ vXI bwA bYM lvi -bTd -bka +mQe +nFQ pBe -bka +uGm bTd -bka +qlh bQW bTb tYa @@ -153961,13 +155505,13 @@ bXc fjd fMj hNV -coM +nBA iuU iuU iZq ccq ccq -coM +urH hBy cax fjd @@ -154218,13 +155762,13 @@ bXc fjd fMj hNV -coM +nBA dYK vcM iZq ckL kmy -coM +urH hBy cax fjd @@ -154237,7 +155781,7 @@ cAe iRd cjy aFx -cPQ +eXM vJb jri fXb @@ -154466,7 +156010,7 @@ jPe oSD mBX bLm -bTd +ayU bPh iuA bTb @@ -154475,13 +156019,13 @@ bXc fjd fMj hNV -coM -coM +sfc dZP -iZq -coM -coM -coM +dZP +rfC +dZP +dZP +ugn hBy cax fjd @@ -154494,7 +156038,7 @@ jfy jfy maI aFx -cPQ +eXM hqR xGj jgE @@ -154722,7 +156266,7 @@ fgN cXQ xPS qET -bka +bvS vey bYM bYM @@ -154732,13 +156276,13 @@ mMh bYH apY hNV -coM +aCA lzp nfe ocx kIt mLg -coM +aKw hBy pbt bYH @@ -154977,10 +156521,10 @@ bWr bYM gkg lYz -bka +teX lgg -bka -bTd +qix +pie uNz ces bTb @@ -154989,13 +156533,13 @@ bVD bYH caA ccr -coM -coM -coM +aCA +bzb +uQa chF -coM -coM -coM +uQa +xlQ +aKw coL udz bYH @@ -155245,15 +156789,15 @@ fhz ixL bYH rML -coM -coM -coM +ahr +esO +ovJ cgL cml ckN -coM -coM -coM +oZd +cfx +lDJ cqt bYH lNj @@ -155503,14 +157047,14 @@ sfb kxP caC cei -cei +gIb uYD iYN kaQ gcd cmj -coN -coN +uFx +gwF coN pDk fRv @@ -155759,15 +157303,15 @@ tYa inM bYH gkj -coM -coM +oZd +ovJ cfX xAW koI akc rgo ckP -coM +ovJ rpx bYH gZs @@ -157565,9 +159109,9 @@ pbz hTV bCH wDd -fIf -fIf -fIf +ygh +jtC +coM crX lNj cux @@ -157821,7 +159365,7 @@ cgS kCy hTV yaq -uPY +aon cHc kHA cqx @@ -158334,11 +159878,11 @@ cer cgf kGm fho -fIf +ikz sQa cHc auy -fIf +coM sBG lNj cux @@ -158566,7 +160110,7 @@ nxy yhT cDq ifS -bNi +sFp nfX nfX bxJ @@ -158592,10 +160136,10 @@ chK esC fIf uZe -sQa -fIf -fIf -fIf +vEt +eXa +ikz +coM tkO lNj cux @@ -158848,7 +160392,7 @@ cet cgh kGm eoI -fIf +ygh kTm vFK coT @@ -161441,7 +162985,7 @@ rfK oFL oNd aLE -cIk +jbN oYN mNS glR @@ -161700,7 +163244,7 @@ oNd cQj jWj cIk -cIk +kYb cIk cIk anv @@ -161957,8 +163501,8 @@ oNd lSa ilj taT -cIk -cIk +pSp +rTt tyI tOf oNd @@ -162209,10 +163753,10 @@ qfd csi xSg cyW -gFX +wpb wXF pau -pau +fZt xTU rfS oNd @@ -162468,11 +164012,11 @@ jbW fRm mgK eaa -cIk +pEU cIk cIj -cIk -cWe +vaB +xYL uHo boW oNd @@ -162725,7 +164269,7 @@ olj iHg lkf eaa -cMO +xtq psp cMO cIk @@ -164008,7 +165552,7 @@ prx cHa cJn qGm -xZj +kaG kyI xrg xrg @@ -167049,12 +168593,12 @@ cFr eoX jOB dvi -gJQ +mFE nKw qfc -gJQ +iOy iaN -gJQ +xYy jby vUE oyu @@ -167309,7 +168853,7 @@ mmg gMT lvJ wXz -wXz +vIH tOd cPa xFq @@ -167565,8 +169109,8 @@ hsC ehX rLx kPi -gJQ -gJQ +uIl +mFE kiV qPc loM diff --git a/_maps/map_files220/generic/Admin_Zone.dmm b/_maps/map_files220/generic/Admin_Zone.dmm index 8c9f55181808..51e307e0c9d3 100644 --- a/_maps/map_files220/generic/Admin_Zone.dmm +++ b/_maps/map_files220/generic/Admin_Zone.dmm @@ -118,7 +118,7 @@ /obj/structure/table/wood, /obj/item/fireaxe/energized, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "cQ" = ( @@ -333,7 +333,7 @@ /obj/item/gun/projectile/shotgun/boltaction/enchanted/arcane_barrage, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "fg" = ( @@ -350,6 +350,11 @@ /obj/item/melee/energy/sword/saber/red, /turf/simulated/floor/plasteel, /area/tdome/arena_source) +"fi" = ( +/turf/simulated/floor/holofloor{ + icon_state = "greenfull" + }, +/area/holodeck/source_emptycourt) "fm" = ( /obj/effect/landmark/costume/random, /obj/structure/rack/holorack, @@ -361,7 +366,7 @@ /obj/structure/table/wood, /obj/item/gun/magic/hook, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "fF" = ( @@ -408,7 +413,7 @@ /obj/structure/table/wood, /obj/item/whetstone/super, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "gN" = ( @@ -465,7 +470,7 @@ }, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "hp" = ( @@ -581,14 +586,14 @@ /obj/structure/table/wood, /obj/item/nullrod/tribal_knife, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "jD" = ( /obj/structure/table/wood, /obj/item/fireaxe/boneaxe, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "jF" = ( @@ -668,7 +673,7 @@ /obj/structure/table/wood, /obj/item/butcher_chainsaw, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "ku" = ( @@ -681,7 +686,7 @@ /obj/structure/table/wood, /obj/item/hatchet/unathiknife, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "kQ" = ( @@ -699,7 +704,7 @@ /obj/structure/table/wood, /obj/item/kitchen/knife/envy, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "kU" = ( @@ -732,7 +737,9 @@ /obj/structure/holowindow{ dir = 1 }, -/turf/simulated/floor/holofloor, +/turf/simulated/floor/holofloor{ + icon_state = "greenfull" + }, /area/holodeck/source_thunderdomecourt) "lt" = ( /obj/machinery/light/small/directional/east, @@ -820,7 +827,7 @@ /obj/item/multisword/pike, /obj/item/multisword/pure_evil, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "mU" = ( @@ -846,7 +853,7 @@ /obj/item/melee/energy/sword/cyborg, /obj/item/melee/energy/sword/cyborg/saw, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "ne" = ( @@ -1014,7 +1021,7 @@ /obj/item/gun/energy/plasma_pistol, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "pJ" = ( @@ -1079,7 +1086,7 @@ }, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "qT" = ( @@ -1132,7 +1139,7 @@ /obj/structure/table/wood, /obj/item/melee/energy/axe, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "rv" = ( @@ -1157,7 +1164,9 @@ /area/tdome/arena) "rE" = ( /obj/item/beach_ball/holoball, -/turf/simulated/floor/holofloor, +/turf/simulated/floor/holofloor{ + icon_state = "greenfull" + }, /area/holodeck/source_basketball) "rG" = ( /obj/mecha/combat/marauder/seraph/loaded, @@ -1234,7 +1243,7 @@ /obj/structure/table/wood, /obj/item/kitchen/knife/combat/survival, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "tx" = ( @@ -1327,7 +1336,7 @@ /obj/item/gun/energy/gun/turret, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "vd" = ( @@ -1425,14 +1434,14 @@ /obj/structure/table/wood, /obj/item/kitchen/knife/plastic, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "vY" = ( /obj/structure/table/wood, /obj/item/kitchen/knife/butcher/meatcleaver, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "wd" = ( @@ -1525,7 +1534,7 @@ /obj/structure/table/wood, /obj/item/kitchen/knife/combat, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "xq" = ( @@ -1664,7 +1673,7 @@ /obj/item/gun/projectile/shotgun/boltaction/enchanted/arcane_barrage/blood, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "zs" = ( @@ -1691,7 +1700,7 @@ /obj/item/gun/energy/kinetic_accelerator/minebot, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "zT" = ( @@ -1819,7 +1828,7 @@ /obj/structure/table/wood, /obj/item/melee/candy_sword, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "BX" = ( @@ -1854,7 +1863,7 @@ /obj/item/gun/energy/kinetic_accelerator/experimental, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "CM" = ( @@ -1904,6 +1913,11 @@ }, /turf/simulated/floor/wood/oak, /area/admin) +"Dr" = ( +/turf/simulated/floor/holofloor{ + icon_state = "greenfull" + }, +/area/holodeck/source_thunderdomecourt) "Dt" = ( /obj/structure/table/wood, /obj/item/gun/energy/gun/advtaser, @@ -1947,7 +1961,9 @@ }, /area/holodeck/source_basketball) "Ec" = ( -/turf/simulated/floor/holofloor, +/turf/simulated/floor/holofloor{ + icon_state = "redfull" + }, /area/holodeck/source_boxingcourt) "Eh" = ( /obj/structure/table/wood, @@ -1983,7 +1999,7 @@ /obj/item/gun/energy/telegun, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "EH" = ( @@ -2054,7 +2070,7 @@ /obj/item/gun/energy/pulse/turret, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "FM" = ( @@ -2067,12 +2083,14 @@ /obj/structure/table/wood, /obj/item/kitchen/knife/ritual, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "FR" = ( /obj/structure/holowindow, -/turf/simulated/floor/holofloor, +/turf/simulated/floor/holofloor{ + icon_state = "redfull" + }, /area/holodeck/source_thunderdomecourt) "FS" = ( /obj/machinery/computer/mech_bay_power_console{ @@ -2116,7 +2134,7 @@ /obj/item/gun/projectile/revolver/fingergun/fake, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "Gp" = ( @@ -2172,7 +2190,7 @@ /obj/item/gun/throw/crossbow, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "Hw" = ( @@ -2274,7 +2292,7 @@ /obj/structure/table/wood, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "IR" = ( @@ -2308,7 +2326,7 @@ /obj/structure/table/wood, /obj/item/chainsaw/doomslayer, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "Jd" = ( @@ -2316,7 +2334,7 @@ /obj/item/gun/projectile/bow, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "Je" = ( @@ -2373,7 +2391,7 @@ /obj/structure/table/wood, /obj/item/kitchen/knife/combat/survival/bone, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "JJ" = ( @@ -2435,7 +2453,7 @@ /obj/item/gun/energy/kinetic_accelerator/crossbow, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "Kw" = ( @@ -2499,7 +2517,7 @@ /obj/item/gun/throw/crossbow/french, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "KR" = ( @@ -2509,7 +2527,9 @@ /turf/simulated/floor/wood/oak, /area/admin) "KS" = ( -/turf/simulated/floor/holofloor, +/turf/simulated/floor/holofloor{ + icon_state = "redfull" + }, /area/holodeck/source_basketball) "La" = ( /obj/structure/table/wood, @@ -2605,7 +2625,7 @@ /obj/item/gun/energy/temperature, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "MX" = ( @@ -2635,7 +2655,7 @@ /obj/structure/table/wood, /obj/item/kitchen/knife, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "ND" = ( @@ -2702,6 +2722,11 @@ icon_state = "asteroid" }, /area/holodeck/source_desert) +"Oo" = ( +/turf/simulated/floor/holofloor{ + icon_state = "greenfull" + }, +/area/holodeck/source_boxingcourt) "Or" = ( /obj/structure/table/wood, /obj/item/gun/syringe, @@ -2724,7 +2749,9 @@ /turf/simulated/floor/wood/oak, /area/admin) "OH" = ( -/turf/simulated/floor/holofloor, +/turf/simulated/floor/holofloor{ + icon_state = "redfull" + }, /area/holodeck/source_emptycourt) "OL" = ( /obj/structure/table/wood, @@ -2736,14 +2763,14 @@ /obj/structure/table/wood, /obj/item/kitchen/knife/butcher, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "OW" = ( /obj/structure/table/wood, /obj/item/whetstone, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "Pc" = ( @@ -2785,7 +2812,7 @@ /obj/item/melee/energy/sword/saber/purple, /obj/item/melee/energy/sword/saber/red, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "PE" = ( @@ -2882,7 +2909,7 @@ /obj/structure/table/wood, /obj/item/fireaxe, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "QI" = ( @@ -2906,7 +2933,7 @@ /obj/structure/table/wood, /obj/item/kitchen/knife/shiv/carrot, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "QT" = ( @@ -2924,7 +2951,9 @@ }, /area/admin) "Rh" = ( -/turf/simulated/floor/holofloor, +/turf/simulated/floor/holofloor{ + icon_state = "redfull" + }, /area/holodeck/source_thunderdomecourt) "Rj" = ( /obj/item/paper{ @@ -2966,7 +2995,7 @@ /obj/item/gun/energy/chrono_gun, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "RW" = ( @@ -2974,7 +3003,7 @@ /obj/item/gun/energy/plasmacutter/adv, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "RZ" = ( @@ -3132,7 +3161,7 @@ /obj/item/gun/energy/kinetic_accelerator/cyborg, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "TN" = ( @@ -3153,6 +3182,11 @@ "TY" = ( /turf/simulated/wall/indestructible, /area/space) +"Ua" = ( +/turf/simulated/floor/holofloor{ + icon_state = "greenfull" + }, +/area/holodeck/source_basketball) "Ui" = ( /obj/structure/table, /obj/item/storage/box/beakers, @@ -3167,7 +3201,7 @@ /obj/structure/table/wood, /obj/item/chainsaw, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "Ul" = ( @@ -3230,7 +3264,7 @@ /obj/structure/table/wood, /obj/item/whetstone/cult, /turf/simulated/floor/plasteel{ - icon_state = "hierophant1" + icon_state = "alienvault" }, /area/admin) "Vr" = ( @@ -3286,7 +3320,7 @@ /obj/item/gun/projectile/revolver/capgun, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "Wc" = ( @@ -3444,7 +3478,7 @@ /obj/item/gun/energy/kinetic_accelerator/crossbow/large/cyborg, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "XB" = ( @@ -3497,7 +3531,7 @@ /obj/item/gun/energy/decloner, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "YM" = ( @@ -3525,7 +3559,7 @@ /obj/item/gun/energy/plasmacutter, /turf/simulated/floor/plasteel{ dir = 6; - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/admin) "Zo" = ( @@ -4310,7 +4344,7 @@ xS KS NF kY -KS +Ua Jk aG TW @@ -4569,7 +4603,7 @@ NF kY rE Jk -KS +Ua qT pO "} @@ -4824,7 +4858,7 @@ xS KS NF kY -KS +Ua Jk rq Ep @@ -7393,10 +7427,10 @@ Ec Ec Ec Ec -Ec -Ec -Ec -Ec +Oo +Oo +Oo +Oo WY pO "} @@ -7650,10 +7684,10 @@ Ec Ec Ec Ec -Ec -Ec -Ec -Ec +Oo +Oo +Oo +Oo WY pO "} @@ -7907,10 +7941,10 @@ Ec Ec Ec Ec -Ec -Ec -Ec -Ec +Oo +Oo +Oo +Oo WY pO "} @@ -12019,10 +12053,10 @@ OH OH OH OH -OH -OH -OH -OH +fi +fi +fi +fi RS pO "} @@ -12276,10 +12310,10 @@ OH OH OH OH -OH -OH -OH -OH +fi +fi +fi +fi RS pO "} @@ -12533,10 +12567,10 @@ OH OH OH OH -OH -OH -OH -OH +fi +fi +fi +fi RS pO "} @@ -24356,9 +24390,9 @@ Rh Rh FR li -Rh -Rh -Rh +Dr +Dr +Dr PT pO "} @@ -24613,9 +24647,9 @@ Rh Rh FR li -Rh -Rh -Rh +Dr +Dr +Dr PT pO "} @@ -24870,9 +24904,9 @@ Rh Rh FR li -Rh -Rh -Rh +Dr +Dr +Dr PT pO "} diff --git a/_maps/map_files220/generic/Lavaland.dmm b/_maps/map_files220/generic/Lavaland.dmm index 3e5c92a8fdd1..9ac6014669e7 100644 --- a/_maps/map_files220/generic/Lavaland.dmm +++ b/_maps/map_files220/generic/Lavaland.dmm @@ -22,12 +22,14 @@ /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "af" = ( /obj/structure/necropolis_gate/legion_gate, /obj/structure/necropolis_arch, /obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) "ag" = ( @@ -41,6 +43,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "ah" = ( @@ -54,6 +57,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "ai" = ( @@ -270,7 +274,7 @@ /obj/machinery/firealarm/directional/east, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "aP" = ( @@ -380,7 +384,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/laborcamp/security) "bb" = ( @@ -405,6 +409,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "be" = ( @@ -448,7 +453,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "bk" = ( @@ -649,7 +654,7 @@ /obj/item/radio/beacon, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "bD" = ( @@ -720,7 +725,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "bL" = ( @@ -834,7 +839,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "bV" = ( @@ -851,7 +856,7 @@ /obj/structure/ore_box, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "bX" = ( @@ -871,7 +876,7 @@ /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "bZ" = ( @@ -953,16 +958,9 @@ }, /area/mine/laborcamp) "cj" = ( -/obj/structure/lattice/catwalk/mining, -/obj/structure/marker_beacon/dock_marker, -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/simulated/floor/plating/lava/smooth/mapping_lava, -/area/lavaland/surface/outdoors/outpost/catwalk) +/obj/effect/spawner/window/reinforced/grilled, +/turf/simulated/floor/plating, +/area/mine/outpost/maintenance/south) "ck" = ( /obj/machinery/firealarm/directional/south, /obj/structure/cable{ @@ -971,7 +969,7 @@ /obj/machinery/power/apc/directional/west, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "cl" = ( @@ -1031,7 +1029,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "cr" = ( @@ -1051,7 +1049,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "ct" = ( @@ -1061,17 +1059,9 @@ /obj/machinery/power/apc/directional/east, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) -"cu" = ( -/obj/item/pickaxe, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"cv" = ( -/obj/structure/ore_box, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "cw" = ( /obj/effect/spawner/random_spawners/wall_rusted_maybe, /turf/simulated/wall, @@ -1131,7 +1121,7 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "cE" = ( @@ -1178,7 +1168,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "cL" = ( @@ -1188,7 +1178,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "cM" = ( @@ -1301,15 +1291,14 @@ /area/mine/outpost/mechbay) "cZ" = ( /obj/structure/fans/tiny, -/obj/machinery/door/airlock/multi_tile/glass{ - name = "Main Airlock" - }, +/obj/machinery/door/airlock/multi_tile/supply/glass, /obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, +/obj/effect/mapping_helpers/airlock/autoname, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "da" = ( @@ -1320,7 +1309,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "db" = ( @@ -1370,7 +1359,7 @@ /obj/machinery/light_switch/east, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "dg" = ( @@ -1409,7 +1398,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "dk" = ( @@ -1444,7 +1433,7 @@ /obj/item/clothing/head/hardhat/orange, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "dn" = ( @@ -1471,7 +1460,7 @@ /obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "dq" = ( @@ -1483,7 +1472,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "dr" = ( @@ -1509,7 +1498,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "dt" = ( @@ -1571,7 +1560,7 @@ /obj/machinery/firealarm/directional/west, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "dx" = ( @@ -1606,7 +1595,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "dA" = ( @@ -1642,7 +1631,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "dE" = ( @@ -1653,7 +1642,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "dF" = ( @@ -1671,7 +1660,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "dH" = ( @@ -1689,7 +1678,7 @@ /obj/machinery/ai_status_display/east, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "dJ" = ( @@ -1787,7 +1776,7 @@ /obj/machinery/light/directional/west, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "dQ" = ( @@ -1807,7 +1796,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "dS" = ( @@ -1851,7 +1840,7 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "dY" = ( @@ -1864,7 +1853,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "ea" = ( @@ -1876,7 +1865,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "eb" = ( @@ -1927,7 +1916,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "eg" = ( @@ -1935,7 +1924,7 @@ /obj/effect/turf_decal/stripes/box, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "eh" = ( @@ -1991,7 +1980,7 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/mining_station, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "el" = ( @@ -2071,7 +2060,7 @@ /obj/machinery/firealarm/directional/north, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "et" = ( @@ -2114,7 +2103,7 @@ /obj/effect/spawner/random_spawners/cobweb_left_rare, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "ey" = ( @@ -2221,11 +2210,11 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "eG" = ( -/obj/effect/spawner/window, +/obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, /area/mine/outpost/storage) "eH" = ( @@ -2355,11 +2344,11 @@ /obj/machinery/light/small/directional/north, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "eT" = ( -/obj/machinery/door/airlock/command/glass{ +/obj/machinery/door/airlock/command/qm/glass{ name = "Quartermaster's Office" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -2374,13 +2363,13 @@ }, /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/airlock/access/all/supply/qm, +/obj/effect/mapping_helpers/airlock/access/all/command/general, /obj/effect/mapping_helpers/airlock/polarized{ id = "mining qm" }, -/obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/quartermaster) "eU" = ( @@ -2433,7 +2422,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "fa" = ( @@ -2481,7 +2470,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "ff" = ( @@ -2504,7 +2493,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "fh" = ( @@ -2518,7 +2507,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "fj" = ( @@ -2584,7 +2573,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "fo" = ( @@ -2597,9 +2586,16 @@ "fp" = ( /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) +"fq" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "fr" = ( /obj/machinery/door/airlock/medical/glass{ name = "Infirmary" @@ -2620,7 +2616,7 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/mining_station, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/medbay) "fs" = ( @@ -2634,7 +2630,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "ft" = ( @@ -2655,7 +2651,7 @@ /obj/effect/baseturf_helper/asteroid/basalt, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "fw" = ( @@ -2670,7 +2666,7 @@ /obj/machinery/light/directional/east, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "fy" = ( @@ -2697,7 +2693,7 @@ }, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/supply/mining, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining_station, /obj/effect/mapping_helpers/airlock/unres{ dir = 8 }, @@ -2728,7 +2724,7 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "fD" = ( @@ -2780,7 +2776,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "fH" = ( @@ -2823,7 +2819,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "fL" = ( @@ -2841,6 +2837,16 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"fM" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "fN" = ( /obj/structure/cable{ d1 = 1; @@ -2878,12 +2884,6 @@ "fQ" = ( /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/unexplored/danger) -"fR" = ( -/turf/simulated/mineral/random/high_chance/volcanic, -/area/lavaland/surface/outdoors/unexplored) -"fS" = ( -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors/unexplored) "fT" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -2891,6 +2891,7 @@ /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "fU" = ( @@ -2933,7 +2934,7 @@ "ga" = ( /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "gb" = ( @@ -2975,14 +2976,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "gg" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "gh" = ( @@ -3059,7 +3060,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "gn" = ( @@ -3080,6 +3081,7 @@ /area/mine/outpost/hallway/west) "go" = ( /obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "gp" = ( @@ -3112,6 +3114,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "gs" = ( @@ -3125,6 +3128,7 @@ dir = 4 }, /obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "gt" = ( @@ -3166,7 +3170,7 @@ /obj/machinery/alarm/directional/east, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "gw" = ( @@ -3194,6 +3198,7 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "gz" = ( @@ -3227,6 +3232,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "gC" = ( @@ -3268,6 +3274,7 @@ dir = 8 }, /obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "gH" = ( @@ -3291,7 +3298,7 @@ /obj/structure/sign/poster/official/random/north, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "gJ" = ( @@ -3322,7 +3329,7 @@ /obj/machinery/firealarm/directional/east, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "gL" = ( @@ -3334,12 +3341,14 @@ /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "gO" = ( /obj/structure/stone_tile/block{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "gP" = ( @@ -3356,6 +3365,7 @@ /obj/structure/stone_tile/block{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "gS" = ( @@ -3387,6 +3397,14 @@ }, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"gZ" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "hb" = ( /obj/structure/stone_tile/block/burnt{ dir = 4 @@ -3396,6 +3414,11 @@ }, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"hc" = ( +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "hd" = ( /obj/machinery/iv_drip, /obj/structure/cable{ @@ -3468,6 +3491,7 @@ /obj/structure/stone_tile/block{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "hv" = ( @@ -3490,14 +3514,14 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "hy" = ( /obj/item/radio/intercom/directional/east, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "hz" = ( @@ -3525,6 +3549,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "hI" = ( @@ -3615,7 +3640,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "ig" = ( @@ -3631,7 +3656,7 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "ih" = ( @@ -3658,7 +3683,7 @@ /obj/machinery/alarm/directional/north, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "ij" = ( @@ -3685,7 +3710,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "ir" = ( @@ -3744,7 +3769,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/lockers) "iB" = ( @@ -3758,6 +3783,7 @@ dir = 1 }, /obj/structure/stone_tile/block/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "iD" = ( @@ -3799,6 +3825,16 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel, /area/mine/outpost/maintenance/south) +"iU" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "iX" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -3816,6 +3852,10 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"iZ" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/legion) "ja" = ( /obj/structure/stone_tile{ dir = 8 @@ -3849,6 +3889,7 @@ /obj/structure/stone_tile{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "jj" = ( @@ -3873,6 +3914,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "jl" = ( @@ -3886,6 +3928,7 @@ dir = 8 }, /obj/structure/stone_tile/center/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "jm" = ( @@ -3899,6 +3942,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "jn" = ( @@ -3928,6 +3972,11 @@ /obj/structure/stone_tile, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"jr" = ( +/obj/structure/stone_tile/center, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "js" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -3948,6 +3997,13 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"jC" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "jD" = ( /obj/structure/stone_tile/surrounding, /obj/structure/stone_tile/center, @@ -3965,6 +4021,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "jH" = ( @@ -3976,6 +4033,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "jJ" = ( @@ -4002,6 +4060,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "jN" = ( @@ -4013,12 +4072,13 @@ }, /obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/center/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "jP" = ( /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "jQ" = ( @@ -4031,12 +4091,14 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "jS" = ( /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "jU" = ( @@ -4104,6 +4166,7 @@ /area/mine/outpost/hallway/west) "kg" = ( /obj/structure/fluff/drake_statue, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "kj" = ( @@ -4113,12 +4176,21 @@ /obj/structure/stone_tile/block/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "kl" = ( /obj/structure/fluff/drake_statue/falling, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) +"km" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "ko" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -4127,6 +4199,7 @@ dir = 1 }, /obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "kv" = ( @@ -4183,6 +4256,7 @@ /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "kD" = ( @@ -4196,6 +4270,7 @@ dir = 8 }, /obj/structure/stone_tile/center, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "kE" = ( @@ -4224,6 +4299,7 @@ dir = 4 }, /obj/structure/stone_tile/center/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "kI" = ( @@ -4240,6 +4316,7 @@ dir = 1 }, /obj/structure/stone_tile/center, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "kM" = ( @@ -4262,10 +4339,6 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) -"kR" = ( -/obj/structure/stone_tile/slab/cracked, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "kX" = ( /obj/machinery/economy/vending/wallmed/directional/east, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -4284,7 +4357,7 @@ /obj/effect/spawner/random_spawners/cobweb_right_rare, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "le" = ( @@ -4295,6 +4368,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "lf" = ( @@ -4317,6 +4391,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "lj" = ( @@ -4327,6 +4402,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "ll" = ( @@ -4356,7 +4432,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "lp" = ( @@ -4369,6 +4445,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lq" = ( @@ -4376,6 +4453,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lr" = ( @@ -4383,6 +4461,7 @@ /obj/structure/stone_tile/block{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "ls" = ( @@ -4405,6 +4484,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lv" = ( @@ -4415,6 +4495,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lw" = ( @@ -4444,6 +4525,7 @@ /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "lD" = ( @@ -4453,6 +4535,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "lE" = ( @@ -4462,6 +4545,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "lF" = ( @@ -4474,6 +4558,7 @@ /obj/structure/stone_tile{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "lG" = ( @@ -4481,6 +4566,7 @@ dir = 1 }, /obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "lH" = ( @@ -4524,12 +4610,14 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lQ" = ( /obj/structure/stone_tile/surrounding/cracked{ dir = 6 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lR" = ( @@ -4540,6 +4628,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "lS" = ( @@ -4552,6 +4641,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lU" = ( @@ -4573,6 +4663,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "lZ" = ( @@ -4582,6 +4673,7 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "ma" = ( @@ -4591,6 +4683,7 @@ /obj/structure/stone_tile/block{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mb" = ( @@ -4601,6 +4694,7 @@ /obj/structure/stone_tile/block{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "md" = ( @@ -4612,6 +4706,16 @@ icon_state = "clockwork_floor" }, /area/lavaland/surface/outdoors/legion) +"me" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "mf" = ( /obj/structure/stone_tile/center/cracked, /obj/structure/stone_tile/surrounding/cracked{ @@ -4645,6 +4749,7 @@ /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ml" = ( @@ -4652,6 +4757,7 @@ dir = 8 }, /obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors) "mn" = ( @@ -4659,6 +4765,7 @@ /obj/structure/stone_tile/block{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mp" = ( @@ -4781,13 +4888,6 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"mE" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile{ - dir = 4 - }, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) "mF" = ( /obj/structure/stone_tile/block/cracked, /obj/structure/stone_tile{ @@ -4796,6 +4896,7 @@ /obj/structure/stone_tile{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mG" = ( @@ -4805,6 +4906,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mH" = ( @@ -4824,6 +4926,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mJ" = ( @@ -4852,6 +4955,7 @@ /obj/structure/stone_tile/cracked{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mM" = ( @@ -4866,6 +4970,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mO" = ( @@ -4875,6 +4980,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "mP" = ( @@ -5048,6 +5154,7 @@ /area/lavaland/surface/outdoors/legion) "ns" = ( /obj/structure/stone_tile/slab/cracked, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "nv" = ( @@ -5060,7 +5167,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "nw" = ( @@ -5074,7 +5181,7 @@ /obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "nx" = ( @@ -5100,6 +5207,12 @@ /obj/structure/window/reinforced/clockwork, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"nL" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "nN" = ( /obj/structure/lattice/catwalk/mining, /obj/structure/railing{ @@ -5139,6 +5252,13 @@ /obj/effect/spawner/window/grilled, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"oe" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "oj" = ( /obj/structure/lattice/catwalk/mining, /obj/machinery/atmospherics/unary/outlet_injector/on{ @@ -5151,13 +5271,23 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "op" = ( /obj/structure/closet/secure_closet/brig/gulag, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"ow" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "oA" = ( /obj/effect/decal/cleanable/cobweb2, /obj/machinery/atmospherics/unary/tank/air{ @@ -5208,7 +5338,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "oM" = ( @@ -5242,6 +5372,11 @@ /obj/item/cigbutt, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"oT" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "oU" = ( /obj/machinery/light/small/directional/east, /obj/structure/cable{ @@ -5253,6 +5388,11 @@ /obj/item/paper_bin, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"oX" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "pa" = ( /obj/machinery/firealarm/directional/south, /obj/effect/spawner/random_spawners/dirt_maybe, @@ -5261,6 +5401,14 @@ dir = 8 }, /area/mine/outpost/mechbay) +"pb" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "pd" = ( /obj/structure/extinguisher_cabinet/directional/east, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -5325,6 +5473,10 @@ icon_state = "clockwork_floor" }, /area/lavaland/surface/outdoors/legion) +"pJ" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/mineral/random/volcanic, +/area/lavaland/surface/outdoors/unexplored/danger) "pQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -5335,7 +5487,7 @@ /obj/item/radio/intercom/directional/south, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "pT" = ( @@ -5362,6 +5514,14 @@ /obj/item/trash/chips, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"qr" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "qs" = ( /obj/machinery/suit_storage_unit/lavaland, /turf/simulated/floor/plasteel{ @@ -5474,6 +5634,14 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) +"rA" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "rJ" = ( /obj/structure/cable{ icon_state = "2-5" @@ -5483,6 +5651,14 @@ }, /turf/simulated/floor/plating, /area/mine/outpost/maintenance/south) +"rL" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "rM" = ( /obj/effect/baseturf_helper/asteroid/basalt, /turf/simulated/floor/mineral/titanium, @@ -5620,7 +5796,7 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/mining_station, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "sF" = ( @@ -5698,6 +5874,7 @@ /obj/structure/stone_tile/block/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "te" = ( @@ -5705,16 +5882,6 @@ /obj/effect/spawner/window/reinforced/grilled, /turf/simulated/floor/plating, /area/mine/outpost/cafeteria) -"tf" = ( -/obj/structure/lattice/catwalk/mining, -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/simulated/floor/plating/lava/smooth/mapping_lava, -/area/lavaland/surface/outdoors/outpost/catwalk) "ti" = ( /obj/structure/stone_tile/slab/burnt, /obj/structure/fluff/drake_statue/falling{ @@ -5886,7 +6053,7 @@ /obj/machinery/economy/vending/cigarette, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "uf" = ( @@ -5935,6 +6102,16 @@ /obj/structure/stone_tile/center, /turf/simulated/floor/plating/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors/legion) +"uk" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "um" = ( /obj/structure/cable{ d1 = 1; @@ -5951,7 +6128,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "uq" = ( @@ -6127,7 +6304,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "vh" = ( @@ -6135,6 +6312,12 @@ /obj/structure/railing, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"vj" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/structure/stone_tile/slab/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "vk" = ( /obj/machinery/door/airlock/titanium{ name = "Labor Shuttle Airlock" @@ -6171,7 +6354,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "vw" = ( @@ -6251,6 +6434,11 @@ }, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"vR" = ( +/obj/structure/stone_tile/block/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/legion) "vS" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -6268,7 +6456,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "vU" = ( @@ -6419,6 +6607,10 @@ /obj/item/clothing/mask/gas/clown_hat, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/explored) +"wZ" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/wall/indestructible/boss, +/area/lavaland/surface/outdoors) "xb" = ( /obj/structure/lattice/catwalk/mining, /obj/structure/railing{ @@ -6498,12 +6690,16 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "xC" = ( /turf/simulated/wall/mineral/titanium, /area/shuttle/mining) +"xD" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors/unexplored/danger) "xF" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 @@ -6530,7 +6726,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/lockers) "xM" = ( @@ -6576,6 +6772,14 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) +"ye" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "yj" = ( /obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, @@ -6675,6 +6879,17 @@ /obj/structure/chair/brass, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"yL" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/wall/boss, +/area/lavaland/surface/outdoors) +"yQ" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "yR" = ( /obj/effect/spawner/random_spawners/grille_maybe, /obj/effect/spawner/random_spawners/dirt_maybe, @@ -6709,6 +6924,37 @@ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"zc" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"zd" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) +"zh" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"zk" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/wall/indestructible/boss/see_through, +/area/lavaland/surface/outdoors/legion) "zo" = ( /obj/structure/table, /obj/item/kitchen/utensil/fork, @@ -6752,7 +6998,7 @@ /obj/machinery/power/apc/directional/north, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/custodial) "zB" = ( @@ -6795,6 +7041,16 @@ icon_state = "darkyellowcorners" }, /area/mine/outpost/hallway/west) +"zO" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "zQ" = ( /obj/structure/stone_tile/block{ dir = 4 @@ -6813,6 +7069,10 @@ icon_state = "darkyellowcorners" }, /area/mine/outpost/hallway/west) +"zV" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) "zY" = ( /obj/structure/chair{ dir = 1 @@ -6860,6 +7120,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/universal, /turf/simulated/floor/plating/lavaland_air, /area/mine/outpost/hallway/east) +"Af" = ( +/obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Aj" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -6870,13 +7135,21 @@ icon_state = "clockwork_floor" }, /area/lavaland/surface/outdoors/legion) +"Ak" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Al" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "Ao" = ( @@ -6991,6 +7264,11 @@ /obj/structure/table/reinforced/brass, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"AJ" = ( +/obj/structure/stone_tile/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "AK" = ( /obj/structure/lattice/catwalk/mining, /obj/structure/railing{ @@ -7240,12 +7518,15 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "Co" = ( /turf/simulated/wall, /area/mine/outpost/medbay) +"Ct" = ( +/turf/simulated/mineral/ancient/lava_land_surface_hard, +/area/lavaland/surface/outdoors/unexplored/danger) "Cw" = ( /obj/machinery/mineral/equipment_vendor, /obj/structure/sign/poster/official/random/south, @@ -7325,7 +7606,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "CI" = ( @@ -7336,7 +7617,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/laborcamp/security) "CK" = ( @@ -7363,10 +7644,6 @@ icon_state = "darkredfull" }, /area/mine/outpost/hallway/west) -"CP" = ( -/obj/effect/spawner/window, -/turf/simulated/floor/plating, -/area/mine/outpost/maintenance/south) "CV" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -7397,6 +7674,16 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/simulated/floor/mineral/titanium/blue, /area/shuttle/mining) +"Dc" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Dd" = ( /obj/structure/toilet, /obj/effect/decal/cleanable/vomit, @@ -7419,6 +7706,21 @@ /obj/effect/landmark/damageturf, /turf/simulated/floor/wood/oak, /area/mine/laborcamp) +"Dh" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"Dk" = ( +/obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/legion) "Dm" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ @@ -7460,7 +7762,7 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "DA" = ( @@ -7474,11 +7776,20 @@ /obj/structure/table/reinforced/brass, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"DC" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "DD" = ( /obj/structure/stone_tile/block/cracked, /obj/structure/stone_tile/block/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "DK" = ( @@ -7505,11 +7816,23 @@ }, /turf/simulated/floor/catwalk, /area/mine/outpost/engineering) +"DS" = ( +/obj/structure/stone_tile/block, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "DT" = ( /obj/machinery/computer/shuttle/labor/one_way, /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"DU" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "DX" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -7517,6 +7840,10 @@ }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"DZ" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors) "Ec" = ( /obj/structure/stone_tile/slab/cracked, /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/magmawing, @@ -7556,7 +7883,7 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "El" = ( @@ -7598,6 +7925,11 @@ "EA" = ( /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) +"EB" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "ED" = ( /obj/structure/stone_tile/slab, /turf/simulated/floor/indestructible/boss, @@ -7607,7 +7939,7 @@ /obj/item/cigbutt, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/laborcamp/security) "EG" = ( @@ -7627,7 +7959,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "EH" = ( @@ -7664,6 +7996,13 @@ /obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Fa" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Fe" = ( /obj/structure/closet/secure_closet/miner, /obj/machinery/firealarm/directional/north, @@ -7693,7 +8032,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) "Fp" = ( /obj/structure/bed, @@ -7729,7 +8068,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/lockers) "FD" = ( @@ -7761,6 +8100,14 @@ }, /turf/simulated/floor/plating, /area/mine/outpost/quartermaster) +"FK" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "FL" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 @@ -7796,6 +8143,11 @@ /obj/structure/fans/tiny, /turf/simulated/floor/plating, /area/shuttle/siberia) +"FX" = ( +/obj/structure/ore_box, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Gc" = ( /obj/structure/lattice/catwalk/mining, /obj/structure/marker_beacon/dock_marker, @@ -7807,6 +8159,13 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"Ge" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Gh" = ( /obj/structure/cable{ d1 = 1; @@ -7890,7 +8249,7 @@ /obj/structure/railing/corner, /obj/effect/turf_decal/stripes/corner, /obj/structure/lattice/catwalk/mining, -/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) "GS" = ( /obj/structure/stone_tile, @@ -7958,6 +8317,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/legion) "Hu" = ( @@ -8080,7 +8440,7 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/storage) "HU" = ( @@ -8106,7 +8466,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "HX" = ( @@ -8125,6 +8485,14 @@ }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"Id" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "If" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 @@ -8136,6 +8504,14 @@ /obj/structure/stone_tile/center, /turf/simulated/floor/plating/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors/legion) +"Ik" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Il" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -8162,6 +8538,10 @@ /obj/item/cigbutt, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"Iz" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/mineral/ancient/lava_land_surface_hard, +/area/lavaland/surface/outdoors/unexplored/danger) "ID" = ( /obj/structure/stone_tile{ dir = 8 @@ -8182,6 +8562,13 @@ }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"IG" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "IH" = ( /obj/structure/stone_tile{ dir = 1 @@ -8206,7 +8593,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/lockers) "IM" = ( @@ -8456,7 +8843,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "Kq" = ( @@ -8487,6 +8874,16 @@ dir = 8 }, /area/mine/outpost/medbay) +"Kw" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Kx" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 @@ -8500,7 +8897,7 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/engineering) "Kz" = ( @@ -8556,6 +8953,12 @@ /obj/effect/spawner/random_spawners/dirt_maybe, /turf/simulated/floor/catwalk, /area/mine/outpost/hallway/west) +"KN" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "KR" = ( /obj/machinery/flasher{ id = "gulagshuttleflasher"; @@ -8563,10 +8966,18 @@ }, /turf/simulated/floor/mineral/titanium, /area/shuttle/siberia) +"KS" = ( +/turf/simulated/wall/boss, +/area/lavaland/surface/outdoors/unexplored/danger) "KU" = ( /obj/effect/mapping_helpers/no_lava, /turf/simulated/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) +"KX" = ( +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "KY" = ( /obj/machinery/door/airlock{ name = "Custodial Storage" @@ -8581,7 +8992,7 @@ dir = 4 }, /obj/effect/mapping_helpers/airlock/access/any/supply/mining, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining_station, /turf/simulated/floor/plasteel{ icon_state = "darkgreencorners" }, @@ -8603,6 +9014,14 @@ /obj/item/crowbar/red, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"Li" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Lr" = ( /obj/structure/closet/crate/freezer/iv_storage, /obj/machinery/camera{ @@ -8735,6 +9154,17 @@ /obj/structure/stone_tile/center/burnt, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"Ma" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) +"Mf" = ( +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Mg" = ( /obj/structure/sign/nanotrasen{ pixel_x = 32 @@ -8752,7 +9182,7 @@ /obj/structure/disposalpipe/junction, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "Mi" = ( @@ -8794,6 +9224,14 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) +"Mu" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Mz" = ( /obj/structure/stone_tile{ dir = 1 @@ -8837,6 +9275,16 @@ }, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"MQ" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "MS" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -8945,7 +9393,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "ND" = ( @@ -9120,6 +9568,14 @@ /obj/effect/decal/cleanable/ash, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/explored) +"OH" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "OK" = ( /obj/structure/stone_tile/slab/cracked, /obj/structure/bookcase, @@ -9165,11 +9621,25 @@ icon_state = "darkredcorners" }, /area/mine/laborcamp/security) +"OZ" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/wall/indestructible/boss, +/area/lavaland/surface/outdoors/legion) "Pg" = ( /obj/structure/stone_tile/surrounding/cracked, /obj/structure/stone_tile/center/burnt, /turf/simulated/floor/plating/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors/legion) +"Pk" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Pr" = ( /obj/structure/stone_tile{ dir = 8 @@ -9198,7 +9668,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/lockers) "PB" = ( @@ -9252,7 +9722,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/lockers) "PS" = ( @@ -9304,7 +9774,7 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "Qz" = ( @@ -9316,6 +9786,16 @@ icon_state = "tranquillite" }, /area/mine/outpost/cafeteria) +"QB" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "QE" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/west, @@ -9358,6 +9838,14 @@ }, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) +"QP" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "QQ" = ( /obj/structure/stone_tile/block/cracked, /turf/simulated/floor/plating/lava/smooth/lava_land_surface, @@ -9376,7 +9864,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "QU" = ( @@ -9571,6 +10059,21 @@ /obj/structure/bookcase, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"Sf" = ( +/obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"Sg" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Sk" = ( /obj/structure/stone_tile{ dir = 1 @@ -9625,6 +10128,14 @@ }, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"SA" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "SH" = ( /obj/structure/stone_tile, /obj/structure/stone_tile/block{ @@ -9649,6 +10160,13 @@ /obj/structure/stone_tile/center/cracked, /turf/simulated/floor/plating/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors/legion) +"ST" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "SW" = ( /obj/machinery/computer/card/minor/qm, /obj/machinery/alarm/directional/north, @@ -9666,7 +10184,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "Td" = ( @@ -9712,6 +10230,13 @@ icon_state = "brown" }, /area/mine/laborcamp) +"Tw" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Ty" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 @@ -9883,6 +10408,31 @@ }, /turf/simulated/floor/indestructible/boss, /area/lavaland/surface/outdoors/legion) +"UF" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) +"UG" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"UK" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "UO" = ( /obj/structure/stone_tile, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, @@ -9900,7 +10450,7 @@ /obj/effect/turf_decal/loading_area, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/airlock) "UT" = ( @@ -9947,7 +10497,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "Vg" = ( @@ -10096,6 +10646,16 @@ /obj/structure/flora/ash/stem_shroom, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"VL" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "VM" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile/surrounding_tile/cracked{ @@ -10179,11 +10739,15 @@ icon_state = "darkpurplecorners" }, /area/mine/outpost/airlock) +"VX" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/wall/boss, +/area/lavaland/surface/outdoors/unexplored/danger) "Wa" = ( /obj/structure/sign/poster/official/random/east, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "Wb" = ( @@ -10230,7 +10794,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "Wx" = ( @@ -10275,6 +10839,7 @@ /obj/structure/stone_tile/block{ dir = 4 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "WM" = ( @@ -10299,7 +10864,7 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "WP" = ( @@ -10443,6 +11008,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "XP" = ( @@ -10472,6 +11038,11 @@ }, /turf/simulated/floor/plating/lava/smooth/mapping_lava, /area/lavaland/surface/outdoors/outpost/catwalk) +"XU" = ( +/obj/structure/stone_tile/slab/burnt, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "XW" = ( /obj/machinery/recharge_station, /obj/item/radio/intercom/directional/west, @@ -10480,6 +11051,16 @@ dir = 8 }, /area/mine/outpost/mechbay) +"XY" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Ya" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -10491,7 +11072,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/east) "Yb" = ( @@ -10528,6 +11109,7 @@ /area/lavaland/surface/outdoors/legion) "Yi" = ( /obj/structure/stone_tile/slab, +/obj/effect/mapping_helpers/no_lava, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/legion) "Yn" = ( @@ -10593,14 +11175,14 @@ d2 = 2; icon_state = "1-2" }, -/obj/effect/mapping_helpers/airlock/access/all/supply/qm, -/obj/machinery/door/airlock/command/glass{ +/obj/machinery/door/airlock/command/qm/glass{ name = "Quartermaster's Office" }, +/obj/effect/mapping_helpers/airlock/access/all/supply/qm, +/obj/effect/mapping_helpers/airlock/access/all/command/general, /obj/effect/mapping_helpers/airlock/polarized{ id = "mining qm" }, -/obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/simulated/floor/catwalk, /area/mine/outpost/quartermaster) "YV" = ( @@ -10641,7 +11223,7 @@ }, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkfull" + icon_state = "dark" }, /area/mine/outpost/hallway/west) "Zg" = ( @@ -10681,6 +11263,14 @@ }, /turf/simulated/floor/plasteel, /area/mine/laborcamp) +"Zn" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/lava/smooth/mapping_lava, +/area/lavaland/surface/outdoors) "Zo" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile/surrounding_tile{ @@ -10750,6 +11340,11 @@ /obj/structure/railing, /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/outpost/catwalk) +"ZJ" = ( +/obj/item/pickaxe, +/obj/effect/mapping_helpers/no_lava, +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "ZK" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 @@ -18995,10 +19590,10 @@ aj ri LM sx -cj -tf -tf -tf +pB +HX +HX +HX HX pB Fl @@ -23598,12 +24193,12 @@ ai ai ai ai -am ai -ab -aj -aj -aj +BB +yj +xG +xG +xG KU KU KU @@ -23854,13 +24449,13 @@ am am am am -am ai -ab -aj -aj -aj -AE +ai +yj +xG +xG +xG +KU xG KU KU @@ -24113,11 +24708,11 @@ am am am ai -ab -aj -ab -AE -aj +yj +xG +yj +KU +xG KU KU KU @@ -24370,11 +24965,11 @@ am am am ai -ab -aj -aj -ab -AE +yj +xG +xG +yj +KU KU KU bQ @@ -24627,11 +25222,11 @@ am am am ai -aj -aj -aj -aj -aj +xG +xG +xG +xG +xG xG ZQ yj @@ -24884,11 +25479,11 @@ am am am am -ai -aj -aj -aj -aj +BB +xG +xG +xG +xG xG xG xG @@ -25141,11 +25736,11 @@ am am am am -ai -aj -aj -ab -aj +BB +xG +xG +yj +xG xG xG xG @@ -25398,11 +25993,11 @@ am am am am -am -ab -aj -aj -ab +Kd +yj +xG +xG +yj ZQ xG xG @@ -25655,11 +26250,11 @@ am am am am -am -am -aj -aj -AE +Kd +Kd +xG +xG +KU KU gL xG @@ -25912,11 +26507,11 @@ am am am am -am -am -am -aj -aj +Kd +Kd +Kd +xG +xG vU xG xG @@ -26717,7 +27312,7 @@ bi st Vm er -oc +cj Hf dT aj @@ -26971,10 +27566,10 @@ gK ct Wa ue -CP +oc Yc jJ -oc +cj Hf aj aj @@ -27230,8 +27825,8 @@ BH Dq eM eM -oc -oc +cj +cj Hf aj aj @@ -28520,15 +29115,15 @@ xG xG xG xG -xG -xG -xG -xG -xG -xG -xG -xG -xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (70,1,1) = {" aa @@ -28777,15 +29372,15 @@ xG xG xG xG -xG -xG -xG -xG -xG -xG -xG -xG -xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (71,1,1) = {" aa @@ -29030,19 +29625,19 @@ xG xG xG xG -yj -xG -xG -xG -xG -xG -xG -xG -xG xG xG xG xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (72,1,1) = {" aa @@ -29291,15 +29886,15 @@ xG xG xG xG -xG -yj -xG -xG -yj -xG -xG -xG -xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (73,1,1) = {" aa @@ -29543,20 +30138,20 @@ xG yj xG xG -yj -xG -yj xG xG xG -yj -yj -xG -xG -yj -xG xG xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (74,1,1) = {" kM @@ -29766,7 +30361,7 @@ ab ai ab ai -Kd +BB BB yj yj @@ -29801,19 +30396,19 @@ xG xG xG xG -yj -yj xG -yj -xG -xG -yj -yj -yj -yj xG xG xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (75,1,1) = {" kM @@ -30051,26 +30646,26 @@ yj yj yj yj -xG yj yj yj -xG -xG -xG -yj -yj yj xG xG xG yj -yj -yj xG -yj xG xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (76,1,1) = {" kM @@ -30305,17 +30900,6 @@ BB BB BB BB -BB -yj -yj -xG -yj -yj -yj -xG -xG -yj -yj yj yj yj @@ -30323,11 +30907,22 @@ yj yj yj yj +xG +xG yj xG xG xG xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (77,1,1) = {" kM @@ -30565,26 +31160,26 @@ BB BB yj yj -xG -yj -yj -yj -yj -yj -xG -yj -yj -yj -yj yj yj yj yj yj yj +BB +xG +xG xG -yj xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (78,1,1) = {" kM @@ -30826,22 +31421,22 @@ yj yj yj yj +BB yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -yj +BB +xG xG -yj xG xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (79,1,1) = {" kM @@ -31083,22 +31678,22 @@ yj yj yj yj -yj -yj +BB +BB +Kd xG yj yj -yj -yj -yj -yj -yj -xG -yj -xG -xG -xG xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (80,1,1) = {" kM @@ -31339,23 +31934,23 @@ yj yj yj yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -xG -xG +BB +Kd +Kd +Kd +BB yj xG xG -xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (81,1,1) = {" kM @@ -31597,22 +32192,22 @@ yj yj yj yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -xG -xG -xG -yj +BB +Kd +Kd +Kd +BB xG xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (82,1,1) = {" kM @@ -31850,26 +32445,26 @@ xG xG xG yj +BB +BB yj yj +BB +Kd +Kd +Kd +BB yj yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -xG -xG -xG -xG -xG -xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (83,1,1) = {" kM @@ -32108,25 +32703,25 @@ xG yj yj yj +BB yj yj yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -yj -xG -xG -xG -xG +BB +Kd +Kd +Kd +BB xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (84,1,1) = {" kM @@ -32336,51 +32931,51 @@ am am ai ab -ab -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -ai +yj +yj +yj +yj +yj +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +BB +xG +xG +xG +yj +BB +BB +BB +BB +yj +yj +yj +BB +Kd +Kd +BB +xG +xG +aj +aj aj aj aj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab aj -ab aj aj aj @@ -32593,54 +33188,54 @@ am ai ab ab -ab -ab -ab -ab -ai -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -ai +yj +yj +yj +yj +BB +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +BB +xG +xG +yj +BB +Kd +Kd +BB +ZJ +yj +yj +yj +BB +Kd +Kd +BB +xG +xG +aj +aj +aj +aj aj aj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab aj aj aj -ab "} (86,1,1) = {" kM @@ -32850,51 +33445,51 @@ am ai ab ab -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -ai +yj +yj +yj +yj +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +BB +xG +BB +BB +Kd +Kd +Kd +BB +FX +yj +yj +yj +BB +Kd +Kd +Kd +BB +xG +aj +aj +aj +aj aj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab aj -ab aj aj aj @@ -33107,50 +33702,50 @@ am am ai ab -ab -ab -ab -ab -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -ab -ab -ab -ai -am -ai -ai -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +yj +yj +yj +yj +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +yj +yj +yj +BB +Kd +BB +BB +BB +Kd +Kd +Kd +Kd +Kd +BB +yj +yj +DZ +Kd +Kd +Kd +Kd +BB +xG +aj +aj +aj +aj +aj aj aj aj @@ -33364,50 +33959,50 @@ am am am ai +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +BB +BB +Kd +BB +BB +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +BB +Kd +Kd +Kd +Kd +BB +yj +xG ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -ai -ai -am -ai -ai -ab -ai -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aj +aj +aj +aj aj aj aj @@ -33621,52 +34216,52 @@ am am am am -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -ai -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +yj +yj +aj +aj +aj +aj +aj +aj aj -ab aj aj "} @@ -33878,50 +34473,50 @@ am am am ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +yj +xG +aj +aj +aj +aj +aj aj aj aj @@ -34135,53 +34730,53 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +xG +aj +aj +aj +aj +aj +aj +aj +aj aj "} (92,1,1) = {" @@ -34392,54 +34987,54 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (93,1,1) = {" kM @@ -34649,54 +35244,54 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -ai -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (94,1,1) = {" kM @@ -34906,52 +35501,52 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +yj +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -35163,54 +35758,54 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +yj ab +aj +aj ab aj aj aj +aj +aj "} (96,1,1) = {" kM @@ -35420,54 +36015,54 @@ am am am am -ai -ab -ab -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +BB aj ab -ab +aj +aj +aj +aj +aj +aj +aj "} (97,1,1) = {" kM @@ -35677,51 +36272,51 @@ am am am ai -ab -ab -ai -ai -ab -ab -ab -ab -ab -ai -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +yj +yj +BB +BB +yj +yj +yj +yj +yj +BB +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +yj +aj +aj +aj +aj +aj +aj aj aj aj @@ -35934,52 +36529,52 @@ am am am ai +yj +yj +BB +yj +yj +yj +yj +yj +yj +BB +BB +yj +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +yj ab -ab -ai -ab -ab -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ai -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aj +aj +aj +aj +aj +aj aj aj "} @@ -36039,6 +36634,7 @@ ak ak ak ak +Ct ak ak ak @@ -36050,6 +36646,7 @@ ak ak ak ak +Ct ak ak ak @@ -36179,9 +36776,6 @@ ak ak ak ak -ak -ak -am am am am @@ -36190,52 +36784,53 @@ am am am am -ai -ab -ab -ai -ab -ab -ab -ab -ab -ab -ai -am -ai -ai -ai -ai -ab -ab -ai -ai -ai -am am ai -ai -ad -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +yj +yj +BB +yj +yj +yj +yj +yj +yj +BB +Kd +BB +BB +BB +BB +yj +yj +BB +BB +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +BB +aj +aj +aj +aj +aj +aj aj aj aj @@ -36294,8 +36889,23 @@ ak ak ak ak +Ct ak +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct ak +Ct ak ak ak @@ -36423,23 +37033,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -36447,53 +37040,55 @@ am am am am -ai -ab -ab -ab -ab -ab -ab -ai -ab -ab -ai -am -am -am am am ai -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +yj +yj +yj +yj +yj +yj +BB +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +BB +yj +yj +yj +yj +BB +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +Kd +Kd +Kd +Kd +Kd +Kd +BB +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -36549,27 +37144,27 @@ ak ak ak ak +Ct ak +Ct +Ct +Ct +VX +VX +VX +VX +VX +VX +VX +VX +VX +VX +VX +Ct +Ct +Ct ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct ak ak ak @@ -36705,52 +37300,52 @@ am am am am -ai -ab -ab -ab -ab -ab -ai -ai -ab -ai -am -am -ai -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +yj +yj +yj +BB +BB +yj +BB +Kd +Kd +BB +BB +BB +yj +yj +yj +yj +yj +yj +yj +BB +BB +Kd +Kd +BB +Kd +Kd +Kd +BB +yj +BB +BB +Kd +Kd +Kd +Kd +BB +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -36805,29 +37400,29 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +Ct +Ct +Ct +VX +VX +VX +xG +VX +VX +xG +xG +xG +VX +VX +xG +VX +VX +VX +Ct +Ct +Ct +Ct ak ak ak @@ -36962,52 +37557,52 @@ am am am am -am -ai -ab -ab -ab -ab -ai -am -ai -am -am -ai -cu -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +BB +yj +yj +yj +yj +BB +Kd +BB +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +BB +yj +BB +BB +yj +BB +Kd +BB +yj +yj +yj +BB +yj +BB +BB +BB +BB +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -37063,6 +37658,27 @@ ak ak ak ak +Ct +VX +VX +VX +xG +VX +xG +xG +xG +xG +xG +xG +xG +xG +xG +VX +xG +VX +VX +VX +Ct ak ak ak @@ -37188,82 +37804,61 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am am am am am am am -ai -ab -ab -ab -ab -ab -ai am am am am -ai -cv -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +BB +yj +yj +BB +yj +yj +yj +yj +BB +yj +BB +yj +BB +yj +aj +aj +aj +aj +aj +aj aj aj aj @@ -37318,31 +37913,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +Ct +Ct +VX +VX +xG +hc +pb +VX +VX +xG +xG +xG +xG +xG +VX +VX +Mu +EB +xG +VX +VX +Ct +Ct +Ct ak ak ak @@ -37476,53 +38071,53 @@ am am am am -ai -ab -ab -ab -ab -ab -ai -am -am -am -am -ai -ab -ab -ab -ab -ab -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +yj +yj +yj +BB +Kd +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +BB +BB +yj +yj +yj +yj +yj +BB +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +BB +yj +yj +yj +aj +aj +aj +aj +aj +aj +aj aj -ab aj "} (105,1,1) = {" @@ -37576,29 +38171,29 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +VX +VX +xG +UF +xG +Af +xG +yj +XU +yj +yj +yj +Sf +yj +xG +UK +xG +QB +xG +VX +VX +Ct ak ak ak @@ -37733,52 +38328,52 @@ am am am am -am -ai -ab -ab -ab -ai -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ai -am -ai -ai -ai -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +BB +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +BB +Kd +BB +BB +BB +yj +yj +yj +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +BB +yj +yj +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -37831,6 +38426,33 @@ ak ak ak ak +Ct +Ct +Ct +VX +xG +EB +xG +UF +jC +yj +yj +km +yj +yj +yj +DS +yj +yj +KX +QB +xG +hc +xG +VX +Ct +Ct +Ct ak ak ak @@ -37953,35 +38575,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -37990,54 +38583,56 @@ am am am am -ai -ab -ab -ab -ai -am -am -am -am -am -am -am -ai -ai -ab -ab -ai -am am am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +BB +yj +yj +yj +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +BB +yj +yj +BB +Kd +Kd +Kd +Kd +BB +yj +yj +yj +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +aj +aj +aj +aj +aj +aj +aj +aj aj -ab -ab "} (107,1,1) = {" kM @@ -38089,6 +38684,31 @@ ak ak ak ak +Ct +VX +VX +VX +me +oe +fq +rL +yj +yj +KX +yj +yj +yj +jC +yj +yj +Kw +ST +oe +VL +VX +VX +VX +Ct ak ak ak @@ -38212,47 +38832,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ai -ab -am am am am @@ -38261,37 +38840,53 @@ am am am am -ai -ai -am -am -am -am -am am am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +BB +yj +BB +zV +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +BB +Kd +Kd +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +aj +aj +aj +aj +aj +aj aj aj aj @@ -38346,6 +38941,31 @@ ak ak ak ak +Ct +VX +xG +xG +VX +xG +yj +yj +rL +yj +yj +yj +yj +yj +yj +yj +Kw +yj +yj +xG +VX +xG +xG +VX +Ct ak ak ak @@ -38470,33 +39090,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -38506,52 +39099,54 @@ am am am am -ai -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +BB +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +aj ab aj aj aj +aj +aj +aj +aj "} (109,1,1) = {" kM @@ -38603,31 +39198,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +VX +yL +xG +VX +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +VX +xG +VX +VX +Ct ak ak ak @@ -38761,52 +39356,52 @@ am am am am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -38860,6 +39455,31 @@ ak ak ak ak +Ct +VX +yL +yj +yj +Sf +zc +KX +yj +yj +fM +yj +yj +yj +qr +yj +yj +jC +zc +oX +yj +yj +VX +VX +Ct ak ak ak @@ -38984,32 +39604,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am am am am @@ -39039,33 +39633,34 @@ am am am am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +aj +aj ab aj aj +aj +aj +aj +aj "} (111,1,1) = {" kM @@ -39117,6 +39712,31 @@ ak ak ak ak +Ct +VX +yj +yj +yj +yj +yj +yj +yj +yj +fq +DS +yj +km +yj +yj +yj +yj +yj +yj +yj +yj +yj +VX +Ct ak ak ak @@ -39241,32 +39861,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am am am am @@ -39296,31 +39890,32 @@ am am am am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +aj +aj +aj +aj +aj +aj +aj aj aj "} @@ -39374,6 +39969,31 @@ ak ak ak ak +Ct +VX +yj +yj +yj +yj +yj +yj +DU +zc +zc +zc +zc +zc +zc +zc +Fa +yj +yj +yj +yj +yj +yj +VX +Ct ak ak ak @@ -39499,33 +40119,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -39554,32 +40147,34 @@ am am am am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +aj +aj +aj +aj +aj +aj +aj +aj +aj "} (113,1,1) = {" kM @@ -39631,6 +40226,31 @@ ak ak ak ak +Ct +VX +yj +yj +zc +zc +iU +IG +IG +IG +yj +yj +yj +yj +yj +IG +IG +IG +iU +zc +zc +yj +yj +VX +Ct ak ak ak @@ -39756,33 +40376,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am am am am @@ -39811,32 +40404,34 @@ am am am am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +aj +aj +aj +aj +aj +aj +aj +aj aj -ab -ab -ab -ab "} (114,1,1) = {" kM @@ -39888,6 +40483,31 @@ ak ak ak ak +Ct +VX +UG +IG +yj +yj +yj +yj +yj +zc +KX +yj +KX +yj +jC +zc +yj +yj +yj +yj +yj +IG +QP +VX +Ct ak ak ak @@ -40014,34 +40634,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am am am am @@ -40069,29 +40661,32 @@ am am am am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +aj +aj +aj +aj +aj aj aj -ab aj aj "} @@ -40145,6 +40740,31 @@ ak ak ak ak +Ct +VX +yj +yj +Sf +yj +ST +yj +yj +DS +yj +km +ST +DS +yj +km +yj +yj +fq +yj +Sf +yj +yj +VX +Ct ak ak ak @@ -40272,35 +40892,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am am am am @@ -40327,25 +40918,29 @@ am am am am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +aj +aj +aj +aj aj aj aj @@ -40402,6 +40997,31 @@ ak ak ak ak +Ct +VX +yj +jC +yj +yj +yj +rA +zc +oT +yj +km +fq +DS +yj +Tw +zc +Pk +yj +yj +yj +KX +yj +VX +Ct ak ak ak @@ -40530,34 +41150,6 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am am am am @@ -40583,29 +41175,32 @@ am am am am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +aj +aj +aj +aj +aj aj aj -ab aj aj "} @@ -40659,31 +41254,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +VX +yj +yj +yj +fq +yj +yj +yj +yj +yj +km +ST +DS +yj +yj +yj +yj +yj +ST +yj +yj +yj +VX +Ct ak ak ak @@ -40831,36 +41426,36 @@ ak ak ak ak +ak am am am am am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +aj +aj +aj +aj +aj aj aj aj @@ -40916,31 +41511,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +VX +ST +zc +yj +km +yj +jr +km +ST +yj +km +fq +DS +yj +fq +DS +jr +yj +DS +yj +zc +fq +VX +Ct ak ak ak @@ -41090,34 +41685,34 @@ ak ak ak ak +ak am am am -am -am -am -am -am -am -am -am -am -am -ai -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +aj +aj +aj +aj +aj aj aj aj @@ -41173,31 +41768,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +VX +yj +yj +IG +KX +rA +yj +yj +DS +yj +yj +ST +yj +yj +km +yj +yj +Pk +jC +IG +yj +yj +VX +Ct ak ak ak @@ -41348,37 +41943,37 @@ ak ak ak ak +ak am am -am -am -am -am -am -am -am -am -am -am -am -am -ai -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj ab aj aj aj aj +aj +aj +aj +aj "} (120,1,1) = {" kM @@ -41430,6 +42025,32 @@ ak ak ak ak +Ct +VX +yj +yj +yj +XY +yj +IG +zc +KX +yj +fq +yj +ST +yj +jC +zc +IG +yj +OH +yj +yj +yj +VX +Ct +Ct ak ak ak @@ -41581,57 +42202,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -am -am -am -am -am am -am -ai -ai -ai -ab -ab -ab -ab -ab -ab +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +aj aj ab -ab +aj +aj aj aj aj @@ -41686,6 +42281,34 @@ ak ak ak ak +Ct +Ct +VX +yj +yj +IG +yj +yj +yj +km +yj +zO +yj +jr +yj +Dh +yj +DS +yj +yj +yj +IG +yj +yj +VX +Ct +Ct +Ct ak ak ak @@ -41836,59 +42459,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -am -am am -am -am -am -am -am -am -ai -ai -ab -ab -ab -ab +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +aj +aj +aj aj aj -ab aj aj aj @@ -41943,6 +42538,33 @@ ak ak ak ak +Ct +Ct +VX +yj +yj +yj +yj +yj +yj +DS +yj +yj +DS +yj +km +yj +yj +km +yj +yj +yj +yj +yj +yj +VX +Ct +Ct ak ak ak @@ -42094,55 +42716,28 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -am -am am -am -am -am -am -am -am -am -am -ai -ab -ab -ab +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +aj +aj aj aj aj @@ -42169,7 +42764,7 @@ jF gM kB jm -Nn +vR pC Yt EA @@ -42199,6 +42794,34 @@ al ak ak ak +Ct +Ct +Ct +VX +yj +ST +yj +zc +zc +yj +Pk +fq +jC +yj +yj +yj +KX +ST +qr +yj +zc +zc +yj +fq +yj +VX +Ct +Ct ak ak ak @@ -42350,59 +42973,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am am -am -ai -ab -ab -ab +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +aj +aj +aj aj aj -ab aj aj aj @@ -42420,15 +43015,15 @@ kM kM kM kM -kM +OZ gG go kg hs gr hH -pC -pC +iZ +iZ EA VS EA @@ -42440,50 +43035,50 @@ aj ls aj aj -jx +ST jS -iy -al -ak -al -jq -ab -kN -ab -ab -jx -ab -ab +AJ +xD +pJ +xD +KX +yj +yQ +yj +yj +ST +yj +yj mN -al -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +xD +Iz +KS +KS +VX +zc +zc +IG +yj +Kw +KX +jC +yj +fq +yj +jr +yj +ST +yj +KX +jC +rL +yj +IG +zc +zc +VX +Ct +Ct ak ak ak @@ -42635,32 +43230,32 @@ ak ak ak ak -ak -ak -am am -am -am -am -am -am -am -am -am -am -am -am -am -am -ai -ab +Kd +Kd +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +aj +aj aj aj -ab aj aj -ab -ab aj aj aj @@ -42677,15 +43272,15 @@ nc kM kM kM -kM +OZ gr jH gO kD ag le -kM -kM +OZ +OZ Aq EA EA @@ -42697,22 +43292,50 @@ aj aj aj lI -aa -aa +wZ +wZ jS -ab -ab -ja -ab -jx -ab -jq -ab -kN -ab -ab -ab +yj +yj +fq +yj +ST +yj +KX +yj +yQ +yj +yj +yj mO +yj +jC +Sf +Li +Li +Li +yj +yj +yj +yj +yj +yj +Id +DU +zc +Fa +DC +yj +yj +yj +yj +yj +yj +yj +yj +VX +Ct +Ct ak ak ak @@ -42864,60 +43487,32 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am am -am -am -am -am -am -am -am -am -am -am -aj +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG aj aj aj aj aj aj -ab aj aj aj @@ -42934,14 +43529,14 @@ ne kM kM kM -kM +OZ jk gr gr gr gr gs -kM +OZ XO XO lz @@ -42955,54 +43550,50 @@ lZ lS lS lp -aa -mE -ab -ab -ab -ab -kN -ab -ab -ab -ab -ab +wZ +qr +yj +yj +yj +yj +yQ +yj +yj +yj +yj +yj jS -ab -ab -al -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +yj +yj +yj +yj +Sf +Li +Li +Li +KX +Id +DU +DC +jC +yj +DU +oT +yj +Tw +Fa +yj +KX +FK +Fa +DC +jC +yj +ST +VX +Ct +Ct +Ct ak ak ak @@ -43154,23 +43745,27 @@ ak ak ak am -am -am -am -am -am -am -am -am -am -am -am -am -am -aj +Kd +BB +yj +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj aj aj -ab aj aj aj @@ -43212,56 +43807,52 @@ ma lq mk mn -kR +oX mF -ab +yj mG -ab -ja -ab -jx -ab -ab -kN -ab -ab -jq +yj +fq +yj +ST +yj +yj +yQ +yj +yj +KX jR -ab -ab -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +jC +yj +Sf +Li +Li +Li +yj +DU +oX +oT +yj +jr +km +yj +Mf +yj +DS +jr +yj +Tw +oX +Fa +yj +yj +Sf +VX +Ct +Ct +Ct +Ct +Ct ak ak ak @@ -43411,21 +44002,25 @@ ak ak ak am -am -am -am -am -am -am -am -am -am -am -am -am -am -aj -aj +Kd +Kd +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj aj aj aj @@ -43448,14 +44043,14 @@ ng kM kM fV -fV +zk jl gr ah gG gs gy -kM +OZ lr Hl Hl @@ -43469,54 +44064,50 @@ mb lR ml lR -aa -it -ab -ab -jx +wZ +DS +yj +yj +ST jR -ab -ab -ab +yj +yj +yj mL -al -iY -ab -ab -jQ -ab -jx -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +xD +gZ +yj +yj +jC +yj +yj +Sf +Li +Li +Li +fq +fM +oT +qr +ST +yj +Tw +Fa +yj +DU +oT +yj +fq +Pk +Tw +qr +ST +yj +jC +VX +Ct +Ct +Ct ak ak ak @@ -43668,23 +44259,27 @@ ak ak ak ak -am -am -am -am -am -am -am -am -am -am -am -am -am -aj -aj -aj -aj +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +xG +ab +ab aj aj aj @@ -43705,15 +44300,15 @@ id kM kM fV -fV +zk jm jL gM kH gr hH -kM -kM +OZ +OZ Iw EA EA @@ -43725,50 +44320,50 @@ aj aj lw aj -aa -aa -jq -ab -ab -ab -jQ -ab +wZ +wZ +KX +yj +yj +yj +jC +yj mI -ab -ab -al -al -ab -ab -ab -ab -ab -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +yj +yj +xD +xD +yj +yj +yj +yj +jC +Sf +Li +Li +Li +yj +yj +yj +yj +yj +yj +fM +Tw +IG +oT +qr +yj +yj +yj +yj +yj +yj +yj +yj +VX +Ct +Ct ak ak ak @@ -43921,25 +44516,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -am -am -am -am -fR -aj -aj +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +xG aj aj aj @@ -43962,15 +44557,15 @@ kM kM kM kM -kM +OZ gr go kl hs gG lj -pC -pC +iZ +iZ EA EA mv @@ -43982,56 +44577,50 @@ aj lI aj aj -kN -jq +yQ +KX jS -jx +ST jS -ab -ab -ab -ab -ab -ab +yj +yj +yj +yj +yj +yj jR -ak +pJ jS -kN -ab -ab -jR -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -al -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +yQ +yj +yj +KS +KS +VX +IG +IG +zc +yj +Ak +fq +ST +yj +KX +yj +jr +yj +jC +yj +fq +ST +uk +yj +zc +IG +IG +VX +Ct +Ct ak ak ak @@ -44184,23 +44773,29 @@ ak ak ak ak -am -am -am -am -am -am -am -am -am -am -fS -aj +Kd +Kd +Kd +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +xG aj aj aj aj -ab aj aj aj @@ -44225,7 +44820,7 @@ jN gO kJ gr -MK +Dk pC pC EA @@ -44256,79 +44851,33 @@ al ab ab mP -al -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +Ct +VX +yj +jC +yj +IG +IG +yj +Id +KX +ST +yj +yj +yj +fq +jC +DC +yj +IG +IG +yj +KX +yj +VX +Ct +Ct ak ak ak @@ -44443,61 +44992,6 @@ ak ak ak ak -am -am -am -am -am -am -am -am -fS -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -"} -(132,1,1) = {" -kM -kM -kM -kM -kM -mS -kM -kM -kM -kM -kM -gR -gr -gr -gr -jm -Yi -pC -pC -pC -EA -EA -EA -EA -EA -aj -ab -mB -aj -aj -aj -ab -ja ak ak ak @@ -44536,6 +45030,69 @@ ak ak ak ak +pJ +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +xG +aj +aj +aj +aj +aj +aj +aj +aj +aj +"} +(132,1,1) = {" +kM +kM +kM +kM +kM +mS +kM +kM +kM +kM +kM +gR +gr +gr +gr +jm +Yi +pC +pC +pC +EA +EA +EA +EA +EA +aj +ab +mB +aj +aj +aj +ab +ja ak ak ak @@ -44549,6 +45106,35 @@ ak ak ak ak +al +Ct +Ct +Ct +VX +yj +yj +yj +yj +yj +yj +DS +yj +yj +DS +yj +km +yj +yj +km +yj +yj +yj +yj +yj +yj +VX +Ct +Ct ak ak ak @@ -44701,16 +45287,25 @@ ak ak ak ak -am -am -am -am -am -am -am -am -fS -aj +pJ +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG aj aj aj @@ -44770,6 +45365,34 @@ ak ak ak ak +Ct +Ct +VX +yj +yj +zc +yj +yj +yj +km +yj +XY +yj +jr +yj +OH +yj +DS +yj +yj +yj +zc +yj +yj +VX +Ct +Ct +Ct ak ak ak @@ -44921,53 +45544,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -am -am -fS -aj +pJ +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG aj aj aj @@ -45028,6 +45623,32 @@ ak ak ak ak +Ct +VX +yj +yj +yj +zO +yj +zc +IG +fq +yj +KX +yj +jC +yj +ST +IG +zc +yj +Dh +yj +yj +yj +VX +Ct +Ct ak ak ak @@ -45180,54 +45801,28 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -am -am -am -am -am -fS -aj +Kd +Kd +Kd +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG ab aj -ab +aj aj aj aj @@ -45285,6 +45880,31 @@ ak ak ak ak +Ct +VX +yj +yj +zc +fq +ye +yj +yj +DS +yj +yj +jC +yj +yj +km +yj +yj +FK +ST +zc +yj +yj +VX +Ct ak ak ak @@ -45438,50 +46058,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -fQ -aj -aj +Kd +Kd +BB +yj +yj +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +xG aj aj aj @@ -45542,6 +46137,31 @@ ak ak ak ak +Ct +VX +jC +IG +yj +km +yj +jr +km +jC +yj +km +fq +DS +yj +KX +DS +jr +yj +DS +yj +IG +KX +VX +Ct ak ak ak @@ -45695,50 +46315,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -fQ -aj -aj +Kd +Kd +BB +yj +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +xG aj aj aj @@ -45799,6 +46394,31 @@ ak ak ak ak +Ct +VX +yj +yj +yj +KX +yj +yj +yj +yj +yj +km +ST +DS +yj +yj +yj +yj +yj +jC +yj +yj +yj +VX +Ct ak ak ak @@ -45952,50 +46572,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -fQ -aj -aj +Kd +Kd +Kd +BB +BB +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +xG +xG aj aj aj @@ -46056,6 +46651,31 @@ ak ak ak ak +Ct +VX +yj +ST +yj +yj +yj +DC +IG +Fa +yj +km +fq +DS +yj +DU +IG +FK +yj +yj +yj +fq +yj +VX +Ct ak ak ak @@ -46209,50 +46829,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +pJ +Kd +Kd +Kd +Kd +BB +yj +BB +yj +yj +yj +yj +yj +yj +yj +yj +BB +xG +xG aj aj aj @@ -46313,6 +46908,31 @@ ak ak ak ak +Ct +VX +Fa +yj +Sf +yj +jC +yj +yj +DS +yj +km +ST +DS +yj +km +yj +yj +KX +yj +Sf +yj +yj +VX +Ct ak ak ak @@ -46466,50 +47086,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +pJ +pJ +Kd +Kd +Kd +BB +yj +BB +yj +BB +yj +yj +yj +yj +yj +BB +BB +xG +xG aj aj aj @@ -46570,6 +47165,31 @@ ak ak ak ak +Ct +VX +zh +zc +yj +yj +yj +yj +yj +IG +fq +yj +fq +yj +ST +IG +yj +yj +yj +yj +yj +zc +MQ +VX +Ct ak ak ak @@ -46723,50 +47343,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +pJ +pJ +Kd +Kd +Kd +Kd +BB +BB +yj +BB +BB +yj +yj +yj +yj +BB +BB +xG +xG aj aj aj @@ -46827,6 +47422,31 @@ ak ak ak ak +Ct +VX +yj +yj +IG +IG +Dc +zc +zc +zc +yj +yj +yj +yj +yj +zc +zc +zc +Dc +IG +IG +yj +yj +VX +Ct ak ak ak @@ -46980,50 +47600,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +pJ +pJ +pJ +pJ +Kd +Kd +Kd +Kd +BB +Kd +BB +yj +BB +yj +yj +yj +BB +xG +xG aj aj aj @@ -47084,6 +47679,31 @@ ak ak ak ak +Ct +VX +yj +yj +yj +yj +yj +yj +Tw +IG +IG +IG +IG +IG +IG +IG +oT +yj +yj +yj +yj +yj +yj +VX +Ct ak ak ak @@ -47237,50 +47857,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +pJ +pJ +pJ +pJ +pJ +Kd +Kd +Kd +Kd +Kd +Kd +BB +Kd +BB +BB +yj +yj +xG +xG aj aj aj @@ -47341,6 +47936,31 @@ ak ak ak ak +Ct +VX +yj +yj +yj +yj +yj +yj +yj +yj +yj +DS +yj +km +yj +yj +yj +yj +yj +yj +yj +yj +yj +VX +Ct ak ak ak @@ -47494,50 +48114,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Kd +Kd +Kd +Kd +Kd +Kd +Kd +BB +BB +xG +xG aj aj aj @@ -47598,6 +48193,31 @@ ak ak ak ak +Ct +VX +VX +yj +yj +XU +IG +fq +yj +yj +Id +yj +yj +yj +DC +yj +yj +ST +IG +vj +yj +yj +VX +VX +Ct ak ak ak @@ -47751,50 +48371,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Kd +Kd +Kd +Kd +Kd +Kd +Kd +xG +xG aj aj aj @@ -47855,6 +48450,31 @@ ak ak ak ak +Ct +VX +VX +xG +VX +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +yj +VX +xG +VX +VX +Ct ak ak ak @@ -48008,50 +48628,25 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aj -aj +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +pJ +Kd +Kd +Kd +xG +xG aj aj aj @@ -48110,33 +48705,33 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +ak +ak +Ct +VX +xG +xG +VX +xG +yj +yj +uk +yj +yj +yj +yj +yj +yj +yj +rL +yj +yj +xG +VX +xG +xG +VX +Ct ak ak ak @@ -48369,31 +48964,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +VX +VX +VX +Ik +Ge +KX +uk +yj +yj +fq +yj +yj +yj +ST +yj +yj +rL +jC +Ge +Sg +VX +VX +VX +Ct ak ak ak @@ -48625,33 +49220,33 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +Ct +Ct +VX +xG +EB +xG +ow +ST +yj +yj +km +yj +yj +yj +DS +yj +yj +fq +UF +xG +Ma +xG +VX +Ct +Ct +Ct ak ak ak @@ -48884,29 +49479,29 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +VX +VX +xG +ow +xG +Af +xG +yj +oX +yj +yj +yj +XU +yj +xG +UK +xG +Zn +xG +VX +VX +Ct ak ak ak @@ -49140,31 +49735,31 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +Ct +Ct +VX +VX +xG +nL +SA +VX +VX +xG +xG +xG +xG +xG +VX +VX +zd +KN +xG +VX +VX +Ct +Ct +Ct ak ak ak @@ -49399,27 +49994,27 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +VX +VX +VX +xG +VX +xG +xG +xG +xG +xG +xG +xG +xG +xG +VX +xG +VX +VX +VX +Ct ak ak ak @@ -49656,28 +50251,28 @@ ak ak ak ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct +Ct +Ct +VX +VX +VX +xG +VX +VX +xG +xG +xG +VX +VX +xG +VX +VX +VX +Ct +Ct +Ct +Ct ak ak ak @@ -49913,27 +50508,27 @@ ak ak ak ak +Ct ak +Ct +Ct +Ct +VX +VX +VX +VX +VX +VX +VX +VX +VX +VX +VX +Ct +Ct +Ct ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct ak ak ak @@ -50172,23 +50767,23 @@ ak ak ak ak +Ct ak +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct +Ct ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak +Ct ak ak ak @@ -50431,6 +51026,7 @@ ak ak ak ak +Ct ak ak ak @@ -50442,8 +51038,7 @@ ak ak ak ak -ak -ak +Ct ak ak ak diff --git a/_maps/map_files220/generic/centcomm.dmm b/_maps/map_files220/generic/centcomm.dmm index 488422385183..5e9cda2d8d3b 100644 --- a/_maps/map_files220/generic/centcomm.dmm +++ b/_maps/map_files220/generic/centcomm.dmm @@ -81,7 +81,9 @@ /obj/structure/urinal{ pixel_y = 28 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "acq" = ( /obj/effect/baseturf_helper{ @@ -312,7 +314,7 @@ dir = 5 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "alg" = ( @@ -453,9 +455,10 @@ /area/centcom/ss220/admin3) "aqq" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/red/line, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "aqs" = ( @@ -566,7 +569,7 @@ layer = 4.3 }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "atg" = ( @@ -628,7 +631,7 @@ /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "ava" = ( @@ -713,7 +716,7 @@ id = "SFBQMLoad2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "awU" = ( @@ -883,7 +886,7 @@ /obj/item/target, /obj/effect/decal/cleanable/confetti, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "aDj" = ( @@ -953,7 +956,9 @@ /area/shuttle/escape) "aEU" = ( /obj/machinery/recharge_station, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "aFb" = ( /obj/machinery/door/window/classic/reversed{ @@ -1044,25 +1049,9 @@ }, /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) -"aHG" = ( -/obj/structure/statue/sandstone/assistant{ - anchored = 1; - desc = "Он точно спит на посту"; - dir = 1; - icon = 'icons/mob/simple_human.dmi'; - icon_state = "syndicate_smg"; - max_integrity = 9999; - name = "Боба"; - obj_integrity = 9999 - }, -/turf/simulated/floor/plasteel{ - dir = 9; - icon_state = "darkjail" - }, -/area/syndicate_mothership/jail) "aHS" = ( /obj/machinery/ai_status_display{ pixel_x = -32 @@ -1118,7 +1107,7 @@ "aLl" = ( /obj/structure/chair/sofa, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "aLu" = ( @@ -1202,7 +1191,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "aOO" = ( @@ -1366,7 +1355,7 @@ /obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "aVs" = ( @@ -1441,7 +1430,9 @@ "aYC" = ( /obj/structure/table, /obj/item/dice/d20, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "aYQ" = ( /obj/structure/table/wood/fancy/royalblack, @@ -1515,7 +1506,7 @@ "bcl" = ( /obj/effect/turf_decal/delivery/red, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "bcm" = ( @@ -1536,7 +1527,7 @@ /area/abductor_ship) "bda" = ( /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "bed" = ( @@ -1572,7 +1563,7 @@ "bfH" = ( /obj/structure/flora/ausbushes/ywflowers, /obj/effect/spawner/window, -/turf/simulated/floor/grass, +/turf/simulated/floor/grass/jungle/no_creep, /area/centcom/ss220/admin1) "bfI" = ( /obj/effect/turf_decal/siding/brown{ @@ -2067,8 +2058,7 @@ /area/centcom/ss220/admin1) "bxz" = ( /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "darkjail" + icon_state = "darkbrown" }, /area/syndicate_mothership/jail) "bxA" = ( @@ -2268,8 +2258,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "darkjail" + icon_state = "darkbrown" }, /area/syndicate_mothership/jail) "bIm" = ( @@ -2311,9 +2300,14 @@ "bJO" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 10 + }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "bJW" = ( @@ -2355,7 +2349,7 @@ /obj/structure/table, /obj/item/gun/energy/ionrifle/carbine, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "bMe" = ( @@ -2513,8 +2507,7 @@ obj_integrity = 9999 }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "darkjail" + icon_state = "darkbrown" }, /area/syndicate_mothership/jail) "bRy" = ( @@ -2664,7 +2657,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "bUl" = ( @@ -3109,9 +3102,14 @@ "chA" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 5 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "chF" = ( @@ -3168,7 +3166,7 @@ name = "Syndicate Base" }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership) "cjj" = ( @@ -3224,8 +3222,7 @@ /obj/structure/light_fake/small, /obj/structure/sign/poster/contraband/random/south, /turf/simulated/floor/plasteel{ - dir = 9; - icon_state = "darkjail" + icon_state = "darkbrown" }, /area/syndicate_mothership/jail) "clT" = ( @@ -3256,9 +3253,14 @@ "cns" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 5 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreycornerred" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "cnB" = ( @@ -3293,7 +3295,7 @@ }, /obj/effect/turf_decal/box, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "cob" = ( @@ -3341,7 +3343,9 @@ }, /area/centcom/ss220/bar) "cpn" = ( -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "cpN" = ( /obj/machinery/door/airlock/maintenance{ @@ -3461,7 +3465,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "cuN" = ( @@ -3538,8 +3542,14 @@ "cyn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, /turf/simulated/floor/plasteel{ - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "cyD" = ( @@ -3571,9 +3581,14 @@ "cBB" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 5 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "cBN" = ( @@ -3623,7 +3638,7 @@ "cDe" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "cDl" = ( @@ -3651,7 +3666,9 @@ /area/centcom/ss220/bar) "cDO" = ( /obj/structure/light_fake/small, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "cDV" = ( /obj/structure/light_fake/spot{ @@ -3772,7 +3789,7 @@ "cGH" = ( /obj/effect/spawner/window, /obj/structure/flora/ausbushes/brflowers, -/turf/simulated/floor/grass, +/turf/simulated/floor/grass/jungle/no_creep, /area/centcom/ss220/admin1) "cHl" = ( /obj/item/reagent_containers/food/drinks/bottle/rum{ @@ -3953,7 +3970,9 @@ pixel_x = 3; pixel_y = 3 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "cMK" = ( /obj/structure/chair/office/light{ @@ -4133,13 +4152,13 @@ icon_state = "n_beam" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "cSv" = ( /obj/structure/chair/sofa/right, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "cTs" = ( @@ -4247,9 +4266,14 @@ dir = 1 }, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "cXs" = ( @@ -4339,7 +4363,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "cZH" = ( @@ -4510,9 +4534,14 @@ "deV" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 10 + }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "dfR" = ( @@ -4529,17 +4558,13 @@ }, /obj/structure/ore_box, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) -"dgv" = ( +"dgI" = ( /turf/simulated/floor/plasteel{ - dir = 6; - icon_state = "darkjail" + icon_state = "showroomfloor" }, -/area/syndicate_mothership/jail) -"dgI" = ( -/turf/simulated/floor/plasteel/freezer, /area/trader_station/sol) "dgK" = ( /obj/structure/table/glass, @@ -4644,7 +4669,7 @@ /obj/structure/light_fake/small, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "dlt" = ( @@ -4653,7 +4678,7 @@ req_access_txt = "150" }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership) "dlw" = ( @@ -4713,7 +4738,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "dow" = ( @@ -4798,9 +4823,14 @@ /obj/structure/light_fake{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "dqS" = ( @@ -4813,7 +4843,7 @@ /obj/machinery/computer/shuttle/sst, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "drh" = ( @@ -4849,11 +4879,13 @@ light_range = 6 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "dso" = ( -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "dsw" = ( /obj/structure/table/reinforced, @@ -4898,7 +4930,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "dua" = ( @@ -5219,7 +5251,7 @@ name = "Syndicate Base" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "dCB" = ( @@ -5246,7 +5278,7 @@ baseturf = /turf/simulated/floor/plating/asteroid/ancient }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/infteam) "dEp" = ( @@ -5276,7 +5308,7 @@ icon_state = "applebush" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/centcom/ss220/admin1) "dFl" = ( @@ -5314,7 +5346,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/centcom/ss220/admin1) "dGx" = ( @@ -5354,7 +5386,7 @@ /area/centcom/ss220/supply) "dHM" = ( /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "dHW" = ( @@ -5416,7 +5448,7 @@ "dJp" = ( /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "dJr" = ( @@ -5424,7 +5456,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "dJs" = ( @@ -5778,14 +5810,17 @@ /area/shuttle/syndicate) "dWh" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/red/line, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "warndarkgreyred" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "dWA" = ( /obj/structure/reagent_dispensers/beerkeg, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "dXa" = ( /obj/structure/light_fake/spot, @@ -6074,7 +6109,7 @@ /obj/item/kirbyplants, /obj/effect/turf_decal/siding/black, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "eiJ" = ( @@ -6261,7 +6296,7 @@ /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "epI" = ( @@ -6308,7 +6343,7 @@ "erG" = ( /obj/machinery/computer/shuttle/sit, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "erT" = ( @@ -6370,7 +6405,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "etr" = ( @@ -6408,7 +6443,9 @@ "evc" = ( /obj/structure/table, /obj/item/lighter/zippo, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "evo" = ( /obj/machinery/computer/communications{ @@ -6459,7 +6496,9 @@ /obj/structure/light_fake/small{ dir = 1 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "exx" = ( /obj/structure/table/wood, @@ -6652,7 +6691,9 @@ /obj/structure/window/basic{ dir = 1 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/wizard_station) "eBu" = ( /obj/structure/flora/tree/jungle/small, @@ -7537,7 +7578,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "ffE" = ( @@ -7744,7 +7785,8 @@ "fls" = ( /obj/structure/chair/sofa/bench/right, /turf/simulated/floor/plasteel{ - icon_state = "darkjail" + icon_state = "darkbrown"; + dir = 1 }, /area/syndicate_mothership/jail) "flD" = ( @@ -7836,9 +7878,10 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/red/corner, /turf/simulated/floor/plasteel{ - dir = 9; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "fmX" = ( @@ -8107,9 +8150,14 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "fuv" = ( @@ -8192,7 +8240,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "fyL" = ( @@ -8244,7 +8292,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "fAT" = ( @@ -8641,8 +8689,14 @@ "fQz" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 6 + }, /turf/simulated/floor/plasteel{ - icon_state = "warndarkgreycornerred" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "fQI" = ( @@ -8715,7 +8769,7 @@ /obj/effect/turf_decal/delivery/red, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "fTl" = ( @@ -8758,7 +8812,7 @@ name = "Storage" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "fVA" = ( @@ -8827,7 +8881,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "fYz" = ( @@ -8905,7 +8959,7 @@ /area/centcom/ss220/admin2) "gaZ" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "gbc" = ( @@ -8914,7 +8968,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "gbe" = ( @@ -8943,7 +8997,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/infteam) "gcE" = ( @@ -9214,7 +9268,7 @@ name = "Потрёпанная снайперская винтовка" }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/infteam) "goe" = ( @@ -9232,7 +9286,7 @@ /obj/structure/sink/directional/south, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "gpb" = ( @@ -9284,7 +9338,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "gqL" = ( @@ -9355,7 +9409,7 @@ /area/centcom/ss220/bar) "gty" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/control) "guM" = ( @@ -9756,7 +9810,7 @@ /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/delivery/red, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "gFx" = ( @@ -10003,7 +10057,7 @@ "gMt" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "gMv" = ( @@ -10125,8 +10179,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "darkjail" + icon_state = "darkbrown" }, /area/syndicate_mothership/jail) "gOa" = ( @@ -10137,7 +10190,7 @@ /area/centcom/ss220/bar) "gOQ" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "gPe" = ( @@ -10210,8 +10263,14 @@ /area/syndicate_mothership/outside) "gTa" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, /turf/simulated/floor/plasteel{ - icon_state = "warndarkgreyred" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "gTe" = ( @@ -10302,7 +10361,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "gVj" = ( @@ -10314,7 +10373,9 @@ "gVr" = ( /obj/structure/table, /obj/machinery/kitchen_machine/microwave/upgraded, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "gVv" = ( /obj/effect/decal/syndie_logo{ @@ -10377,7 +10438,7 @@ "gXs" = ( /obj/structure/fans/tiny/invisible, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "gXA" = ( @@ -10397,9 +10458,14 @@ /area/centcom/ss220/supply) "gXS" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "gYI" = ( @@ -10448,7 +10514,7 @@ spawn_inside = null }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership) "hbm" = ( @@ -10565,7 +10631,7 @@ id_tag = "syndicate_jail_cell" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "heh" = ( @@ -10958,7 +11024,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "hse" = ( @@ -10968,7 +11034,7 @@ req_access_txt = "150" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "hsh" = ( @@ -11045,14 +11111,13 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/centcom/ss220/admin1) "hwb" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ - dir = 9; - icon_state = "darkjail" + icon_state = "darkbrown" }, /area/syndicate_mothership/jail) "hwc" = ( @@ -11083,7 +11148,7 @@ "hxf" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "hxl" = ( @@ -11112,7 +11177,7 @@ }, /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "hyf" = ( @@ -11271,9 +11336,14 @@ "hDK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "hDW" = ( @@ -11296,7 +11366,7 @@ id = "SFBQMLoad" }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "hFb" = ( @@ -11490,9 +11560,14 @@ "hHD" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 9 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreycornerred" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "hHE" = ( @@ -11598,7 +11673,7 @@ icon_state = "n_beam" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "hKh" = ( @@ -11617,9 +11692,10 @@ "hLd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/red/line, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "hLH" = ( @@ -11981,7 +12057,7 @@ "hXC" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "hXZ" = ( @@ -11995,7 +12071,8 @@ /area/centcom/ss220/general) "hYp" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkjail" + icon_state = "darkbrown"; + dir = 1 }, /area/syndicate_mothership/jail) "hYu" = ( @@ -12415,7 +12492,7 @@ specialfunctions = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "ipI" = ( @@ -12712,7 +12789,7 @@ /obj/effect/turf_decal/delivery/red, /obj/structure/ore_box, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "iwe" = ( @@ -12800,7 +12877,7 @@ icon_state = "n_beam" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "ize" = ( @@ -12880,16 +12957,21 @@ "iCR" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 10 + }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "warndarkgreycornerred" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "iDh" = ( /obj/structure/closet/syndicate/personal, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "iFn" = ( @@ -13154,7 +13236,7 @@ /area/centcom/ss220/admin3) "iPw" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/centcom/ss220/admin1) "iQW" = ( @@ -13215,7 +13297,9 @@ name = "Toilet"; opacity = 1 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "iSW" = ( /obj/structure/table{ @@ -13325,7 +13409,7 @@ /obj/structure/ore_box, /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "iVU" = ( @@ -13341,7 +13425,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "iXp" = ( @@ -13429,7 +13513,9 @@ /area/centcom/ss220/general) "jaD" = ( /obj/structure/table, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "jaR" = ( /obj/item/robot_parts/robot_component{ @@ -13437,7 +13523,7 @@ name = "Недоделанный бот" }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/infteam) "jaZ" = ( @@ -13515,9 +13601,14 @@ dir = 1 }, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "jfw" = ( @@ -13860,9 +13951,14 @@ dir = 8 }, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "jrk" = ( @@ -13891,7 +13987,7 @@ "jsg" = ( /obj/structure/ore_box, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "jsp" = ( @@ -13929,7 +14025,7 @@ "jsR" = ( /obj/machinery/computer/mech_bay_power_console, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "jtg" = ( @@ -13965,7 +14061,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "jud" = ( @@ -13975,7 +14071,7 @@ /obj/structure/ore_box, /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "juv" = ( @@ -14060,7 +14156,9 @@ dir = 4 }, /obj/item/mop, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/trader_station/sol) "jwK" = ( /obj/item/kirbyplants, @@ -14073,7 +14171,7 @@ "jxt" = ( /obj/structure/ore_box, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership) "jxO" = ( @@ -14117,7 +14215,7 @@ "jyZ" = ( /obj/structure/kitchenspike, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "jzh" = ( @@ -14174,8 +14272,8 @@ "jBg" = ( /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ - dir = 10; - icon_state = "darkjail" + icon_state = "darkbrown"; + dir = 1 }, /area/syndicate_mothership/jail) "jBo" = ( @@ -14193,7 +14291,7 @@ "jBO" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "jCl" = ( @@ -14203,7 +14301,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "jCq" = ( @@ -14224,8 +14322,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - dir = 9; - icon_state = "darkjail" + icon_state = "darkbrown" }, /area/syndicate_mothership/jail) "jEj" = ( @@ -14294,7 +14391,7 @@ /obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "jJa" = ( @@ -14380,7 +14477,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "jLh" = ( @@ -14494,7 +14591,9 @@ "jNJ" = ( /obj/structure/table, /obj/machinery/recharger, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "jOb" = ( /turf/simulated/floor/mineral/titanium/blue, @@ -14609,7 +14708,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "jVM" = ( @@ -14690,7 +14789,7 @@ "jYa" = ( /obj/structure/fans/tiny/invisible, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "jYJ" = ( @@ -14764,7 +14863,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "kcR" = ( @@ -14800,7 +14899,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "keO" = ( @@ -14864,9 +14963,14 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "khr" = ( @@ -14921,7 +15025,7 @@ "kjx" = ( /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership) "kjH" = ( @@ -14993,7 +15097,7 @@ "klm" = ( /obj/machinery/computer/shuttle/syndicate/recall, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "klt" = ( @@ -15030,7 +15134,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "kns" = ( @@ -15039,7 +15143,7 @@ "knO" = ( /obj/machinery/economy/vending/medical/syndicate_access, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "knR" = ( @@ -15128,7 +15232,9 @@ /obj/structure/window/basic{ dir = 1 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/wizard_station) "kqr" = ( /obj/structure/window/reinforced{ @@ -15182,7 +15288,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "ktL" = ( @@ -15499,7 +15605,7 @@ spawn_inside = null }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "kFK" = ( @@ -15890,7 +15996,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "kWD" = ( @@ -16042,7 +16148,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "lde" = ( @@ -16248,7 +16354,9 @@ /obj/structure/light_fake/small{ dir = 8 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "lkU" = ( /turf/simulated/floor/plating, @@ -16288,7 +16396,7 @@ /obj/structure/ore_box, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "loL" = ( @@ -16303,7 +16411,7 @@ pixel_y = -3 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "lpx" = ( @@ -16592,7 +16700,9 @@ pixel_x = 4; pixel_y = 6 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "lve" = ( /obj/machinery/sleeper{ @@ -16869,7 +16979,7 @@ name = "Мышедемон" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "lDh" = ( @@ -16943,7 +17053,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "lGw" = ( @@ -17146,7 +17256,7 @@ name = "Shuttle Dock Door" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "lKt" = ( @@ -17763,7 +17873,7 @@ /obj/effect/turf_decal/delivery/white, /obj/structure/ore_box, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "mcm" = ( @@ -17930,9 +18040,14 @@ "mjL" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 9 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "mjQ" = ( @@ -17964,7 +18079,7 @@ "mkU" = ( /obj/item/target, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "mlh" = ( @@ -18038,7 +18153,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "mna" = ( @@ -18084,7 +18199,7 @@ "mpq" = ( /obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "mpu" = ( @@ -18244,9 +18359,14 @@ /area/syndicate_mothership/outside) "mvw" = ( /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "mwa" = ( @@ -18355,7 +18475,7 @@ req_access_txt = "150" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "mzJ" = ( @@ -18721,7 +18841,7 @@ icon_state = "n_beam" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "mRM" = ( @@ -18789,7 +18909,9 @@ /area/centcom/ss220/admin2) "mTY" = ( /obj/machinery/computer/security/telescreen/entertainment/directional/south, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "mTZ" = ( /obj/structure/flora/ausbushes/ywflowers, @@ -18811,7 +18933,7 @@ /obj/item/target, /obj/item/target, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "mVr" = ( @@ -19109,7 +19231,7 @@ }, /obj/item/electropack, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "nhC" = ( @@ -19134,7 +19256,7 @@ /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "njf" = ( @@ -19144,8 +19266,14 @@ "njR" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 6 + }, /turf/simulated/floor/plasteel{ - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "nkE" = ( @@ -19202,7 +19330,7 @@ spawn_inside = null }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership) "nlc" = ( @@ -19233,7 +19361,9 @@ name = "Toilet"; opacity = 1 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "nmC" = ( /obj/machinery/economy/vending/nta, @@ -19425,9 +19555,14 @@ "ntK" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 9 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "ntY" = ( @@ -19521,9 +19656,14 @@ dir = 4 }, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/corner{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "nyb" = ( @@ -19646,7 +19786,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "nCM" = ( @@ -19655,9 +19795,14 @@ }, /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 10 + }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "nCS" = ( @@ -19823,7 +19968,7 @@ spawn_inside = null }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "nGz" = ( @@ -19875,7 +20020,7 @@ /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "nHX" = ( @@ -19900,7 +20045,9 @@ /obj/structure/light_fake/small{ dir = 8 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/trader_station/sol) "nJs" = ( /obj/structure/chair/sofa/corner{ @@ -20102,7 +20249,7 @@ spawn_inside = null }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "nSc" = ( @@ -20137,7 +20284,7 @@ "nSN" = ( /obj/structure/chair/sofa/left, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "nSZ" = ( @@ -20234,9 +20381,14 @@ /area/centcom/ss220/general) "nVW" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "nWw" = ( @@ -20270,7 +20422,7 @@ dir = 10 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "nXJ" = ( @@ -20329,7 +20481,7 @@ icon_state = "n_beam" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "oaf" = ( @@ -20344,7 +20496,7 @@ }, /obj/structure/ore_box, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "oaz" = ( @@ -20371,7 +20523,7 @@ /obj/effect/turf_decal/delivery/white, /obj/structure/ore_box, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "ocT" = ( @@ -20494,7 +20646,7 @@ /obj/effect/turf_decal/delivery/white, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "okp" = ( @@ -20539,7 +20691,7 @@ /area/wizard_station) "olQ" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/infteam) "olT" = ( @@ -20551,9 +20703,14 @@ "omf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "omq" = ( @@ -20743,7 +20900,7 @@ /obj/structure/chair, /obj/effect/decal/cleanable/blood, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "otN" = ( @@ -20763,7 +20920,7 @@ id = "SFBQMLoad" }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "ouy" = ( @@ -20804,7 +20961,7 @@ name = "Shuttle Dock Door" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "ovy" = ( @@ -20818,7 +20975,7 @@ /area/centcom/ss220/bar) "ovP" = ( /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "ovZ" = ( @@ -20830,7 +20987,7 @@ }, /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "owu" = ( @@ -20846,7 +21003,7 @@ "oxa" = ( /obj/item/flag/syndi, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "oxb" = ( @@ -20923,7 +21080,7 @@ }, /obj/structure/ore_box, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "ozt" = ( @@ -21044,7 +21201,7 @@ spawn_inside = null }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "oEI" = ( @@ -21453,7 +21610,8 @@ obj_integrity = 9999 }, /turf/simulated/floor/plasteel{ - icon_state = "darkjail" + icon_state = "darkbrown"; + dir = 1 }, /area/syndicate_mothership/jail) "oTb" = ( @@ -21484,7 +21642,9 @@ /obj/structure/toilet{ dir = 8 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/trader_station/sol) "oTS" = ( /obj/structure/statue/sandstone/assistant{ @@ -21519,9 +21679,14 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "oUX" = ( @@ -21584,7 +21749,7 @@ "oYe" = ( /obj/structure/toilet, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "oYp" = ( @@ -21807,8 +21972,7 @@ "pdx" = ( /obj/structure/light_fake/small, /turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "darkjail" + icon_state = "darkbrown" }, /area/syndicate_mothership/jail) "pdR" = ( @@ -21827,7 +21991,9 @@ /obj/structure/closet/secure_closet/bar{ req_access_txt = "25" }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "pfZ" = ( /turf/simulated/floor/plasteel{ @@ -21886,7 +22052,7 @@ "piG" = ( /obj/effect/turf_decal/loading_area, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "pkq" = ( @@ -21982,7 +22148,7 @@ reqpower = 0 }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "pqN" = ( @@ -22042,9 +22208,14 @@ /area/syndicate_mothership) "psX" = ( /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "ptx" = ( @@ -22333,7 +22504,7 @@ "pCO" = ( /obj/item/grenade/spawnergrenade/manhacks, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/infteam) "pCS" = ( @@ -22378,7 +22549,7 @@ /obj/structure/railing, /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "pFo" = ( @@ -22541,7 +22712,7 @@ light_range = 6 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "pLx" = ( @@ -22554,9 +22725,14 @@ /area/shuttle/assault_pod) "pMf" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "pMg" = ( @@ -22653,7 +22829,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "pOi" = ( @@ -22785,7 +22961,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "pSO" = ( @@ -22815,7 +22991,7 @@ id_tag = "SST_to_ATOM" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "pTW" = ( @@ -22866,7 +23042,7 @@ closingLayer = 3.11 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "pWT" = ( @@ -22990,7 +23166,9 @@ "qbf" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/cans/cola, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "qbl" = ( /obj/effect/decal/syndie_logo{ @@ -23245,8 +23423,14 @@ }, /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 6 + }, /turf/simulated/floor/plasteel{ - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "qkN" = ( @@ -23321,7 +23505,7 @@ }, /obj/item/melee/energy/axe, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "qnl" = ( @@ -23332,7 +23516,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "qnw" = ( @@ -23436,7 +23620,7 @@ /obj/structure/ore_box, /obj/effect/turf_decal/delivery/red, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "qqT" = ( @@ -23444,7 +23628,7 @@ id_tag = "SST_pod_ready" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "qrs" = ( @@ -23477,7 +23661,7 @@ dir = 6 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "qsF" = ( @@ -23522,9 +23706,14 @@ /area/centcom/ss220/bar) "qvc" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "qvn" = ( @@ -23614,7 +23803,7 @@ closingLayer = 3.11 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "qyR" = ( @@ -23683,7 +23872,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "qBf" = ( @@ -23790,7 +23979,7 @@ /obj/machinery/mech_bay_recharge_port/upgraded/unsimulated, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "qEQ" = ( @@ -23860,7 +24049,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "qGL" = ( @@ -24309,7 +24498,7 @@ }, /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "qZm" = ( @@ -24321,9 +24510,14 @@ /obj/structure/light_fake{ dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "qZz" = ( @@ -24343,7 +24537,7 @@ name = "Тюрьма" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "rae" = ( @@ -24369,7 +24563,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "raS" = ( @@ -24392,7 +24586,7 @@ /obj/structure/flora/ausbushes/ywflowers, /obj/effect/spawner/window, /obj/structure/light_fake/spot, -/turf/simulated/floor/grass, +/turf/simulated/floor/grass/jungle/no_creep, /area/centcom/ss220/admin1) "rbT" = ( /obj/machinery/door/airlock/centcom{ @@ -24455,7 +24649,7 @@ }, /obj/structure/sink/directional/south, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "rex" = ( @@ -24469,7 +24663,7 @@ baseturf = /turf/simulated/floor/plating/asteroid/ancient }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "rfM" = ( @@ -24627,7 +24821,7 @@ /obj/effect/spawner/window, /obj/structure/flora/ausbushes/genericbush, /obj/structure/light_fake/spot, -/turf/simulated/floor/grass, +/turf/simulated/floor/grass/jungle/no_creep, /area/centcom/ss220/admin1) "rkR" = ( /obj/machinery/chem_dispenser/beer/upgraded, @@ -24711,9 +24905,14 @@ /turf/simulated/floor/mineral/plastitanium/red, /area/syndicate_mothership/elite_squad) "rnW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "ros" = ( @@ -24783,15 +24982,20 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 5 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "rrb" = ( /obj/structure/light_fake, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "rrp" = ( @@ -25039,7 +25243,9 @@ "rtF" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/shaker, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "rtG" = ( /obj/machinery/door/airlock/centcom{ @@ -25054,7 +25260,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "rus" = ( @@ -25182,7 +25388,7 @@ /obj/structure/bed, /obj/item/bedsheet/red, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "rzq" = ( @@ -25515,7 +25721,7 @@ spawn_inside = null }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership) "rNA" = ( @@ -25701,9 +25907,14 @@ /area/centcom/ss220/jail) "rTf" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "dark" }, /area/syndicate_mothership/elite_squad) "rTu" = ( @@ -25740,7 +25951,8 @@ /obj/structure/sign/poster/contraband/random/north, /obj/structure/chair/sofa/bench, /turf/simulated/floor/plasteel{ - icon_state = "darkjail" + icon_state = "darkbrown"; + dir = 1 }, /area/syndicate_mothership/jail) "rTT" = ( @@ -25819,7 +26031,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/economy/vending/tool/free, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "rVD" = ( @@ -25842,7 +26054,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "rVM" = ( @@ -25850,7 +26062,8 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkjail" + icon_state = "darkbrown"; + dir = 1 }, /area/syndicate_mothership/jail) "rVQ" = ( @@ -25883,7 +26096,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/centcom/ss220/admin1) "rXd" = ( @@ -26188,11 +26401,13 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "siT" = ( -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/wizard_station) "siY" = ( /obj/structure/rack, @@ -26257,9 +26472,14 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "slN" = ( @@ -26483,7 +26703,7 @@ "swU" = ( /obj/effect/turf_decal/box/white, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/infteam) "sxc" = ( @@ -26578,7 +26798,7 @@ }, /obj/structure/plasticflaps/mining, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "sCI" = ( @@ -26644,7 +26864,7 @@ /obj/effect/decal/cleanable/cobweb2, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "sEB" = ( @@ -26725,7 +26945,7 @@ /obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "sGq" = ( @@ -27108,7 +27328,7 @@ /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "sVn" = ( @@ -27150,7 +27370,7 @@ }, /obj/structure/sink/directional/south, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "sXn" = ( @@ -27227,7 +27447,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "sZo" = ( @@ -27322,7 +27542,7 @@ name = "chasm" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "tbP" = ( @@ -27341,8 +27561,7 @@ obj_integrity = 9999 }, /turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "darkjail" + icon_state = "darkbrown" }, /area/syndicate_mothership/jail) "tca" = ( @@ -27662,8 +27881,14 @@ /area/centcom/ss220/admin2) "tou" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, /turf/simulated/floor/plasteel{ - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "toM" = ( @@ -27686,7 +27911,7 @@ name = "Storage" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "tpj" = ( @@ -27696,7 +27921,7 @@ "tpM" = ( /obj/effect/decal/cleanable/confetti, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "tpO" = ( @@ -27757,7 +27982,7 @@ /obj/structure/ore_box, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "tse" = ( @@ -27896,7 +28121,7 @@ }, /obj/effect/turf_decal/box, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "twu" = ( @@ -27948,7 +28173,7 @@ /obj/effect/spawner/window, /obj/structure/flora/ausbushes/lavendergrass, /obj/structure/flora/ausbushes/brflowers, -/turf/simulated/floor/grass, +/turf/simulated/floor/grass/jungle/no_creep, /area/centcom/ss220/admin1) "tyz" = ( /turf/simulated/floor/carpet/arcade, @@ -28102,7 +28327,7 @@ name = "Storage" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "tCJ" = ( @@ -28110,7 +28335,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "tDh" = ( @@ -28120,7 +28345,7 @@ icon_state = "n_beam" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "tDX" = ( @@ -28136,7 +28361,7 @@ /obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "tEZ" = ( @@ -28334,7 +28559,7 @@ /obj/structure/light_fake, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "tMg" = ( @@ -28634,7 +28859,8 @@ obj_integrity = 9999 }, /turf/simulated/floor/plasteel{ - icon_state = "darkjail" + icon_state = "darkbrown"; + dir = 1 }, /area/syndicate_mothership/jail) "tVX" = ( @@ -28664,7 +28890,7 @@ }, /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "tWr" = ( @@ -28904,7 +29130,9 @@ pixel_y = -2 }, /obj/structure/curtain/open/shower, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "ugE" = ( /obj/machinery/door/poddoor/impassable{ @@ -28955,7 +29183,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/centcom/ss220/admin1) "uik" = ( @@ -29051,7 +29279,7 @@ "ulL" = ( /obj/effect/landmark/spawner/syndieprisonwarp, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "ulY" = ( @@ -29093,7 +29321,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "unF" = ( @@ -29337,7 +29565,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "uzE" = ( @@ -29490,7 +29718,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "uDl" = ( @@ -29676,9 +29904,14 @@ /area/centcom/ss220/evac) "uKg" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "uKn" = ( @@ -29696,7 +29929,7 @@ "uLd" = ( /obj/effect/turf_decal/delivery/red, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership) "uMm" = ( @@ -29722,7 +29955,7 @@ "uMF" = ( /obj/effect/spawner/window, /obj/structure/flora/ausbushes/genericbush, -/turf/simulated/floor/grass, +/turf/simulated/floor/grass/jungle/no_creep, /area/centcom/ss220/admin1) "uMM" = ( /obj/structure/table/wood, @@ -30034,14 +30267,14 @@ /obj/effect/decal/cleanable/blood, /obj/effect/landmark/spawner/prisonsecuritywarp, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "uXT" = ( /obj/structure/light_fake/small, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "uYx" = ( @@ -30061,8 +30294,14 @@ "uYz" = ( /obj/structure/fans/tiny/invisible, /obj/structure/marker_beacon/dock_marker/collision, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 6 + }, /turf/simulated/floor/plasteel{ - icon_state = "warndarkgreycornerred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "uYN" = ( @@ -30142,7 +30381,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "veo" = ( @@ -30176,7 +30415,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "vfw" = ( @@ -30325,7 +30564,7 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/centcom/ss220/admin1) "vkl" = ( @@ -30413,8 +30652,8 @@ }, /obj/item/kirbyplants, /turf/simulated/floor/plasteel{ - dir = 6; - icon_state = "darkjail" + icon_state = "darkbrown"; + dir = 1 }, /area/syndicate_mothership/jail) "voU" = ( @@ -30491,7 +30730,7 @@ }, /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "vqa" = ( @@ -30747,7 +30986,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "vwT" = ( @@ -30786,9 +31025,10 @@ /area/shuttle/administration) "vxx" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/red/line, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "vxy" = ( @@ -30906,7 +31146,7 @@ /obj/effect/turf_decal/delivery/white, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "vEb" = ( @@ -31108,7 +31348,8 @@ "vML" = ( /obj/structure/chair/sofa/bench/left, /turf/simulated/floor/plasteel{ - icon_state = "darkjail" + icon_state = "darkbrown"; + dir = 1 }, /area/syndicate_mothership/jail) "vMP" = ( @@ -31241,7 +31482,9 @@ /obj/structure/mirror{ pixel_x = -26 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/trader_station/sol) "vPU" = ( /obj/effect/decal/syndie_logo{ @@ -31260,7 +31503,7 @@ id_tag = "SST_to_ATOM" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "vRj" = ( @@ -31277,7 +31520,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "vRR" = ( @@ -31303,7 +31546,9 @@ /area/shuttle/syndicate) "vTX" = ( /obj/machinery/economy/vending/boozeomat, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, /area/ninja/holding) "vUB" = ( /obj/effect/turf_decal/delivery/red, @@ -31311,7 +31556,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "vUI" = ( @@ -31342,9 +31587,14 @@ /turf/simulated/wall/mineral/plastitanium/nodiagonal, /area/syndicate_mothership/cargo) "vVI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "vVK" = ( @@ -31378,7 +31628,7 @@ id = "SFBQMLoad2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "vXk" = ( @@ -31770,21 +32020,6 @@ /obj/structure/extinguisher_cabinet, /turf/simulated/wall/mineral/titanium, /area/shuttle/escape) -"wke" = ( -/obj/structure/statue/sandstone/assistant{ - anchored = 1; - desc = "Он точно не спит на посту"; - icon = 'icons/mob/simple_human.dmi'; - icon_state = "syndicate_smg"; - max_integrity = 9999; - name = "Биба"; - obj_integrity = 9999 - }, -/turf/simulated/floor/plasteel{ - dir = 10; - icon_state = "darkjail" - }, -/area/syndicate_mothership/jail) "wkj" = ( /obj/structure/sign/poster/contraband/random{ pixel_y = -30 @@ -31884,7 +32119,7 @@ /area/syndicate_mothership/elite_squad) "wqZ" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/elite_squad) "wra" = ( @@ -32106,7 +32341,7 @@ spawn_inside = null }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "wxW" = ( @@ -32211,13 +32446,13 @@ pixel_y = 6 }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "wBp" = ( /obj/effect/decal/cleanable/blood, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "wBu" = ( @@ -32301,7 +32536,7 @@ "wER" = ( /obj/machinery/optable, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "wEY" = ( @@ -32379,8 +32614,14 @@ /area/shuttle/escape) "wIp" = ( /obj/structure/fans/tiny/invisible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, /turf/simulated/floor/plasteel{ - icon_state = "warndarkgreyred" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "wIq" = ( @@ -32831,7 +33072,9 @@ /obj/structure/mirror{ pixel_x = 32 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "wWg" = ( /obj/machinery/door/poddoor{ @@ -32839,7 +33082,7 @@ name = "Shuttle Dock Door" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "wWU" = ( @@ -33275,13 +33518,6 @@ }, /turf/simulated/floor/carpet/black, /area/syndicate_mothership/control) -"xfA" = ( -/obj/item/kirbyplants, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "darkjail" - }, -/area/syndicate_mothership/jail) "xfK" = ( /obj/structure/rack/gunrack, /obj/item/gun/energy/gun/advtaser{ @@ -33484,7 +33720,7 @@ name = "Закованное привидение" }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "xle" = ( @@ -33591,7 +33827,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership/infteam) "xpr" = ( @@ -33704,7 +33940,7 @@ spawn_inside = null }, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "xsg" = ( @@ -33819,7 +34055,7 @@ name = "Shuttle Dock Door" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "xuw" = ( @@ -33932,7 +34168,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "xyP" = ( @@ -33959,7 +34195,7 @@ }, /obj/structure/closet/crate, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "xzG" = ( @@ -33996,7 +34232,7 @@ /area/syndicate_mothership/elite_squad) "xBZ" = ( /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership) "xCo" = ( @@ -34355,7 +34591,7 @@ id = "SFBQMLoad2" }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "xSx" = ( @@ -34364,7 +34600,7 @@ }, /obj/effect/turf_decal/delivery/white, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership) "xSI" = ( @@ -34436,7 +34672,7 @@ name = "Shuttle Dock Door" }, /turf/simulated/floor/plasteel{ - icon_state = "darkgrey" + icon_state = "darkneutralfull" }, /area/syndicate_mothership) "xWi" = ( @@ -34571,7 +34807,9 @@ name = "Toilet"; opacity = 1 }, -/turf/simulated/floor/plasteel/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, /area/ghost_bar) "yaB" = ( /obj/effect/decal/syndie_logo{ @@ -34677,7 +34915,7 @@ pixel_x = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/infteam) "yey" = ( @@ -34760,7 +34998,7 @@ }, /obj/structure/plasticflaps/mining, /turf/simulated/floor/plasteel{ - icon_state = "darkfull" + icon_state = "dark" }, /area/syndicate_mothership/cargo) "ygJ" = ( @@ -34889,7 +35127,7 @@ "ykz" = ( /obj/effect/decal/cleanable/blood, /turf/simulated/floor/plasteel{ - icon_state = "blackfull" + icon_state = "dark" }, /area/syndicate_mothership/jail) "ykX" = ( @@ -56046,7 +56284,7 @@ mvf mvf tJz eOW -dgv +hYp bda bda bxz @@ -57331,7 +57569,7 @@ kHk mvf tJz eOW -wke +oSJ bda bda tbP @@ -59133,7 +59371,7 @@ eOW oSJ bda bda -aHG +bRw eOW emB nUM @@ -59390,7 +59628,7 @@ eOW voT bda bda -xfA +hwb eOW osy uNw diff --git a/code/__DEFINES/_versions.dm b/code/__DEFINES/_versions.dm index cb1ed09e84fd..5086d8f8ae42 100644 --- a/code/__DEFINES/_versions.dm +++ b/code/__DEFINES/_versions.dm @@ -1,2 +1,2 @@ /// Version of RUST-G that this codebase wants -#define RUST_G_VERSION "1.2.0-P2" +#define RUST_G_VERSION "3.0.0-P" diff --git a/code/__DEFINES/color_defines.dm b/code/__DEFINES/color_defines.dm index 28d9d3ff75d8..2f8c847c66ee 100644 --- a/code/__DEFINES/color_defines.dm +++ b/code/__DEFINES/color_defines.dm @@ -86,6 +86,8 @@ #define COLOR_DIAMOND "#d8d4ea" #define COLOR_ANCIENT_ROCK "#575757" #define COLOR_COLD_ANCIENT_ROCK "#575764" +#define COLOR_HARD_ROCK "#363636" +#define COLOR_FLOOR_HARD_ROCK "#bdbdbd" #define COLOR_HEALING_GREEN "#375637" //Color defines used by the assembly detailer. diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 3c9b1d1ec2d8..4be8046aecdc 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -564,6 +564,8 @@ ///from base of obj/item/pre_attack(): (atom/target, mob/user, params) #define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" #define COMPONENT_NO_ATTACK (1<<0) +///from base of obj/item/pre_attack(): (atom/target, mob/user, params) +#define COMSIG_ITEM_BEING_ATTACKED "item_being_attacked" ///from base of obj/item/afterattack(): (atom/target, mob/user, params) #define COMSIG_ITEM_AFTERATTACK "item_afterattack" ///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params) diff --git a/code/__DEFINES/emotes_defines.dm b/code/__DEFINES/emotes_defines.dm index 5880f171d7f8..9940edab859d 100644 --- a/code/__DEFINES/emotes_defines.dm +++ b/code/__DEFINES/emotes_defines.dm @@ -10,12 +10,10 @@ #define EMOTE_VISIBLE (1<<0) /// Emote is audible (in character). #define EMOTE_AUDIBLE (1<<1) -/// Emote makes a sound. These emotes will specifically not be runechatted. -#define EMOTE_SOUND (1<<2) /// Regardless of its existing flags, an emote with this flag will not be sent to runechat. -#define EMOTE_FORCE_NO_RUNECHAT (1<<3) +#define EMOTE_FORCE_NO_RUNECHAT (1<<2) /// This emote uses the mouth, and so should be blocked if the user is muzzled or can't breathe (for humans). -#define EMOTE_MOUTH (1<<4) +#define EMOTE_MOUTH (1<<3) // User audio cooldown system. // This is a value stored on the user and represents their current ability to perform audio emotes. diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 79df39c740ac..e2b9380850c4 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -26,6 +26,7 @@ #define DIAG_TRACK_HUD "21"// Mech tracking beacon #define DIAG_AIRLOCK_HUD "22" // Airlock shock overlay #define GLAND_HUD "23"//Gland indicators for abductors +#define JANI_HUD "24" // Sign overlay over cleanable decals //by default everything in the hud_list of an atom is an image //a value in hud_list with one of these will change that behavior @@ -40,20 +41,21 @@ #define DATA_HUD_DIAGNOSTIC_BASIC 5 #define DATA_HUD_DIAGNOSTIC_ADVANCED 6 #define DATA_HUD_HYDROPONIC 7 +#define DATA_HUD_JANITOR 8 //antag HUD defines -#define ANTAG_HUD_CULT 8 -#define ANTAG_HUD_REV 9 -#define ANTAG_HUD_OPS 10 -#define ANTAG_HUD_WIZ 11 -#define ANTAG_HUD_SHADOW 12 -#define ANTAG_HUD_TRAITOR 13 -#define ANTAG_HUD_NINJA 14 -#define ANTAG_HUD_CHANGELING 15 -#define ANTAG_HUD_VAMPIRE 16 -#define ANTAG_HUD_ABDUCTOR 17 -#define DATA_HUD_ABDUCTOR 18 -#define ANTAG_HUD_EVENTMISC 19 -#define ANTAG_HUD_BLOB 20 +#define ANTAG_HUD_CULT 9 +#define ANTAG_HUD_REV 10 +#define ANTAG_HUD_OPS 11 +#define ANTAG_HUD_WIZ 12 +#define ANTAG_HUD_SHADOW 13 +#define ANTAG_HUD_TRAITOR 14 +#define ANTAG_HUD_NINJA 15 +#define ANTAG_HUD_CHANGELING 16 +#define ANTAG_HUD_VAMPIRE 17 +#define ANTAG_HUD_ABDUCTOR 18 +#define DATA_HUD_ABDUCTOR 19 +#define ANTAG_HUD_EVENTMISC 20 +#define ANTAG_HUD_BLOB 21 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index fc43a57eb92f..a82321181796 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -10,7 +10,7 @@ #define isliving(A) (istype(A, /mob/living)) -#define isbrain(A) (istype(A, /mob/living/carbon/brain)) +#define isbrain(A) (istype(A, /mob/living/brain)) // Carbon mobs #define iscarbon(A) (istype(A, /mob/living/carbon)) diff --git a/code/__DEFINES/misc_defines.dm b/code/__DEFINES/misc_defines.dm index 3641f687896e..1247d77e0047 100644 --- a/code/__DEFINES/misc_defines.dm +++ b/code/__DEFINES/misc_defines.dm @@ -375,7 +375,7 @@ #define INVESTIGATE_BOMB "bombs" // The SQL version required by this version of the code -#define SQL_VERSION 532205 // SS220 EDIT +#define SQL_VERSION 532206 // SS220 EDIT // Vending machine stuff #define CAT_NORMAL 1 diff --git a/code/__DEFINES/mob_defines.dm b/code/__DEFINES/mob_defines.dm index bde8ac4801d3..497c229f08dd 100644 --- a/code/__DEFINES/mob_defines.dm +++ b/code/__DEFINES/mob_defines.dm @@ -199,6 +199,8 @@ #define INVISIBILITY_ABSTRACT 101 #define UNHEALING_EAR_DAMAGE 100 +#define DIRECTION_LOCK_SLOWDOWN 3 + //Human sub-species #define isabductor(A) (is_species(A, /datum/species/abductor)) #define isgolem(A) (is_species(A, /datum/species/golem)) @@ -247,7 +249,7 @@ // For the tcomms monitor #define ispathhuman(A) (ispath(A, /mob/living/carbon/human)) -#define ispathbrain(A) (ispath(A, /mob/living/carbon/brain)) +#define ispathbrain(A) (ispath(A, /mob/living/brain)) #define ispathslime(A) (ispath(A, /mob/living/simple_animal/slime)) #define ispathbot(A) (ispath(A, /mob/living/simple_animal/bot)) #define ispathsilicon(A) (ispath(A, /mob/living/silicon)) diff --git a/code/__DEFINES/preferences_defines.dm b/code/__DEFINES/preferences_defines.dm index 6da88d175092..8272092d330d 100644 --- a/code/__DEFINES/preferences_defines.dm +++ b/code/__DEFINES/preferences_defines.dm @@ -63,8 +63,9 @@ #define PREFTOGGLE_2_DANCE_DISCO (1<<16) // 65536 #define PREFTOGGLE_2_MOD_ACTIVATION_METHOD (1<<17) // 131072 #define PREFTOGGLE_2_PARALLAX_IN_DARKNESS (1<<18) // 262144 +#define PREFTOGGLE_2_DISABLE_TGUI_LISTS (1<<19) // 524288 -#define TOGGLES_2_TOTAL 524287 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. +#define TOGGLES_2_TOTAL 1048575 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. #define TOGGLES_2_DEFAULT (PREFTOGGLE_2_FANCYUI|PREFTOGGLE_2_ITEMATTACK|PREFTOGGLE_2_WINDOWFLASHING|PREFTOGGLE_2_RUNECHAT|PREFTOGGLE_2_DEATHMESSAGE|PREFTOGGLE_2_EMOTE_BUBBLE|PREFTOGGLE_2_SEE_ITEM_OUTLINES|PREFTOGGLE_2_THOUGHT_BUBBLE|PREFTOGGLE_2_DANCE_DISCO|PREFTOGGLE_2_MOD_ACTIVATION_METHOD) diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 81d48274aa9d..b7138d067920 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -18,7 +18,6 @@ #define ROLE_PAI "pAI" #define ROLE_CULTIST "cultist" #define ROLE_BLOB "blob" -#define ROLE_NINJA "space ninja" #define ROLE_MONKEY "monkey" #define ROLE_GANG "gangster" #define ROLE_ABDUCTOR "abductor" @@ -30,12 +29,10 @@ // Role tags for EVERYONE! #define ROLE_DEMON "demon" #define ROLE_SENTIENT "sentient animal" -#define ROLE_POSIBRAIN "positronic brain" #define ROLE_GUARDIAN "guardian" #define ROLE_MORPH "morph" #define ROLE_ERT "emergency response team" #define ROLE_NYMPH "Dionaea" -#define ROLE_GSPIDER "giant spider" #define ROLE_TSPIDER "terror spider" #define ROLE_DRONE "drone" #define ROLE_DEATHSQUAD "deathsquad" @@ -55,18 +52,15 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_BLOB, // Blob ROLE_CHANGELING = /datum/game_mode/changeling, // Changeling ROLE_CULTIST = /datum/game_mode/cult, // Cultist - ROLE_GSPIDER, // Giant spider ROLE_GUARDIAN, // Guardian ROLE_MORPH, // Morph ROLE_OPERATIVE = /datum/game_mode/nuclear, // Operative ROLE_PAI, // PAI - ROLE_POSIBRAIN, // Positronic brain ROLE_REVENANT, // Revenant ROLE_REV = /datum/game_mode/revolution, // Revolutionary ROLE_SENTIENT, // Sentient animal ROLE_DEMON, // Slaguther demon ROLE_ELITE, // Lavaland Elite - ROLE_NINJA, // Space ninja ROLE_TRADER, // Trader ROLE_TRAITOR = /datum/game_mode/traitor, // Traitor ROLE_VAMPIRE = /datum/game_mode/vampire, // Vampire diff --git a/code/__DEFINES/rolebans.dm b/code/__DEFINES/rolebans.dm index ec5dd31daa8a..c400ddb5c3ee 100644 --- a/code/__DEFINES/rolebans.dm +++ b/code/__DEFINES/rolebans.dm @@ -8,13 +8,11 @@ GLOBAL_LIST_INIT(antag_roles, list( ROLE_ALIEN, ROLE_CULTIST, ROLE_BLOB, - ROLE_NINJA, ROLE_VAMPIRE, ROLE_DEMON, ROLE_REVENANT, ROLE_GUARDIAN, ROLE_MORPH, - ROLE_GSPIDER, ROLE_TSPIDER, )) diff --git a/code/__DEFINES/rust_g.dm b/code/__DEFINES/rust_g.dm index 23b11a55347e..8943239ae6cc 100644 --- a/code/__DEFINES/rust_g.dm +++ b/code/__DEFINES/rust_g.dm @@ -134,6 +134,12 @@ #define rustg_dmi_strip_metadata(fname) RUSTG_CALL(RUST_G, "dmi_strip_metadata")(fname) #define rustg_dmi_create_png(path, width, height, data) RUSTG_CALL(RUST_G, "dmi_create_png")(path, width, height, data) #define rustg_dmi_resize_png(path, width, height, resizetype) RUSTG_CALL(RUST_G, "dmi_resize_png")(path, width, height, resizetype) +/** + * input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg. + * + * output: json_encode'd list. json_decode to get a flat list with icon states in the order they're in inside the .dmi + */ +#define rustg_dmi_icon_states(fname) RUSTG_CALL(RUST_G, "dmi_icon_states")(fname) // File Operations // @@ -250,6 +256,45 @@ /proc/rustg_redis_get_messages() return RUSTG_CALL(RUST_G, "redis_get_messages")() #define rustg_redis_publish(channel, message) RUSTG_CALL(RUST_G, "redis_publish")(channel, message) +/** + * Connects to a given redis server. + * + * Arguments: + * * addr - The address of the server, for example "redis://127.0.0.1/" + */ +#define rustg_redis_connect_rq(addr) RUSTG_CALL(RUST_G, "redis_connect_rq")(addr) +/** + * Disconnects from a previously connected redis server + */ +/proc/rustg_redis_disconnect_rq() return RUSTG_CALL(RUST_G, "redis_disconnect_rq")() +/** + * https://redis.io/commands/lpush/ + * + * Arguments + * * key (string) - The key to use + * * elements (list) - The elements to push, use a list even if there's only one element. + */ +#define rustg_redis_lpush(key, elements) RUSTG_CALL(RUST_G, "redis_lpush")(key, json_encode(elements)) +/** + * https://redis.io/commands/lrange/ + * + * Arguments + * * key (string) - The key to use + * * start (string) - The zero-based index to start retrieving at + * * stop (string) - The zero-based index to stop retrieving at (inclusive) + */ +#define rustg_redis_lrange(key, start, stop) RUSTG_CALL(RUST_G, "redis_lrange")(key, start, stop) +/** + * https://redis.io/commands/lpop/ + * + * Arguments + * * key (string) - The key to use + * * count (string|null) - The amount to pop off the list, pass null to omit (thus just 1) + * + * Note: `count` was added in Redis version 6.2.0 + */ +#define rustg_redis_lpop(key, count) RUSTG_CALL(RUST_G, "redis_lpop")(key, count) + // SQL Operations // #define rustg_sql_connect_pool(options) RUSTG_CALL(RUST_G, "sql_connect_pool")(options) @@ -265,8 +310,9 @@ #define rustg_time_milliseconds(id) text2num(RUSTG_CALL(RUST_G, "time_milliseconds")(id)) #define rustg_time_reset(id) RUSTG_CALL(RUST_G, "time_reset")(id) +/// Returns the timestamp as a string /proc/rustg_unix_timestamp() - return text2num(RUSTG_CALL(RUST_G, "unix_timestamp")()) + return RUSTG_CALL(RUST_G, "unix_timestamp")() // Toast Operations // @@ -324,3 +370,5 @@ */ #define rustg_worley_generate(region_size, threshold, node_per_region_chance, size, node_min, node_max) \ RUSTG_CALL(RUST_G, "worley_generate")(region_size, threshold, node_per_region_chance, size, node_min, node_max) + + diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 2c188e81e405..a7ee1856f94d 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -183,6 +183,12 @@ /// This status effect allows a mob to be revived with a defibrillator. #define STATUS_EFFECT_REVIVABLE /datum/status_effect/limited_bonus/revivable +/// Status effects for different actions +#define STATUS_EFFECT_REMOVE_CUFFS /datum/status_effect/action_status_effect/remove_handcuffs +#define STATUS_EFFECT_BREAK_CUFFS /datum/status_effect/action_status_effect/break_handcuffs +#define STATUS_EFFECT_REMOVE_MUZZLE /datum/status_effect/action_status_effect/remove_muzzle +#define STATUS_EFFECT_UNBUCKLE /datum/status_effect/action_status_effect/unbuckle + ////////////////////////// // Mind batter variants // ////////////////////////// diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index 402ba2c7e3bc..e8bbb9c728da 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -54,3 +54,6 @@ /proc/cmp_login_processor_priority(datum/client_login_processor/A, datum/client_login_processor/B) return A.priority - B.priority + +/proc/cmp_changeling_power_category_asc(datum/changeling_power_category/a, datum/changeling_power_category/b) + return initial(a.priority) - initial(b.priority) diff --git a/code/__HELPERS/experimental.dm b/code/__HELPERS/experimental.dm deleted file mode 100644 index 7409797bb0d7..000000000000 --- a/code/__HELPERS/experimental.dm +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Experimental procs by ESwordTheCat! - */ - -/* - * Get index of last char occurence to string. - * - * @args - * A, string to be search - * B, char used for search - * - * @return - * >0, index of char at string - * 0, char not found - * -1, parameter B is not a char - * -2, parameter A is not a string - */ -/proc/strpos(const/A, const/B) - if(istext(A) == 0 || length(A) < 1) - return -2 - - if(istext(B) == 0 || length(B) > 1) - return -1 - - var/i = findtext(A, B) - - if(0 == i) - return 0 - - while(i) - . = i - i = findtext(A, B, i + 1) - -/proc/isInTypes(atom/Object, types) - var/prototype = Object.type - Object = null - - for(var/type in params2list(types)) - if(ispath(prototype, text2path(type))) - return 1 - - return 0 diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index f784be66aef1..97c9fe44971c 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -110,10 +110,6 @@ for(var/limb_type in typesof(/datum/robolimb)) var/datum/robolimb/R = new limb_type() GLOB.all_robolimbs[R.company] = R - if(!R.unavailable_at_chargen) - if(R != "head" && R != "chest" && R != "groin") //Part of the method that ensures only IPCs can access head, chest and groin prosthetics. - if(R.has_subtypes) //Ensures solos get added to the list as well be incorporating has_subtypes == 1 and has_subtypes == 2. - GLOB.chargen_robolimbs[R.company] = R //List only main brands and solo parts. if(R.selectable) GLOB.selectable_robolimbs[R.company] = R diff --git a/code/__HELPERS/mob_helpers.dm b/code/__HELPERS/mob_helpers.dm index 06a2ec732f92..5a6fc82dc98e 100644 --- a/code/__HELPERS/mob_helpers.dm +++ b/code/__HELPERS/mob_helpers.dm @@ -470,7 +470,7 @@ return FALSE #define DOAFTERONCE_MAGIC "Magic~~" -GLOBAL_LIST_INIT(do_after_once_tracker, list()) +GLOBAL_LIST_EMPTY(do_after_once_tracker) /proc/do_after_once(mob/user, delay, needhand = 1, atom/target = null, progress = 1, allow_moving, must_be_held, attempt_cancel_message = "Attempt cancelled.", special_identifier) if(!user || !target) return diff --git a/code/__HELPERS/path.dm b/code/__HELPERS/path.dm index 10daae7ee77a..5c4a4095c559 100644 --- a/code/__HELPERS/path.dm +++ b/code/__HELPERS/path.dm @@ -1,3 +1,5 @@ +#define GET_DIST_REAL(turf_a, turf_b) sqrt((turf_a.x - turf_b.x) ** 2 + (turf_a.y - turf_b.y) ** 2) + /** * This file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips * over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions. @@ -65,18 +67,21 @@ var/jumps /// Nodes store the endgoal so they can process their heuristic without a reference to the pathfind datum var/turf/node_goal + /// Multiplier for making diagonals more expensive + var/diagonal_move_mult = 1 -/datum/jps_node/New(turf/our_tile, datum/jps_node/incoming_previous_node, jumps_taken, turf/incoming_goal) +/datum/jps_node/New(turf/our_tile, datum/jps_node/incoming_previous_node, jumps_taken, turf/incoming_goal, is_diagonal) tile = our_tile jumps = jumps_taken + diagonal_move_mult = (is_diagonal ? SQRT_2 : 1) if(incoming_goal) // if we have the goal argument, this must be the first/starting node node_goal = incoming_goal else if(incoming_previous_node) // if we have the parent, this is from a direct lateral/diagonal scan, we can fill it all out now previous_node = incoming_previous_node number_tiles = previous_node.number_tiles + jumps node_goal = previous_node.node_goal - heuristic = get_dist(tile, node_goal) - f_value = number_tiles + heuristic + heuristic = GET_DIST_REAL(tile, node_goal) + f_value = heuristic + previous_node.number_tiles + (jumps * diagonal_move_mult) // otherwise, no parent node means this is from a subscan lateral scan, so we just need the tile for now until we call [datum/jps/proc/update_parent] on it /datum/jps_node/Destroy(force, ...) @@ -86,10 +91,10 @@ /datum/jps_node/proc/update_parent(datum/jps_node/new_parent) previous_node = new_parent node_goal = previous_node.node_goal - jumps = get_dist(tile, previous_node.tile) + jumps = GET_DIST_REAL(tile, previous_node.tile) number_tiles = previous_node.number_tiles + jumps - heuristic = get_dist(tile, node_goal) - f_value = number_tiles + heuristic + heuristic = GET_DIST_REAL(tile, node_goal) + f_value = heuristic + previous_node.number_tiles + (jumps * diagonal_move_mult) /// TODO: Macro this to reduce proc overhead /proc/HeapPathWeightCompare(datum/jps_node/a, datum/jps_node/b) @@ -149,7 +154,7 @@ return if(start.z != end.z || start == end) //no pathfinding between z levels return - if(max_distance && (max_distance < get_dist(start, end))) //if start turf is farther than max_distance from end turf, no need to do anything + if(max_distance && (max_distance < GET_DIST_REAL(start, end))) //if start turf is farther than max_distance from end turf, no need to do anything return //initialization @@ -260,7 +265,7 @@ if(!CAN_STEP(lag_turf, current_turf)) return - if(current_turf == end || (mintargetdist && (get_dist(current_turf, end) <= mintargetdist))) + if(current_turf == end || (mintargetdist && (GET_DIST_REAL(current_turf, end) <= mintargetdist))) var/datum/jps_node/final_node = new(current_turf, parent_node, steps_taken) sources[current_turf] = original_turf if(parent_node) // if this is a direct lateral scan we can wrap up, if it's a subscan from a diag, we need to let the diag make their node first, then finish @@ -321,8 +326,8 @@ if(!CAN_STEP(lag_turf, current_turf)) return - if(current_turf == end || (mintargetdist && (get_dist(current_turf, end) <= mintargetdist))) - var/datum/jps_node/final_node = new(current_turf, parent_node, steps_taken) + if(current_turf == end || (mintargetdist && (GET_DIST_REAL(current_turf, end) <= mintargetdist))) + var/datum/jps_node/final_node = new(current_turf, parent_node, steps_taken, is_diagonal = TRUE) sources[current_turf] = original_turf unwind_path(final_node) return @@ -360,12 +365,12 @@ possible_child_node = (lateral_scan_spec(current_turf, SOUTH) || lateral_scan_spec(current_turf, EAST)) if(interesting || possible_child_node) - var/datum/jps_node/newnode = new(current_turf, parent_node, steps_taken) + var/datum/jps_node/newnode = new(current_turf, parent_node, steps_taken, is_diagonal = TRUE) open.Insert(newnode) if(possible_child_node) possible_child_node.update_parent(newnode) open.Insert(possible_child_node) - if(possible_child_node.tile == end || (mintargetdist && (get_dist(possible_child_node.tile, end) <= mintargetdist))) + if(possible_child_node.tile == end || (mintargetdist && (GET_DIST_REAL(possible_child_node.tile, end) <= mintargetdist))) unwind_path(possible_child_node) return @@ -437,3 +442,4 @@ #undef CAN_STEP #undef STEP_NOT_HERE_BUT_THERE +#undef GET_DIST_REAL diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm index 4337fa0f2070..71e15c25375a 100644 --- a/code/__HELPERS/trait_helpers.dm +++ b/code/__HELPERS/trait_helpers.dm @@ -221,6 +221,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_IPC_JOINTS_SEALED "ipc_joints_sealed" // The IPC's limbs will not pop off bar sharp damage (aka like a human), but will take slightly more stamina damage #define TRAIT_HAS_GPS "has_gps" // used for /Stat #define TRAIT_CAN_VIEW_HEALTH "can_view_health" // Also used for /Stat +#define TRAIT_MAGPULSE "magnetificent" // Used for anything that is magboot related //***** MIND TRAITS *****/ #define TRAIT_HOLY "is_holy" // The mob is holy in regards to religion @@ -253,6 +254,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///An item that is oiled. If sprayed with water, it's slowdown reverts to normal. #define TRAIT_OIL_SLICKED "oil_slicked" +///An item that can be pointed at mobs, while on non-help intent. +#define TRAIT_CAN_POINT_WITH "can_point_with" + // // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 985217d56b9a..ac905dd1216a 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -207,6 +207,8 @@ return 'icons/mob/screen_operative.dmi' if("White") return 'icons/mob/screen_white.dmi' + if("Midnight") + return 'icons/mob/screen_midnight.dmi' // SS220 ADDITION START if("Vaporwave") return 'modular_ss220/aesthetics/skin/icons/screen_vaporwave.dmi' diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 5a6cc9412936..e8f2ba579252 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -46,98 +46,99 @@ else if(dx < 0) . += 360 -//Returns location. Returns null if no location was found. -/proc/get_teleport_loc(turf/location,mob/target,distance = 1, density = TRUE, errorx = 0, errory = 0, eoffsetx = 0, eoffsety = 0) -/* -Location where the teleport begins, target that will teleport, distance to go, density checking 0/1(yes/no). -Random error in tile placement x, error in tile placement y, and block offset. -Block offset tells the proc how to place the box. Behind teleport location, relative to starting location, forward, etc. -Negative values for offset are accepted, think of it in relation to North, -x is west, -y is south. Error defaults to positive. -Turf and target are seperate in case you want to teleport some distance from a turf the target is not standing on or something. -*/ - - var/dirx = 0//Generic location finding variable. +// Returns location. Returns null if no location was found. +/proc/get_teleport_loc(turf/location, mob/target, distance = 1, density = TRUE, errorx = 0, errory = 0, eoffsetx = 0, eoffsety = 0) + /* + Location where the teleport begins, target that will teleport, distance to go, density checking 0/1(yes/no). + Random error in tile placement x, error in tile placement y, and block offset. + Block offset tells the proc how to place the box. Behind teleport location, relative to starting location, forward, etc. + Negative values for offset are accepted, think of it in relation to North, -x is west, -y is south. Error defaults to positive. + Turf and target are seperate in case you want to teleport some distance from a turf the target is not standing on or something. + */ + + var/dirx = 0 // Generic location finding variable. var/diry = 0 - var/xoffset = 0//Generic counter for offset location. + var/xoffset = 0 // Generic counter for offset location. var/yoffset = 0 - var/b1xerror = 0//Generic placing for point A in box. The lower left. + var/b1xerror = 0 // Generic placing for point A in box. The lower left. var/b1yerror = 0 - var/b2xerror = 0//Generic placing for point B in box. The upper right. + var/b2xerror = 0 // Generic placing for point B in box. The upper right. var/b2yerror = 0 - errorx = abs(errorx)//Error should never be negative. + errorx = abs(errorx) // Error should never be negative. errory = abs(errory) - //var/errorxy = round((errorx+errory)/2)//Used for diagonal boxes. - - switch(target.dir)//This can be done through equations but switch is the simpler method. And works fast to boot. - //Directs on what values need modifying. - if(1)//North - diry+=distance - yoffset+=eoffsety - xoffset+=eoffsetx - b1xerror-=errorx - b1yerror-=errory - b2xerror+=errorx - b2yerror+=errory - if(2)//South - diry-=distance - yoffset-=eoffsety - xoffset+=eoffsetx - b1xerror-=errorx - b1yerror-=errory - b2xerror+=errorx - b2yerror+=errory - if(4)//East - dirx+=distance - yoffset+=eoffsetx//Flipped. - xoffset+=eoffsety - b1xerror-=errory//Flipped. - b1yerror-=errorx - b2xerror+=errory - b2yerror+=errorx - if(8)//West - dirx-=distance - yoffset-=eoffsetx//Flipped. - xoffset+=eoffsety - b1xerror-=errory//Flipped. - b1yerror-=errorx - b2xerror+=errory - b2yerror+=errorx - - var/turf/destination=locate(location.x+dirx,location.y+diry,location.z) - - if(destination)//If there is a destination. - if(errorx||errory)//If errorx or y were specified. - var/destination_list[] = list()//To add turfs to list. - //destination_list = new() - /*This will draw a block around the target turf, given what the error is. - Specifying the values above will basically draw a different sort of block. - If the values are the same, it will be a square. If they are different, it will be a rectengle. - In either case, it will center based on offset. Offset is position from center. - Offset always calculates in relation to direction faced. In other words, depending on the direction of the teleport, - the offset should remain positioned in relation to destination.*/ - - var/turf/center = locate((destination.x+xoffset),(destination.y+yoffset),location.z)//So now, find the new center. - - //Now to find a box from center location and make that our destination. - for(var/turf/T in block(locate(center.x+b1xerror,center.y+b1yerror,location.z), locate(center.x+b2xerror,center.y+b2yerror,location.z))) - if(density&&T.density) continue//If density was specified. - if(T.x>world.maxx || T.x<1) continue//Don't want them to teleport off the map. - if(T.y>world.maxy || T.y<1) continue - destination_list += T - if(destination_list.len) - destination = pick(destination_list) - else return - - else//Same deal here. - if(density&&destination.density) return - if(destination.x>world.maxx || destination.x<1) return - if(destination.y>world.maxy || destination.y<1) return - else return - - return destination + + switch(target.dir) // This can be done through equations but switch is the simpler method. And works fast to boot. + // Directs on what values need modifying. + if(NORTH) + diry += distance + yoffset += eoffsety + xoffset += eoffsetx + b1xerror -= errorx + b1yerror -= errory + b2xerror += errorx + b2yerror += errory + if(SOUTH) + diry -= distance + yoffset -= eoffsety + xoffset += eoffsetx + b1xerror -= errorx + b1yerror -= errory + b2xerror += errorx + b2yerror += errory + if(EAST) + dirx += distance + yoffset += eoffsetx // Flipped. + xoffset += eoffsety + b1xerror -= errory // Flipped. + b1yerror -= errorx + b2xerror += errory + b2yerror += errorx + if(WEST) + dirx -= distance + yoffset -= eoffsetx // Flipped. + xoffset += eoffsety + b1xerror -= errory // Flipped. + b1yerror -= errorx + b2xerror += errory + b2yerror += errorx + + var/turf/destination = locate(location.x + dirx, location.y + diry, location.z) + + if(!destination) + return + + if(!errorx && !errory) + if(density && destination.density) + return + if(destination.x > world.maxx || destination.x < 1 || destination.y > world.maxy || destination.y < 1) + return + return destination + + var/list/destination_list = list() + + /* + This will draw a block around the target turf, given what the error is. + Specifying `errorx` and `errory` will basically draw a different sort of block. + If the values are the same, it will be a square. If they are different, it will be a rectengle. + In either case, it will center based on offset. Offset is position from center. + Offset always calculates in relation to direction faced. In other words, depending on the direction of the teleport, + the offset should remain positioned in relation to destination. + */ + var/turf/center = locate((destination.x + xoffset), (destination.y + yoffset), location.z) // So now, find the new center. + + // Now to find a box from center location and make that our destination. + for(var/turf/T in block(locate(center.x + b1xerror, center.y + b1yerror, location.z), locate(center.x + b2xerror, center.y + b2yerror, location.z))) + if(density && T.density) + continue + if(T.x > world.maxx || T.x < 1 || T.y > world.maxy || T.y < 1) + continue // Don't want them to teleport off the map. + destination_list += T + if(!length(destination_list)) + return + return pick(destination_list) /proc/is_in_teleport_proof_area(atom/O) @@ -301,7 +302,7 @@ Turf and target are seperate in case you want to teleport some distance from a t //When an AI is activated, it can choose from a list of non-slaved borgs to have as a slave. /proc/freeborg() - var/select = null + var/select var/list/borgs = list() for(var/mob/living/silicon/robot/A in GLOB.player_list) if(A.stat == 2 || A.connected_ai || A.scrambledcodes || isdrone(A)) @@ -309,7 +310,7 @@ Turf and target are seperate in case you want to teleport some distance from a t var/name = "[A.real_name] ([A.modtype] [A.braintype])" borgs[name] = A - if(borgs.len) + if(length(borgs)) select = input("Unshackled borg signals detected:", "Borg selection", null, null) as null|anything in borgs return borgs[select] @@ -337,7 +338,7 @@ Turf and target are seperate in case you want to teleport some distance from a t /proc/select_active_ai(mob/user) var/list/ais = active_ais() - if(ais.len) + if(length(ais)) if(user) . = input(usr,"AI signals detected:", "AI selection") in ais else . = pick(ais) return . @@ -410,7 +411,7 @@ Turf and target are seperate in case you want to teleport some distance from a t moblist.Add(M) for(var/mob/living/carbon/human/M in sortmob) moblist.Add(M) - for(var/mob/living/carbon/brain/M in sortmob) + for(var/mob/living/brain/M in sortmob) moblist.Add(M) for(var/mob/living/carbon/alien/M in sortmob) moblist.Add(M) @@ -599,7 +600,7 @@ Returns 1 if the chain up to the area contains the given typepath for(var/atom/part in contents) toReturn += part - if(part.contents.len && searchDepth) + if(length(part.contents) && searchDepth) toReturn += part.GetAllContents(searchDepth - 1) return toReturn @@ -660,7 +661,7 @@ Returns 1 if the chain up to the area contains the given typepath var/dir_alt2 = turn(base_dir, -90) var/turf/turf_last1 = temp var/turf/turf_last2 = temp - var/free_tile = null + var/free_tile var/breakpoint = 0 while(!free_tile && breakpoint < 10) @@ -705,7 +706,7 @@ Returns 1 if the chain up to the area contains the given typepath var/area/areatemp = areatype areatype = areatemp.type - var/list/areas = new/list() + var/list/areas = list() for(var/area/N in world) if(istype(N, areatype)) areas += N return areas @@ -719,7 +720,7 @@ Returns 1 if the chain up to the area contains the given typepath var/area/areatemp = areatype areatype = areatemp.type - var/list/turfs = new/list() + var/list/turfs = list() for(var/area/N in world) if(istype(N, areatype)) for(var/turf/T in N) turfs += T @@ -734,7 +735,7 @@ Returns 1 if the chain up to the area contains the given typepath var/area/areatemp = areatype areatype = areatemp.type - var/list/atoms = new/list() + var/list/atoms = list() for(var/area/N in world) if(istype(N, areatype)) for(var/atom/A in N) @@ -742,11 +743,11 @@ Returns 1 if the chain up to the area contains the given typepath return atoms /datum/coords //Simple datum for storing coordinates. - var/x_pos = null - var/y_pos = null - var/z_pos = null + var/x_pos + var/y_pos + var/z_pos -/area/proc/move_contents_to(area/A, turftoleave=null, direction = null) +/area/proc/move_contents_to(area/A, turf_to_leave, direction) //Takes: Area. Optional: turf type to leave behind. //Returns: Nothing. //Notes: Attempts to move the contents of one area to another area. @@ -770,7 +771,7 @@ Returns 1 if the chain up to the area contains the given typepath if(T.x < trg_min_x || !trg_min_x) trg_min_x = T.x if(T.y < trg_min_y || !trg_min_y) trg_min_y = T.y - var/list/refined_src = new/list() + var/list/refined_src = list() for(var/turf/T in turfs_src) refined_src += T refined_src[T] = new/datum/coords @@ -778,7 +779,7 @@ Returns 1 if the chain up to the area contains the given typepath C.x_pos = (T.x - src_min_x) C.y_pos = (T.y - src_min_y) - var/list/refined_trg = new/list() + var/list/refined_trg = list() for(var/turf/T in turfs_trg) refined_trg += T refined_trg[T] = new/datum/coords @@ -786,8 +787,8 @@ Returns 1 if the chain up to the area contains the given typepath C.x_pos = (T.x - trg_min_x) C.y_pos = (T.y - trg_min_y) - var/list/fromupdate = new/list() - var/list/toupdate = new/list() + var/list/from_update = list() + var/list/to_update = list() moving: for(var/turf/T in refined_src) @@ -803,19 +804,17 @@ Returns 1 if the chain up to the area contains the given typepath var/turf/X = B.ChangeTurf(T.type) X.dir = old_dir1 X.icon_state = old_icon_state1 - X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi + X.icon = old_icon1 // Shuttle floors are in shuttle.dmi while the defaults are floors.dmi // Give the new turf our air, if simulated if(issimulatedturf(X) && issimulatedturf(T)) var/turf/simulated/sim = X sim.copy_air_with_tile(T) - - /* Quick visual fix for some weird shuttle corner artefacts when on transit space tiles */ + // Quick visual fix for some weird shuttle corner artefacts when on transit space tiles if(direction && findtext(X.icon_state, "swall_s")) - // Spawn a new shuttle corner object - var/obj/corner = new() + var/obj/corner = new corner.loc = X corner.density = TRUE corner.anchored = TRUE @@ -834,35 +833,31 @@ Returns 1 if the chain up to the area contains the given typepath X.icon = nextturf.icon X.icon_state = nextturf.icon_state - for(var/obj/O in T) - // Reset the shuttle corners if(O.tag == "delete me") X.icon = 'icons/turf/shuttle.dmi' - X.icon_state = replacetext(O.icon_state, "_f", "_s") // revert the turf to the old icon_state + X.icon_state = replacetext(O.icon_state, "_f", "_s") // Revert the turf to the old icon_state X.name = "wall" - qdel(O) // prevents multiple shuttle corners from stacking + qdel(O) // Prevents multiple shuttle corners from stacking continue - if(!isobj(O)) continue + + if(QDELETED(O)) + continue + O.loc.Exited(O) - O.setLoc(X,teleported=1) + O.setLoc(X) O.loc.Entered(O) + for(var/mob/M in T) if(!M.move_on_shuttle) continue M.loc = X -// var/area/AR = X.loc - -// if(AR.lighting_use_dynamic) //TODO: rewrite this code so it's not messed by lighting ~Carn -// X.opacity = !X.opacity -// X.set_opacity(!X.opacity) + to_update += X - toupdate += X - - if(turftoleave) - fromupdate += T.ChangeTurf(turftoleave) + if(turf_to_leave) + from_update += T.ChangeTurf(turf_to_leave) else T.ChangeTurf(T.baseturf) @@ -870,51 +865,49 @@ Returns 1 if the chain up to the area contains the given typepath refined_trg -= B continue moving - if(toupdate.len) - for(var/turf/simulated/T1 in toupdate) + if(length(to_update)) + for(var/turf/simulated/T1 in to_update) SSair.remove_from_active(T1) T1.CalculateAdjacentTurfs() - SSair.add_to_active(T1,1) + SSair.add_to_active(T1, TRUE) - if(fromupdate.len) - for(var/turf/simulated/T2 in fromupdate) + if(length(from_update)) + for(var/turf/simulated/T2 in from_update) SSair.remove_from_active(T2) T2.CalculateAdjacentTurfs() - SSair.add_to_active(T2,1) + SSair.add_to_active(T2, TRUE) - - -/proc/DuplicateObject(obj/original, perfectcopy = 0 , sameloc = 0, atom/newloc = null) +/proc/DuplicateObject(obj/original, perfectcopy = 0, sameloc = 0, atom/newloc) if(!original) - return null + return - var/obj/O = null + var/obj/O if(sameloc) - O=new original.type(original.loc) + O = new original.type(original.loc) else - O=new original.type(newloc) + O = new original.type(newloc) if(perfectcopy) - if((O) && (original)) - var/static/list/forbidden_vars = list("type","loc","locs","vars", "parent","parent_type", "verbs","ckey","key","power_supply","contents","reagents","stat","x","y","z","group", "comp_lookup", "datum_components") + if(O && original) + var/static/list/forbidden_vars = list("type", "loc", "locs", "vars", "parent", "parent_type", "verbs", "ckey", "key", "power_supply", "contents", "reagents", "stat", "x", "y", "z", "group", "comp_lookup", "datum_components") for(var/V in original.vars - forbidden_vars) - if(istype(original.vars[V],/list)) + if(islist(original.vars[V])) var/list/L = original.vars[V] O.vars[V] = L.Copy() - else if(istype(original.vars[V],/datum)) - continue // this would reference the original's object, that will break when it is used or deleted. + else if(istype(original.vars[V], /datum)) + continue // This would reference the original's object, that will break when it is used or deleted. else O.vars[V] = original.vars[V] if(istype(O)) O.update_icon() return O -/area/proc/copy_contents_to(area/A , platingRequired = 0, perfect_copy = TRUE) +/area/proc/copy_contents_to(area/A, platingRequired = FALSE, perfect_copy = TRUE) //Takes: Area. Optional: If it should copy to areas that don't have plating - //Returns: Nothing. + //Returns: List containing copied objects or `FALSE` if source/target area are null. //Notes: Attempts to move the contents of one area to another area. // Movement based on lower left corner. Tiles that do not fit // into the new area will not be moved. @@ -941,7 +934,7 @@ Returns 1 if the chain up to the area contains the given typepath if(T.y < trg_min_y || !trg_min_y) trg_min_y = T.y - var/list/refined_src = new/list() + var/list/refined_src = list() for(var/turf/T in turfs_src) refined_src += T refined_src[T] = new/datum/coords @@ -949,7 +942,7 @@ Returns 1 if the chain up to the area contains the given typepath C.x_pos = (T.x - src_min_x) C.y_pos = (T.y - src_min_y) - var/list/refined_trg = new/list() + var/list/refined_trg = list() for(var/turf/T in turfs_trg) refined_trg += T refined_trg[T] = new/datum/coords @@ -957,87 +950,59 @@ Returns 1 if the chain up to the area contains the given typepath C.x_pos = (T.x - trg_min_x) C.y_pos = (T.y - trg_min_y) - var/list/toupdate = new/list() - - var/copiedobjs = list() - + var/list/to_update = list() + var/list/copied_objects = list() moving: for(var/turf/T in refined_src) var/datum/coords/C_src = refined_src[T] + for(var/turf/B in refined_trg) var/datum/coords/C_trg = refined_trg[B] + if(C_src.x_pos == C_trg.x_pos && C_src.y_pos == C_trg.y_pos) + if(platingRequired && isspaceturf(B)) + continue moving var/old_dir1 = T.dir var/old_icon_state1 = T.icon_state var/old_icon1 = T.icon - if(platingRequired) - if(isspaceturf(B)) - continue moving var/turf/X = new T.type(B) X.dir = old_dir1 X.icon_state = old_icon_state1 - X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi + X.icon = old_icon1 // Shuttle floors are in shuttle.dmi while the defaults are floors.dmi - var/list/objs = new/list() - var/list/newobjs = new/list() - var/list/mobs = new/list() - var/list/newmobs = new/list() + var/list/newobjs = list() + var/list/newmobs = list() for(var/obj/O in T) - - if(!isobj(O)) - continue - - objs += O - - - for(var/obj/O in objs) - newobjs += DuplicateObject(O , perfect_copy) - - - for(var/obj/O in newobjs) - O.loc = X + newobjs += DuplicateObject(O, perfect_copy, FALSE, X) for(var/mob/M in T) - if(!M.move_on_shuttle) continue - mobs += M - - for(var/mob/M in mobs) - newmobs += DuplicateObject(M , 1) - - for(var/mob/M in newmobs) - M.loc = X - - copiedobjs += newobjs - copiedobjs += newmobs - + newmobs += DuplicateObject(M, TRUE, FALSE, X) + copied_objects += newobjs + copied_objects += newmobs for(var/V in T.vars) - if(!(V in list("type","loc","locs","vars", "parent", "parent_type","verbs","ckey","key","x","y","z","destination_z", "destination_x", "destination_y","contents", "luminosity", "group"))) + if(!(V in list("type", "loc", "locs", "vars", "parent", "parent_type", "verbs", "ckey", "key", "x", "y", "z", "destination_z", "destination_x", "destination_y", "contents", "luminosity", "group"))) X.vars[V] = T.vars[V] - toupdate += X + to_update += X refined_src -= T refined_trg -= B continue moving - - - if(toupdate.len) - for(var/turf/simulated/T1 in toupdate) + if(length(to_update)) + for(var/turf/simulated/T1 in to_update) T1.CalculateAdjacentTurfs() SSair.add_to_active(T1,1) - - return copiedobjs - + return copied_objects /proc/get_cardinal_dir(atom/A, atom/B) @@ -1171,55 +1136,6 @@ GLOBAL_LIST_INIT(can_embed_types, typecacheof(list( if(is_type_in_typecache(W, GLOB.can_embed_types)) return 1 -/proc/is_hot(obj/item/W as obj) - if(W.tool_behaviour == TOOL_WELDER) - if(W.tool_enabled) - return 2500 - else - return 0 - if(istype(W, /obj/item/lighter)) - var/obj/item/lighter/O = W - if(O.lit) - return 1500 - else - return 0 - if(istype(W, /obj/item/match)) - var/obj/item/match/O = W - if(O.lit) - return 1000 - else - return 0 - if(istype(W, /obj/item/clothing/mask/cigarette)) - var/obj/item/clothing/mask/cigarette/O = W - if(O.lit) - return 1000 - else - return 0 - if(istype(W, /obj/item/candle)) - var/obj/item/candle/O = W - if(O.lit) - return 1000 - else - return 0 - if(istype(W, /obj/item/flashlight/flare)) - var/obj/item/flashlight/flare/O = W - if(O.on) - return 1000 - else - return 0 - if(istype(W, /obj/item/gun/energy/plasmacutter)) - return 3800 - if(istype(W, /obj/item/melee/energy)) - var/obj/item/melee/energy/O = W - if(O.active) - return 3500 - else - return 0 - if(istype(W, /obj/item/assembly/igniter)) - return 20000 - else - return 0 - //Whether or not the given item counts as sharp in terms of dealing damage /proc/is_sharp(obj/O) if(!O) @@ -1300,7 +1216,7 @@ Standard way to write links -Sayu */ /proc/topic_link(datum/D, arglist, content) - if(istype(arglist,/list)) + if(islist(arglist)) arglist = list2params(arglist) return "[content]" @@ -1385,9 +1301,9 @@ Standard way to write links -Sayu var/list/processing_list = list(src) var/list/processed = list() - var/atom/found = null + var/atom/found - while(processing_list.len && found==null) + while(length(processing_list) && isnull(found)) var/atom/A = processing_list[1] if(istype(A, typepath)) found = A @@ -1693,11 +1609,11 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) if(!isnull(value) && value != "") matches = filter_fancy_list(matches, value) - if(matches.len == 0) + if(!length(matches)) return var/chosen - if(matches.len == 1) + if(length(matches) == 1) chosen = matches[1] else chosen = input("Select a type", "Pick Type", matches[1]) as null|anything in matches @@ -1827,7 +1743,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) /proc/filter_fancy_list(list/L, filter as text) - var/list/matches = new + var/list/matches = list() for(var/key in L) var/value = L[key] if(findtext("[key]", filter) || findtext("[value]", filter)) @@ -1931,7 +1847,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return living_players /proc/make_bit_triplet() - var/list/num_sample = list(1, 2, 3, 4, 5, 6, 7, 8, 9) + var/list/num_sample = list(1, 2, 3, 4, 5, 6, 7, 8, 9) var/result = 0 for(var/i = 0, i < 3, i++) var/num = pick(num_sample) @@ -2123,7 +2039,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) * * url - URL to GET */ /proc/HTTPGet(url) - var/datum/http_request/req = new() + var/datum/http_request/req = new req.prepare(RUSTG_HTTP_METHOD_GET, url) req.begin_async() diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm index 3b7d061ace37..b031d7a0cf31 100644 --- a/code/_globalvars/configuration.dm +++ b/code/_globalvars/configuration.dm @@ -25,6 +25,3 @@ GLOBAL_VAR_INIT(dsay_enabled, TRUE) /// Amount of time (in minutes) that must pass between a player dying as a mouse and repawning as a mouse GLOBAL_VAR_INIT(mouse_respawn_time, 5) - -/// Enable debugging of things such as job starts and other things -GLOBAL_VAR_INIT(debug2, TRUE) diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm index 9a8d01767644..664ae5577d2c 100644 --- a/code/_globalvars/game_modes.dm +++ b/code/_globalvars/game_modes.dm @@ -5,4 +5,3 @@ GLOBAL_VAR_INIT(secret_force_mode, "secret") // if this is anything but "secret" GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report. Dont ask why it inits as null GLOBAL_VAR(custom_event_msg) -GLOBAL_VAR(custom_event_admin_msg) diff --git a/code/_globalvars/genetics.dm b/code/_globalvars/genetics.dm index 21d396718282..94b180be3c89 100644 --- a/code/_globalvars/genetics.dm +++ b/code/_globalvars/genetics.dm @@ -60,6 +60,3 @@ GLOBAL_VAR_INIT(polymorphblock, 0) /////////////////////////////// GLOBAL_VAR_INIT(loudblock, 0) GLOBAL_VAR_INIT(dizzyblock, 0) - -GLOBAL_LIST_EMPTY(reg_dna) -GLOBAL_LIST_EMPTY(global_mutations) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index d45db7b7dce5..19768711ea14 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -1,35 +1,31 @@ //Preferences stuff //Head accessory styles -GLOBAL_LIST_INIT(head_accessory_styles_list, list()) //stores /datum/sprite_accessory/head_accessory indexed by name +GLOBAL_LIST_EMPTY(head_accessory_styles_list) //stores /datum/sprite_accessory/head_accessory indexed by name //Marking styles -GLOBAL_LIST_INIT(marking_styles_list, list()) //stores /datum/sprite_accessory/body_markings indexed by name +GLOBAL_LIST_EMPTY(marking_styles_list) //stores /datum/sprite_accessory/body_markings indexed by name //Hairstyles -GLOBAL_LIST_INIT(hair_styles_public_list, list()) //stores /datum/sprite_accessory/hair indexed by name -GLOBAL_LIST_INIT(hair_styles_male_list, list()) -GLOBAL_LIST_INIT(hair_styles_female_list, list()) -GLOBAL_LIST_INIT(hair_styles_full_list, list()) //fluff hair styles -GLOBAL_LIST_INIT(facial_hair_styles_list, list()) //stores /datum/sprite_accessory/facial_hair indexed by name -GLOBAL_LIST_INIT(facial_hair_styles_male_list, list()) -GLOBAL_LIST_INIT(facial_hair_styles_female_list, list()) +GLOBAL_LIST_EMPTY(hair_styles_public_list) //stores /datum/sprite_accessory/hair indexed by name +GLOBAL_LIST_EMPTY(hair_styles_male_list) +GLOBAL_LIST_EMPTY(hair_styles_female_list) +GLOBAL_LIST_EMPTY(hair_styles_full_list) //fluff hair styles +GLOBAL_LIST_EMPTY(facial_hair_styles_list) //stores /datum/sprite_accessory/facial_hair indexed by name +GLOBAL_LIST_EMPTY(facial_hair_styles_male_list) +GLOBAL_LIST_EMPTY(facial_hair_styles_female_list) GLOBAL_LIST_EMPTY(hair_gradients_list) //stores /datum/sprite_accessory/hair_gradient indexed by name //Underwear -GLOBAL_LIST_INIT(underwear_list, list()) //stores /datum/sprite_accessory/underwear indexed by name -GLOBAL_LIST_INIT(underwear_m, list()) //stores only underwear name -GLOBAL_LIST_INIT(underwear_f, list()) //stores only underwear name +GLOBAL_LIST_EMPTY(underwear_list) //stores /datum/sprite_accessory/underwear indexed by name +GLOBAL_LIST_EMPTY(underwear_m) //stores only underwear name +GLOBAL_LIST_EMPTY(underwear_f) //stores only underwear name //Undershirts -GLOBAL_LIST_INIT(undershirt_list, list()) //stores /datum/sprite_accessory/undershirt indexed by name -GLOBAL_LIST_INIT(undershirt_m, list()) //stores only undershirt name -GLOBAL_LIST_INIT(undershirt_f, list()) //stores only undershirt name +GLOBAL_LIST_EMPTY(undershirt_list) //stores /datum/sprite_accessory/undershirt indexed by name +GLOBAL_LIST_EMPTY(undershirt_m) //stores only undershirt name +GLOBAL_LIST_EMPTY(undershirt_f) //stores only undershirt name //Socks -GLOBAL_LIST_INIT(socks_list, list()) //stores /datum/sprite_accessory/socks indexed by name -GLOBAL_LIST_INIT(socks_m, list()) //stores only socks name -GLOBAL_LIST_INIT(socks_f, list()) //stores only socks name +GLOBAL_LIST_EMPTY(socks_list) //stores /datum/sprite_accessory/socks indexed by name +GLOBAL_LIST_EMPTY(socks_m) //stores only socks name +GLOBAL_LIST_EMPTY(socks_f) //stores only socks name //Alt Heads -GLOBAL_LIST_INIT(alt_heads_list, list()) //stores /datum/sprite_accessory/alt_heads indexed by name - -GLOBAL_LIST_INIT(scarySounds, list('sound/weapons/thudswoosh.ogg','sound/weapons/taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg', \ -'sound/voice/hiss3.ogg','sound/voice/hiss4.ogg','sound/voice/hiss5.ogg','sound/voice/hiss6.ogg','sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg', \ -'sound/items/welder.ogg','sound/items/welder2.ogg','sound/machines/airlock_open.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg')) +GLOBAL_LIST_EMPTY(alt_heads_list) //stores /datum/sprite_accessory/alt_heads indexed by name // Reference list for disposal sort junctions. Set the sort_type_txt variable on disposal sort junctions to // the index of the sort department that you want. For example, adding "2" to sort_type_txt will reroute all packages @@ -56,12 +52,7 @@ GLOBAL_LIST_INIT(phonetic_alphabet, list("Alpha", "Bravo", "Charlie", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", "Yankee", "Zulu")) -GLOBAL_LIST_INIT(numbers_as_words, list("One", "Two", "Three", "Four", - "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", - "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", - "Eighteen", "Nineteen")) - - //Backpacks +//Backpacks #define GBACKPACK "Grey Backpack" #define GSATCHEL "Grey Satchel" #define GDUFFLEBAG "Grey Dufflebag" diff --git a/code/_globalvars/lists/misc_lists.dm b/code/_globalvars/lists/misc_lists.dm index 7371f1d7205a..b4ac32d640cf 100644 --- a/code/_globalvars/lists/misc_lists.dm +++ b/code/_globalvars/lists/misc_lists.dm @@ -1,8 +1,5 @@ GLOBAL_LIST_INIT(alphabet, list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")) GLOBAL_LIST_INIT(alphabet_uppercase, list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")) -GLOBAL_LIST_INIT(zero_character_only, list("0")) -GLOBAL_LIST_INIT(hex_characters, list("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f")) -GLOBAL_LIST_INIT(binary, list("0","1")) GLOBAL_LIST_INIT(html_colors, list("Alice Blue","Antique White","Aqua","Aquamarine","Azure","Beige","Bisque","Black","Blanched Almond","Blue","Blue Violet", "Brown","Burly Wood","Cadet Blue","Chartreuse","Chocolate","Coral","Cornflower Blue","Cornsilk","Crimson","Cyan", "Dark Blue","Dark Cyan","Dark Golden Rod","Dark Gray","Dark Green","Dark Khaki","Dark Magenta","Dark Olive Green", @@ -19,7 +16,6 @@ GLOBAL_LIST_INIT(html_colors, list("Alice Blue","Antique White","Aqua","Aquamari "Salmon","Sandy Brown","Sea Green","Sea Shell","Sienna","Silver","Sky Blue","Slate Blue","Slate Gray","Snow","Spring Green", "Steel Blue","Tan","Teal","Thistle","Tomato","Turquoise","Violet","Wheat","White","White Smoke","Yellow","Yellow Green")) -GLOBAL_LIST_INIT(day_names, list("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")) GLOBAL_LIST_INIT(month_names, list("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")) // keep si_suffixes balanced and with a pivot in the middle! GLOBAL_LIST_INIT(si_suffixes, list("y", "z", "a", "f", "p", "n", "u", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y")) @@ -38,7 +34,7 @@ GLOBAL_LIST_INIT(restricted_camera_networks, list( "SyndicateCaves" )) //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them. -GLOBAL_LIST_INIT(ruin_landmarks, list()) +GLOBAL_LIST_EMPTY(ruin_landmarks) GLOBAL_LIST_INIT(round_end_sounds, list( 'sound/AI/newroundsexy.ogg' = 2.3 SECONDS, diff --git a/code/_globalvars/lists/mob_lists.dm b/code/_globalvars/lists/mob_lists.dm index 709cc9075db8..a433843806d0 100644 --- a/code/_globalvars/lists/mob_lists.dm +++ b/code/_globalvars/lists/mob_lists.dm @@ -20,7 +20,6 @@ GLOBAL_LIST_EMPTY(silicon_mob_list) //List of all silicon mobs, including clie GLOBAL_LIST_EMPTY(mob_living_list) //all instances of /mob/living and subtypes GLOBAL_LIST_EMPTY(carbon_list) //all instances of /mob/living/carbon and subtypes, notably does not contain simple animals GLOBAL_LIST_EMPTY(human_list) //all instances of /mob/living/carbon/human and subtypes -GLOBAL_LIST_EMPTY(spirits) //List of all the spirits, including Masks GLOBAL_LIST_EMPTY(alive_mob_list) //List of all alive mobs, including clientless. Excludes /mob/new_player GLOBAL_LIST_EMPTY(dead_mob_list) //List of all dead mobs, including clientless. Excludes /mob/new_player GLOBAL_LIST_EMPTY(non_respawnable_keys) //List of ckeys that are excluded from respawning for remainder of round. diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index 6888cf87717a..777411685510 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -1,7 +1,7 @@ GLOBAL_LIST_INIT(ai_names, file2list("config/names/ai.txt")) GLOBAL_LIST_INIT(wizard_first, file2list("config/names/wizardfirst.txt")) GLOBAL_LIST_INIT(wizard_second, file2list("config/names/wizardsecond.txt")) -GLOBAL_LIST_INIT(ninja_titles, file2list("config/names/ninjatitle.txt")) +// GLOBAL_LIST_INIT(ninja_titles, file2list("config/names/ninjatitle.txt")) // This is kept because we technically still have these files in the code in case we ever want to use them, but is currently unused GLOBAL_LIST_INIT(ninja_names, file2list("config/names/ninjaname.txt")) GLOBAL_LIST_INIT(deathsquad_names, file2list("config/names/deathsquad.txt")) GLOBAL_LIST_INIT(first_names_male, file2list("config/names/first_male.txt")) @@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(first_names_soviet, file2list("config/names/first_soviet_male.t GLOBAL_LIST_INIT(last_names_soviet, file2list("config/names/last_soviet_male.txt")) GLOBAL_LIST_INIT(verbs, file2list("config/names/verbs.txt")) -GLOBAL_LIST_INIT(nouns, file2list("config/names/nouns.txt")) +GLOBAL_LIST_INIT(nouns, file2list("config/names/nouns.txt")) // SS220 EDIT - CODE UNCOMMENT GLOBAL_LIST_INIT(adjectives, file2list("config/names/adjectives.txt")) GLOBAL_LIST_INIT(dream_strings, file2list("config/names/dreams.txt")) GLOBAL_LIST_INIT(nightmare_strings, file2list("config/names/nightmares.txt")) diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 25723d3c21dd..707a797c8ba5 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -1,56 +1,54 @@ -GLOBAL_LIST_INIT(portals, list()) //for use by portals +GLOBAL_LIST_EMPTY(portals) //for use by portals GLOBAL_LIST(cable_list) //Index for all cables, so that powernets don't have to look through the entire world all the time GLOBAL_LIST(chemical_reactions_list) //list of all /datum/chemical_reaction datums. Used during chemical reactions GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff -GLOBAL_LIST_INIT(landmarks_list, list()) //list of all landmarks created -GLOBAL_LIST_INIT(surgery_steps, list()) //list of all surgery steps |BS12 -GLOBAL_LIST_INIT(side_effects, list()) //list of all medical sideeffects types by thier names |BS12 -GLOBAL_LIST_INIT(mechas_list, list()) //list of all mechs. Used by hostile mobs target tracking. -GLOBAL_LIST_INIT(joblist, list()) //list of all jobstypes, minus borg and AI -GLOBAL_LIST_INIT(airlocks, list()) //list of all airlocks -GLOBAL_LIST_INIT(singularities, list()) //list of all singularities -GLOBAL_LIST_INIT(janitorial_equipment, list()) //list of janitorial equipment -GLOBAL_LIST_INIT(crafting_recipes, list()) //list of all crafting recipes -GLOBAL_LIST_INIT(prisoncomputer_list, list()) -GLOBAL_LIST_INIT(celltimers_list, list()) // list of all cell timers -GLOBAL_LIST_INIT(cell_logs, list()) -GLOBAL_LIST_INIT(navigation_computers, list()) -GLOBAL_LIST_INIT(hierophant_walls, list()) - -GLOBAL_LIST_INIT(all_areas, list()) -GLOBAL_LIST_INIT(all_unique_areas, list()) // List of all unique areas. AKA areas with there_can_be_many = FALSE -GLOBAL_LIST_INIT(machines, list()) -GLOBAL_LIST_INIT(rcd_list, list()) //list of Rapid Construction Devices. - -GLOBAL_LIST_INIT(apcs, list()) -GLOBAL_LIST_INIT(air_alarms, list()) -GLOBAL_LIST_INIT(power_monitors, list()) -GLOBAL_LIST_INIT(all_vent_pumps, list()) - -GLOBAL_LIST_INIT(navbeacons, list()) //list of all bot nagivation beacons, used for patrolling. -GLOBAL_LIST_INIT(deliverybeacons, list()) //list of all MULEbot delivery beacons. -GLOBAL_LIST_INIT(deliverybeacontags, list()) //list of all tags associated with delivery beacons. - -GLOBAL_LIST_INIT(beacons, list()) -GLOBAL_LIST_INIT(shuttle_caller_list, list()) //list of all communication consoles, comms consoles circuit and AIs, for automatic shuttle calls when there are none. -GLOBAL_LIST_INIT(tracked_implants, list()) //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... -GLOBAL_LIST_INIT(pinpointer_list, list()) //list of all pinpointers. Used to change stuff they are pointing to all at once. -GLOBAL_LIST_INIT(nuclear_uplink_list, list()) //list of all existing nuke ops uplinks -GLOBAL_LIST_INIT(abductor_equipment, list()) //list of all abductor equipment -GLOBAL_LIST_INIT(global_intercoms, list()) //list of all intercomms, across all z-levels -GLOBAL_LIST_INIT(global_radios, list()) //list of all radios, across all z-levels - -GLOBAL_LIST_INIT(meteor_list, list()) //list of all meteors -GLOBAL_LIST_INIT(poi_list, list()) //list of points of interest for observe/follow -GLOBAL_LIST_INIT(active_jammers, list()) // List of active radio jammers +GLOBAL_LIST_EMPTY(landmarks_list) //list of all landmarks created +GLOBAL_LIST_EMPTY(surgery_steps) //list of all surgery steps |BS12 +GLOBAL_LIST_EMPTY(mechas_list) //list of all mechs. Used by hostile mobs target tracking. +GLOBAL_LIST_EMPTY(joblist) //list of all jobstypes, minus borg and AI +GLOBAL_LIST_EMPTY(airlocks) //list of all airlocks +GLOBAL_LIST_EMPTY(singularities) //list of all singularities +GLOBAL_LIST_EMPTY(janitorial_equipment) //list of janitorial equipment +GLOBAL_LIST_EMPTY(crafting_recipes) //list of all crafting recipes +GLOBAL_LIST_EMPTY(prisoncomputer_list) +GLOBAL_LIST_EMPTY(celltimers_list) // list of all cell timers +GLOBAL_LIST_EMPTY(cell_logs) +GLOBAL_LIST_EMPTY(navigation_computers) +GLOBAL_LIST_EMPTY(hierophant_walls) + +GLOBAL_LIST_EMPTY(all_areas) +GLOBAL_LIST_EMPTY(all_unique_areas) // List of all unique areas. AKA areas with there_can_be_many = FALSE +GLOBAL_LIST_EMPTY(machines) +GLOBAL_LIST_EMPTY(rcd_list) //list of Rapid Construction Devices. + +GLOBAL_LIST_EMPTY(apcs) +GLOBAL_LIST_EMPTY(air_alarms) +GLOBAL_LIST_EMPTY(power_monitors) +GLOBAL_LIST_EMPTY(all_vent_pumps) + +GLOBAL_LIST_EMPTY(navbeacons) //list of all bot nagivation beacons, used for patrolling. +GLOBAL_LIST_EMPTY(deliverybeacons) //list of all MULEbot delivery beacons. +GLOBAL_LIST_EMPTY(deliverybeacontags) //list of all tags associated with delivery beacons. + +GLOBAL_LIST_EMPTY(beacons) +GLOBAL_LIST_EMPTY(shuttle_caller_list) //list of all communication consoles, comms consoles circuit and AIs, for automatic shuttle calls when there are none. +GLOBAL_LIST_EMPTY(tracked_implants) //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... +GLOBAL_LIST_EMPTY(pinpointer_list) //list of all pinpointers. Used to change stuff they are pointing to all at once. +GLOBAL_LIST_EMPTY(nuclear_uplink_list) //list of all existing nuke ops uplinks +GLOBAL_LIST_EMPTY(abductor_equipment) //list of all abductor equipment +GLOBAL_LIST_EMPTY(global_intercoms) //list of all intercomms, across all z-levels +GLOBAL_LIST_EMPTY(global_radios) //list of all radios, across all z-levels + +GLOBAL_LIST_EMPTY(meteor_list) //list of all meteors +GLOBAL_LIST_EMPTY(poi_list) //list of points of interest for observe/follow +GLOBAL_LIST_EMPTY(active_jammers) // List of active radio jammers GLOBAL_LIST_EMPTY(ladders) GLOBAL_LIST_EMPTY(mirrors) //list of all mirrors and mirror shields. GLOBAL_LIST_EMPTY(arc_emitters) //list of all arc emitters -GLOBAL_LIST_INIT(active_diseases, list()) //List of Active disease in all mobs; purely for quick referencing. +GLOBAL_LIST_EMPTY(active_diseases) //List of Active disease in all mobs; purely for quick referencing. GLOBAL_LIST_EMPTY(mob_spawners) // All mob_spawn objects -GLOBAL_LIST_EMPTY(explosive_walls) GLOBAL_LIST_EMPTY(engine_beacon_list) diff --git a/code/_globalvars/lists/reagents_lists.dm b/code/_globalvars/lists/reagents_lists.dm index cabf9cc43e1b..2d70edcc5835 100644 --- a/code/_globalvars/lists/reagents_lists.dm +++ b/code/_globalvars/lists/reagents_lists.dm @@ -1,23 +1,3 @@ -// Base chemicals -GLOBAL_LIST_INIT(base_chemicals, list("water","oxygen","nitrogen","hydrogen","potassium","mercury","carbon", - "chlorine","fluorine","phosphorus","lithium","sulfur","sacid","radium", - "iron","aluminum","silicon","sugar","ethanol")) -// Standard chemicals -GLOBAL_LIST_INIT(standard_chemicals, list("slimejelly","blood","water","lube","charcoal","toxin","cyanide", - "morphine","epinephrine","space_drugs","oxygen","copper", - "nitrogen","hydrogen","potassium","mercury","sulfur","carbon","chlorine", - "fluorine","sodium","phosphorus","lithium","sugar","sacid","facid", - "glycerol","radium","mutadone","thermite","mutagen","virusfood","iron", - "gold","silver","uranium","aluminum","silicon","fuel","cleaner","atrazine", - "plasma","teporone","lexorin","silver_sulfadiazine","salbutamol", - "perfluorodecalin","omnizine","synaptizine","haloperidol","potass_iodide", - "pen_acid","mannitol","oculine","styptic_powder","methamphetamine", - "cryoxadone","spaceacillin","carpotoxin","lsd","fluorosurfactant", - "fluorosurfactant","ethanol","ammonia","diethylamine","antihol","pancuronium", - "lipolicide","condensedcapsaicin","frostoil","amanitin","psilocybin", - "enzyme","nothing","salglu_solution","antifreeze","neurotoxin", "jestosterone")) -// Rare chemicals -GLOBAL_LIST_INIT(rare_chemicals, list("minttoxin","syndicate_nanites", "xenomicrobes")) // Standard medicines GLOBAL_LIST_INIT(standard_medicines, list("charcoal","toxin","cyanide","morphine","epinephrine","space_drugs", "mutadone","mutagen","teporone","lexorin","silver_sulfadiazine", diff --git a/code/_globalvars/lists/typecache.dm b/code/_globalvars/lists/typecache.dm index 96807214f2f8..9ee4089fb0e6 100644 --- a/code/_globalvars/lists/typecache.dm +++ b/code/_globalvars/lists/typecache.dm @@ -8,5 +8,3 @@ GLOBAL_LIST_INIT(typecache_mob, typecacheof(/mob)) GLOBAL_LIST_INIT(typecache_living, typecacheof(/mob/living)) GLOBAL_LIST_INIT(typecache_stack, typecacheof(/obj/item/stack)) - -GLOBAL_LIST_INIT(typecache_machine_or_structure, typecacheof(list(/obj/machinery, /obj/structure))) diff --git a/code/_globalvars/logging_vars.dm b/code/_globalvars/logging_vars.dm index 0f968923ffc2..1e448d1be029 100644 --- a/code/_globalvars/logging_vars.dm +++ b/code/_globalvars/logging_vars.dm @@ -29,8 +29,6 @@ GLOBAL_VAR(gc_log) GLOBAL_PROTECT(gc_log) #endif -GLOBAL_LIST_EMPTY(jobMax) -GLOBAL_PROTECT(jobMax) GLOBAL_LIST_EMPTY(admin_log) GLOBAL_PROTECT(admin_log) GLOBAL_LIST_EMPTY(lastsignalers) @@ -38,12 +36,5 @@ GLOBAL_PROTECT(lastsignalers) GLOBAL_LIST_EMPTY(lawchanges) GLOBAL_PROTECT(lawchanges) -GLOBAL_LIST_EMPTY(combatlog) -GLOBAL_PROTECT(combatlog) -GLOBAL_LIST_EMPTY(IClog) -GLOBAL_PROTECT(IClog) -GLOBAL_LIST_EMPTY(OOClog) -GLOBAL_PROTECT(OOClog) - GLOBAL_DATUM_INIT(logging, /datum/logging, new /datum/logging()) diff --git a/code/_globalvars/mapping_vars.dm b/code/_globalvars/mapping_vars.dm index 67857902c530..ee12fedfde9b 100644 --- a/code/_globalvars/mapping_vars.dm +++ b/code/_globalvars/mapping_vars.dm @@ -5,7 +5,6 @@ GLOBAL_LIST_INIT(cardinal, list(NORTH, SOUTH, EAST, WEST)) GLOBAL_LIST_INIT(alldirs, list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) -GLOBAL_LIST_INIT(alldirs2, list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST, NORTH, SOUTH, EAST, WEST)) GLOBAL_LIST_INIT(diagonals, list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) GLOBAL_LIST(global_map) // This is the array of zlevels | list(list(1,5),list(4,3)) | becomes a 2D array of zlevels @@ -40,16 +39,14 @@ GLOBAL_LIST_EMPTY(ninjastart) GLOBAL_LIST_EMPTY(carplist) //list of all carp-spawn landmarks GLOBAL_LIST_EMPTY(syndicateofficer) -//away missions -GLOBAL_LIST_EMPTY(awaydestinations) //a list of landmarks that the warpgate can take you to +// Away missions +GLOBAL_LIST_EMPTY(awaydestinations) // SS220 EDIT - ADDITION //List of preloaded templates GLOBAL_LIST_EMPTY(map_templates) -GLOBAL_LIST_EMPTY(ruins_templates) GLOBAL_LIST_EMPTY(space_ruins_templates) GLOBAL_LIST_EMPTY(lava_ruins_templates) GLOBAL_LIST_EMPTY(shelter_templates) GLOBAL_LIST_EMPTY(shuttle_templates) GLOBAL_LIST_EMPTY(bridge_horizontal_templates) GLOBAL_LIST_EMPTY(bridge_vertical_templates) -GLOBAL_LIST_EMPTY(event_templates) diff --git a/code/_globalvars/misc_globals.dm b/code/_globalvars/misc_globals.dm index 08ad1d0ee606..db39391a7835 100644 --- a/code/_globalvars/misc_globals.dm +++ b/code/_globalvars/misc_globals.dm @@ -31,11 +31,7 @@ GLOBAL_LIST_INIT(paper_blacklist, list("java","onblur","onchange","onclick","ond "onkeypress","onkeyup","onload","onmousedown","onmousemove","onmouseout","onmouseover", \ "onmouseup","onreset","onselect","onsubmit","onunload")) -//Reverse of dir -GLOBAL_LIST_INIT(reverse_dir, list(2, 1, 3, 8, 10, 9, 11, 4, 6, 5, 7, 12, 14, 13, 15, 32, 34, 33, 35, 40, 42, 41, 43, 36, 38, 37, 39, 44, 46, 45, 47, 16, 18, 17, 19, 24, 26, 25, 27, 20, 22, 21, 23, 28, 30, 29, 31, 48, 50, 49, 51, 56, 58, 57, 59, 52, 54, 53, 55, 60, 62, 61, 63)) GLOBAL_VAR_INIT(gravity_is_on, 1) //basically unused, just one admin verb.. -// Recall time limit: 2 hours -GLOBAL_VAR_INIT(recall_time_limit, 72000) //apparently used for the comm console #define TAB "    " @@ -49,7 +45,6 @@ GLOBAL_VAR_INIT(gametime_offset, 432000) // 12:00 in seconds GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) // Station datacore, manifest, etc -GLOBAL_LIST_EMPTY(ability_verbs) // Create-level abilities GLOBAL_LIST_INIT(pipe_colors, list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "purple" = PIPE_COLOR_PURPLE)) /// Global list of all /datum/mod_theme diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 3a9bd855c7a1..361f75b4846e 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -85,7 +85,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_DODGE_ALL_THROWN_OBJECTS" = TRAIT_DODGE_ALL_OBJECTS, "TRAIT_SUPERMATTER_IMMUNE" = TRAIT_SUPERMATTER_IMMUNE, "TRAIT_BADASS" = TRAIT_BADASS, - "TRAIT_FORCED_STANDING" = TRAIT_FORCED_STANDING + "TRAIT_FORCED_STANDING" = TRAIT_FORCED_STANDING, + "TRAIT_MAGPULSE" = TRAIT_MAGPULSE ), /datum/mind = list( diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 5a0c22cbdbae..5cbbc279a538 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -252,11 +252,9 @@ return var/face_dir = get_cardinal_dir(src, A) if(!face_dir || forced_look == face_dir || A == src) - forced_look = null - to_chat(src, "Cancelled direction lock.") + clear_forced_look() return - forced_look = face_dir - to_chat(src, "You are now facing [dir2text(forced_look)]. To cancel this, shift-middleclick yourself.") + set_forced_look(A, FALSE) /* Middle shift-control-click @@ -266,13 +264,13 @@ return /mob/living/MiddleShiftControlClickOn(atom/A) + if(incapacitated()) + return var/face_uid = A.UID() if(forced_look == face_uid || A == src) - forced_look = null - to_chat(src, "Cancelled direction lock.") + clear_forced_look() return - forced_look = face_uid - to_chat(src, "You are now facing [A]. To cancel this, shift-middleclick yourself.") + set_forced_look(A, TRUE) // In case of use break glass /* diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index fa915e6e58fb..bca000eac812 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -1,8 +1,10 @@ /obj/screen/movable/action_button + desc = "CTRL-Shift click on this button to bind it to a hotkey." var/datum/action/linked_action var/actiontooltipstyle = "" screen_loc = null var/ordered = TRUE + var/datum/keybinding/mob/trigger_action_button/linked_keybind /obj/screen/movable/action_button/MouseDrop(over_object) if(locked && could_be_click_lag()) // in case something bad happend and game realised we dragged our ability instead of pressing it @@ -32,6 +34,9 @@ /obj/screen/movable/action_button/Click(location,control,params) var/list/modifiers = params2list(params) + if(modifiers["ctrl"] && modifiers["shift"]) + INVOKE_ASYNC(src, PROC_REF(set_to_keybind), usr) + return TRUE if(usr.next_click > world.time) return FALSE usr.changeNext_click(1) @@ -58,9 +63,32 @@ animate(src, transform = matrix(), time = 0.4 SECONDS, alpha = 255) return TRUE +/obj/screen/movable/action_button/proc/set_to_keybind(mob/user) + var/keybind_to_set_to = uppertext(input(user, "What keybind do you want to set this action button to?") as text) + if(keybind_to_set_to) + if(linked_keybind) + clean_up_keybinds(user) + var/datum/keybinding/mob/trigger_action_button/triggerer = new + triggerer.linked_action = linked_action + user.client.active_keybindings[keybind_to_set_to] += list(triggerer) + linked_keybind = triggerer + triggerer.binded_to = keybind_to_set_to + to_chat(user, "[src] has been binded to [keybind_to_set_to]!") + else if(linked_keybind) + clean_up_keybinds(user) + to_chat(user, "Your active keybinding on [src] has been cleared.") + /obj/screen/movable/action_button/AltClick(mob/user) return linked_action.AltTrigger() +/obj/screen/movable/action_button/proc/clean_up_keybinds(mob/owner) + if(linked_keybind) + owner.client.active_keybindings[linked_keybind.binded_to] -= (linked_keybind) + if(!length(owner.client.active_keybindings[linked_keybind.binded_to])) + owner.client.active_keybindings[linked_keybind.binded_to] = null + owner.client.active_keybindings -= linked_keybind.binded_to + QDEL_NULL(linked_keybind) + //Hide/Show Action Buttons ... Button /obj/screen/movable/action_button/hide_toggle name = "Hide Buttons" @@ -121,7 +149,14 @@ /obj/screen/movable/action_button/MouseEntered(location, control, params) . = ..() if(!QDELETED(src)) - openToolTip(usr, src, params, title = name, content = desc, theme = actiontooltipstyle) + if(!linked_keybind) + openToolTip(usr, src, params, title = name, content = desc, theme = actiontooltipstyle) + else + var/list/desc_information = list() + desc_information += desc + desc_information += "This action is currently bound to the [linked_keybind.binded_to] key." + desc_information = desc_information.Join(" ") + openToolTip(usr, src, params, title = name, content = desc_information, theme = actiontooltipstyle) /obj/screen/movable/action_button/MouseExited() closeToolTip(usr) diff --git a/code/_onclick/hud/ai_hud.dm b/code/_onclick/hud/ai_hud.dm index 63783a04467d..8579060078bf 100644 --- a/code/_onclick/hud/ai_hud.dm +++ b/code/_onclick/hud/ai_hud.dm @@ -16,7 +16,7 @@ /obj/screen/ai/camera_list/Click() var/mob/living/silicon/ai/AI = usr - var/camera = input(AI, "Choose which camera you want to view", "Cameras") as null|anything in AI.get_camera_list() + var/camera = tgui_input_list(AI, "Choose which camera you want to view", "Cameras", AI.get_camera_list()) AI.ai_camera_list(camera) /obj/screen/ai/camera_track @@ -26,7 +26,7 @@ /obj/screen/ai/camera_track/Click() if(isAI(usr)) var/mob/living/silicon/ai/AI = usr - var/target_name = input(AI) as null|anything in AI.trackable_mobs() + var/target_name = tgui_input_list(AI, "Choose a target you want to track", "Tracking", AI.trackable_mobs()) if(target_name) AI.ai_camera_track(target_name) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 24a186227b70..0b70b7f28f08 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -337,6 +337,16 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." var/mob/living/L = usr return L.resist() +/obj/screen/alert/direction_lock + name = "Direction Lock" + desc = "You are facing only one direction, slowing your movement down. Click here to stop the direction lock." + icon_state = "direction_lock" + +/obj/screen/alert/direction_lock/Click() + if(isliving(usr)) + var/mob/living/L = usr + return L.clear_forced_look() + //Constructs /obj/screen/alert/holy_fire name = "Holy Fire" @@ -416,11 +426,11 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the if(length(nymphs) == 1) var/mob/living/simple_animal/diona/D = nymphs[1] - D.split() + D.split(TRUE) else var/mob/living/simple_animal/diona/D = input("Select a nymph to drop:", "Nymph Dropping", nymphs[1]) as anything in nymphs if(D in usr.contents) - D.split() + D.split(TRUE) //Need to cover all use cases - emag, illegal upgrade module, malf AI hack, traitor cyborg /obj/screen/alert/hacked diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index 87dd423159ad..451e4270fe78 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -1,6 +1,5 @@ #define NEXT_PAGE_ID "__next__" #define DEFAULT_CHECK_DELAY 20 -#define ANIM_SPEED 0.5 GLOBAL_LIST_EMPTY(radial_menus) @@ -44,6 +43,14 @@ GLOBAL_LIST_EMPTY(radial_menus) if(usr.client == parent.current_user) parent.finished = TRUE +/obj/screen/radial/center/MouseEntered(location, control, params) + . = ..() + openToolTip(usr, src, params, title = name) + +/obj/screen/radial/center/MouseExited(location, control, params) + . = ..() + closeToolTip(usr) + /datum/radial_menu var/list/choices = list() //List of choice id's var/list/choices_icons = list() //choice_id -> icon @@ -55,8 +62,9 @@ GLOBAL_LIST_EMPTY(radial_menus) var/list/obj/screen/elements = list() var/obj/screen/radial/center/close_button var/client/current_user - var/atom/anchor - var/image/menu_holder + var/atom/movable/anchor + var/pixel_x_difference + var/pixel_y_difference var/finished = FALSE var/datum/callback/custom_check_callback var/next_check = 0 @@ -73,39 +81,7 @@ GLOBAL_LIST_EMPTY(radial_menus) var/hudfix_method = TRUE //TRUE to change anchor to user, FALSE to shift by py_shift var/py_shift = 0 - var/entry_animation = TRUE -//If we swap to vis_contens inventory these will need a redo -/datum/radial_menu/proc/check_screen_border(mob/user) - var/atom/movable/AM = anchor - if(!istype(AM)) - return - var/mob/living/carbon/H - if(ishuman(user)) - H = user - if((AM in user.client.screen) || (H && (AM in H.internal_organs))) - if(hudfix_method) - anchor = user - else - py_shift = 32 - restrict_to_dir(NORTH) //I was going to parse screen loc here but that's more effort than it's worth. - -//Sets defaults -//These assume 45 deg min_angle -/datum/radial_menu/proc/restrict_to_dir(dir) - switch(dir) - if(NORTH) - starting_angle = 270 - ending_angle = 135 - if(SOUTH) - starting_angle = 90 - ending_angle = 315 - if(EAST) - starting_angle = 0 - ending_angle = 225 - if(WEST) - starting_angle = 180 - ending_angle = 45 /datum/radial_menu/proc/setup_menu() if(ending_angle > starting_angle) @@ -143,18 +119,21 @@ GLOBAL_LIST_EMPTY(radial_menus) page_data[page] = current pages = page current_page = 1 - update_screen_objects(anim = entry_animation) + update_screen_objects() -/datum/radial_menu/proc/update_screen_objects(anim = FALSE) +/datum/radial_menu/proc/update_screen_objects() var/list/page_choices = page_data[current_page] var/angle_per_element = round(zone / page_choices.len) + if(current_user.mob.z && anchor.z) + pixel_x_difference = ((world.icon_size * anchor.x) + anchor.step_x + anchor.pixel_x) - ((world.icon_size * current_user.mob.x) + current_user.mob.step_x + current_user.mob.pixel_x) + pixel_y_difference = ((world.icon_size * anchor.y) + anchor.step_y + anchor.pixel_y) - ((world.icon_size * current_user.mob.y) + current_user.mob.step_y + current_user.mob.pixel_y) for(var/i in 1 to elements.len) var/obj/screen/radial/E = elements[i] var/angle = WRAP(starting_angle + (i - 1) * angle_per_element, 0, 360) if(i > page_choices.len) HideElement(E) else - SetElement(E,page_choices[i], angle, anim = anim, anim_order = i) + SetElement(E,page_choices[i], angle) /datum/radial_menu/proc/HideElement(obj/screen/radial/slice/E) E.cut_overlays() @@ -165,20 +144,13 @@ GLOBAL_LIST_EMPTY(radial_menus) E.choice = null E.next_page = FALSE -/datum/radial_menu/proc/SetElement(obj/screen/radial/slice/E, choice_id, angle, anim, anim_order) +/datum/radial_menu/proc/SetElement(obj/screen/radial/slice/E, choice_id, angle) //Position - var/py = round(cos(angle) * radius) + py_shift - var/px = round(sin(angle) * radius) - if(anim) - var/timing = anim_order * ANIM_SPEED - var/matrix/starting = matrix() - starting.Scale(0.1, 0.1) - E.transform = starting - var/matrix/TM = matrix() - animate(E, pixel_x = px, pixel_y = py, transform = TM, time = timing) - else - E.pixel_y = py - E.pixel_x = px + E.pixel_y = round(cos(angle) * radius) + py_shift + E.pixel_x = round(sin(angle) * radius) + E.screen_loc = "CENTER:[E.pixel_x + pixel_x_difference],CENTER:[E.pixel_y + pixel_y_difference]" + + current_user.screen += E //Visuals E.alpha = 255 @@ -245,25 +217,22 @@ GLOBAL_LIST_EMPTY(radial_menus) update_screen_objects() /datum/radial_menu/proc/show_to(mob/M) - if(current_user) - hide() if(!M.client || !anchor) return - current_user = M.client - //Blank - menu_holder = image(icon = 'icons/effects/effects.dmi', loc = anchor, icon_state = "nothing", layer = ABOVE_HUD_LAYER) - menu_holder.appearance_flags |= KEEP_APART - menu_holder.vis_contents += elements + close_button - current_user.images += menu_holder - -/datum/radial_menu/proc/hide() - if(current_user) - current_user.images -= menu_holder + close_button.screen_loc = "CENTER:[pixel_x_difference],CENTER:[pixel_y_difference]" + current_user.screen += close_button /datum/radial_menu/proc/wait(mob/user, atom/anchor, require_near = FALSE) + var/last_location = user.loc while(current_user && !finished && !selected_choice) - if(require_near && !user.Adjacent(anchor)) - return + if(require_near) + var/turf/our_turf = get_turf(user) + if(!our_turf.Adjacent(get_turf(anchor))) + return + if(last_location != user.loc) + update_screen_objects() + close_button.screen_loc = "CENTER:[pixel_x_difference],CENTER:[pixel_y_difference]" + last_location = user.loc if(custom_check_callback && next_check < world.time) if(!custom_check_callback.Invoke()) return @@ -273,7 +242,6 @@ GLOBAL_LIST_EMPTY(radial_menus) /datum/radial_menu/Destroy() Reset() - hide() QDEL_LIST_CONTENTS(elements) QDEL_NULL(close_button) anchor = null @@ -299,8 +267,11 @@ GLOBAL_LIST_EMPTY(radial_menus) menu.radius = radius if(istype(custom_check)) menu.custom_check_callback = custom_check - menu.anchor = anchor - menu.check_screen_border(user) //Do what's needed to make it look good near borders or on hud + if(anchor in user.client.screen) + menu.anchor = user + else + menu.anchor = anchor + menu.current_user = user.client menu.set_choices(choices) menu.show_to(user) menu.wait(user, anchor, require_near) @@ -329,7 +300,7 @@ GLOBAL_LIST_EMPTY(radial_menus) if(!istype(possible_atom)) stack_trace("radial_menu_helper was passed a non-atom (\"[possible_atom]\", [possible_atom.type]) as a choice") continue - var/mutable_appearance/atom_appearance = new(possible_atom.appearance) + var/mutable_appearance/atom_appearance = mutable_appearance(possible_atom.icon, possible_atom.icon_state, possible_atom.layer) var/hover_outline_index = possible_atom.get_filter("hover_outline") if(!isnull(hover_outline_index)) @@ -350,5 +321,3 @@ GLOBAL_LIST_EMPTY(radial_menus) return return return_choices[chosen_key] - -#undef ANIM_SPEED diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index ea78bd776953..abde11138fa9 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -26,12 +26,17 @@ /obj/item/proc/pre_attack(atom/A, mob/living/user, params) //do stuff before attackby! if(SEND_SIGNAL(src, COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE - if(is_hot(src) && A.reagents && !ismob(A)) + + if(SEND_SIGNAL(A, COMSIG_ITEM_BEING_ATTACKED, src, user, params) & COMPONENT_CANCEL_ATTACK_CHAIN) + return TRUE + + var/temperature = get_heat() + if(temperature && A.reagents && !ismob(A) && !istype(A, /obj/item/clothing/mask/cigarette)) var/reagent_temp = A.reagents.chem_temp - var/time = (reagent_temp / 10) / (is_hot(src) / 1000) + var/time = (reagent_temp / 10) / (temperature / 1000) if(do_after_once(user, time, TRUE, user, TRUE, attempt_cancel_message = "You stop heating up [A].")) to_chat(user, "You heat [A] with [src].") - A.reagents.temperature_reagents(is_hot(src)) + A.reagents.temperature_reagents(temperature) return TRUE //return FALSE to avoid calling attackby after this proc does stuff // No comment diff --git a/code/controllers/configuration/sections/redis_configuration.dm b/code/controllers/configuration/sections/redis_configuration.dm index 347cae9282f2..45661f3643b5 100644 --- a/code/controllers/configuration/sections/redis_configuration.dm +++ b/code/controllers/configuration/sections/redis_configuration.dm @@ -10,7 +10,7 @@ // UNIT TESTS ARE DEFINED - USE CUSTOM CI VALUES #ifdef UNIT_TESTS - enabled = TRUE + // enabled = TRUE #else // Load the normal config. Were not in CI mode diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 3fb4ad3dda0a..bfaae9a4d2b4 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -84,7 +84,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new /datum/controller/master/New() if(!random_seed) #ifdef UNIT_TESTS - random_seed = 29051994 + random_seed = 220 // SS220 EDIT #else random_seed = rand(1, 1e9) #endif diff --git a/code/controllers/subsystem/SSjobs.dm b/code/controllers/subsystem/SSjobs.dm index 0f18a2ff0298..2197594c0d64 100644 --- a/code/controllers/subsystem/SSjobs.dm +++ b/code/controllers/subsystem/SSjobs.dm @@ -473,7 +473,7 @@ SUBSYSTEM_DEF(jobs) var/turf/T = null var/obj/S = null for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list) - if(sloc.name != rank) + if(sloc.name != rank && sloc.name != job.relate_job) // SS220 EDIT - Novice Jobs - Jobs relate module continue if(locate(/mob/living) in sloc.loc) continue diff --git a/code/controllers/subsystem/SSticker.dm b/code/controllers/subsystem/SSticker.dm index 41557b219329..447ed03b9e4e 100644 --- a/code/controllers/subsystem/SSticker.dm +++ b/code/controllers/subsystem/SSticker.dm @@ -143,7 +143,7 @@ SUBSYSTEM_DEF(ticker) var/list/pickable_types = list() for(var/x in subtypesof(/datum/map)) var/datum/map/M = x - if(initial(M.voteable)) + if(initial(M.voteable) && length(GLOB.clients) >= initial(M.min_players_random)) pickable_types += M var/datum/map/target_map = pick(pickable_types) @@ -264,10 +264,6 @@ SUBSYSTEM_DEF(ticker) create_characters() // Create player characters and transfer clients log_debug("Creating characters took [stop_watch(watch)]s") - watch = start_watch() - populate_spawn_points() // Put mobs in their spawn locations - log_debug("Populating spawn points took [stop_watch(watch)]s") - // Gather everyones minds for(var/mob/living/player in GLOB.player_list) if(player.mind) @@ -580,7 +576,7 @@ SUBSYSTEM_DEF(ticker) end_of_round_info += "[law.get_index()]. [law.law]" if(dronecount) - end_of_round_info += "There [dronecount > 1 ? "were" : "was"] [dronecount] industrious maintenance [dronecount > 1 ? "drones" : "drone"] this round." + end_of_round_info += "There [dronecount > 1 ? "were" : "was"] [dronecount] industrious maintenance [dronecount > 1 ? "drones" : "drone"] this round." if(length(mode.eventmiscs)) for(var/datum/mind/eventmind in mode.eventmiscs) diff --git a/code/datums/action.dm b/code/datums/action.dm index 52e96b4d63bd..0bdd5c4a0a36 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -26,8 +26,10 @@ button.linked_action = src button.name = name button.actiontooltipstyle = buttontooltipstyle - if(desc) - button.desc = desc + var/list/our_description = list() + our_description += desc + our_description += button.desc + button.desc = our_description.Join(" ") /datum/action/Destroy() if(owner) @@ -55,6 +57,7 @@ return if(M.client) M.client.screen -= button + button.clean_up_keybinds(M) button.moved = FALSE //so the button appears in its normal position when given to another owner. button.locked = FALSE M.actions -= src @@ -69,9 +72,6 @@ Trigger() return FALSE -/datum/action/proc/Process() - return - /datum/action/proc/override_location() // Override to set coordinates manually return @@ -113,7 +113,6 @@ else button.icon = button_icon button.icon_state = background_icon_state - button.desc = desc ApplyIcon(button) var/obj/effect/proc_holder/spell/S = target @@ -565,7 +564,10 @@ var/obj/effect/proc_holder/spell/S = target S.action = src name = S.name - desc = S.desc + var/list/our_description = list() + our_description += S.desc + our_description += button.desc + button.desc = our_description.Join(" ") button_icon = S.action_icon button_icon_state = S.action_icon_state background_icon_state = S.action_background_icon_state diff --git a/code/datums/atom_hud.dm b/code/datums/atom_hud.dm index ff924e697d1e..e79861e5877e 100644 --- a/code/datums/atom_hud.dm +++ b/code/datums/atom_hud.dm @@ -10,6 +10,7 @@ GLOBAL_LIST_INIT(huds, list( DATA_HUD_DIAGNOSTIC_BASIC = new/datum/atom_hud/data/diagnostic/basic(), DATA_HUD_DIAGNOSTIC_ADVANCED = new/datum/atom_hud/data/diagnostic/advanced(), DATA_HUD_HYDROPONIC = new/datum/atom_hud/data/hydroponic(), + DATA_HUD_JANITOR = new/datum/atom_hud/data/janitor(), ANTAG_HUD_CULT = new/datum/atom_hud/antag(), ANTAG_HUD_REV = new/datum/atom_hud/antag(), ANTAG_HUD_OPS = new/datum/atom_hud/antag(), diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index 27ee68f0189d..4c4ea93241a2 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -259,20 +259,6 @@ /datum/component/proc/InheritComponent(datum/component/C, i_am_original) return - -/** - * Called on a component when a component of the same type was added to the same parent with [COMPONENT_DUPE_SELECTIVE] - * - * See [/datum/component/var/dupe_mode] - * - * `C`'s type will always be the same of the called component - * - * return TRUE if you are absorbing the component, otherwise FALSE if you are fine having it exist as a duplicate component - */ -/datum/component/proc/CheckDupeComponent(datum/component/C, ...) - return - - /** * Callback Just before this component is transferred * @@ -443,12 +429,6 @@ var/list/arguments = raw_args.Copy() arguments[1] = new_comp var/make_new_component = TRUE - for(var/i in GetComponents(new_type)) - var/datum/component/C = i - if(C.CheckDupeComponent(arglist(arguments))) - make_new_component = FALSE - QDEL_NULL(new_comp) - break if(!new_comp && make_new_component) new_comp = new nt(raw_args) else if(!new_comp) diff --git a/code/datums/components/proximity_monitor.dm b/code/datums/components/proximity_monitor.dm index a24313d35752..e4a3112f8606 100644 --- a/code/datums/components/proximity_monitor.dm +++ b/code/datums/components/proximity_monitor.dm @@ -248,172 +248,6 @@ var/obj/checker = proximity_checkers[index++] checker.loc = T - -/** - * # Advanced Proximity Monitor - * - * This component functions similar to the basic version, however it has some extra features: - * - * First of all, if the field radius is more than 1 tile, you have the option to make a distinction between inner proximity checkers, versus ones along the edge. - * You can specifiy which type of [/obj/effect/abstract/proximity_checker] objects you want to use for both inner, and edge checkers. - * - * Secondly, the advanced proximity monitor has the ability to use processing (the `process` proc). This is optional however. - * Each proximity checker object can process itself or other things on it's turf as needed. It's up to you on how you want to use it. - * Inner and edge checkers can process thing seperately. You can turn off processing for field checkers and have only edge checkers process, and vice versa. - */ -/datum/component/proximity_monitor/advanced - name = "Advanced energy field" - field_checker_type = /obj/effect/abstract/proximity_checker/advanced/inner_field - /// The type of checker object that should be used for the field edges. - var/edge_checker_type = /obj/effect/abstract/proximity_checker/advanced/edge_field - /// Make a distinction between edge checkers and field checkers seperately. - var/uses_edge_checkers = FALSE - /// Do any of the proximity_checker objects need to process things sitting on their tile? - var/requires_processing = FALSE - /// Should the main field checkers process things on their tile? - var/process_field_checkers = FALSE - /// Should the edge field checkers process things on their tile? - var/process_edge_checkers = FALSE - /// A list of proximity_checkers in the inner field. Excludes checkers on the edge of the field. - var/list/field_checkers - /// A list of proximity_checkers on the edge of the field. - var/list/edge_checkers - -/datum/component/proximity_monitor/advanced/Initialize(_radius = 1, _always_active = FALSE) - . = ..() - if(requires_processing) - START_PROCESSING(SSfields, src) - -/datum/component/proximity_monitor/advanced/Destroy(force, silent) - STOP_PROCESSING(SSfields, src) - QDEL_LIST_CONTENTS(field_checkers) - QDEL_LIST_CONTENTS(edge_checkers) - return ..() - -/datum/component/proximity_monitor/advanced/create_prox_checkers() - if(!uses_edge_checkers) - ..() // We don't need to make a distinction between field and edge checkers, use the parent. - if(process_field_checkers) - field_checkers = proximity_checkers.Copy() // Still allows for field checkers to use processing. - return - - LAZYINITLIST(proximity_checkers) - LAZYINITLIST(field_checkers) - LAZYINITLIST(edge_checkers) - - var/turf/parent_turf = get_turf(parent) - for(var/T in RANGE_TURFS(radius, parent_turf)) - if(get_dist(T, parent_turf) == radius) - edge_checkers += create_single_prox_checker(T, edge_checker_type) - continue - field_checkers += create_single_prox_checker(T) - -/datum/component/proximity_monitor/advanced/recenter_prox_checkers() - if(!uses_edge_checkers) - return ..() // We don't need to make a distinction between field and edge checkers, use the parent. - - var/turf/parent_turf = get_turf(parent) - var/inner_index = 1 - var/edge_index = 1 - - for(var/T in RANGE_TURFS(radius, parent_turf)) - var/obj/checker - if(get_dist(T, parent_turf) == radius) // If it's at this distance, it's on the edge of the field. - checker = edge_checkers[edge_index++] - checker.loc = T - continue - checker = field_checkers[inner_index++] - checker.loc = T - -/datum/component/proximity_monitor/advanced/process() - if(process_field_checkers) - for(var/checker in field_checkers) - process_inner_checker(checker) - if(process_edge_checkers) - for(var/checker in field_checkers) - process_edge_checker(checker) - -/** - * Base proc. All processing-related actions associated with inner proximity checkers should go here. - * - * Arguments: - * * obj/effect/abstract/proximity_checker/advanced/inner_field/F - the proximity checker to process - */ -/datum/component/proximity_monitor/advanced/proc/process_inner_checker(obj/effect/abstract/proximity_checker/advanced/inner_field/F) - return - -/** - * Base proc. All processing-related actions associated with edge proximity checkers should go here. - * - * Arguments: - * * obj/effect/abstract/proximity_checker/advanced/edge_field/F - the proximity checker to process - */ -/datum/component/proximity_monitor/advanced/proc/process_edge_checker(obj/effect/abstract/proximity_checker/advanced/edge_field/F) - return - -/** - * Base proc. Checks if `AM` can pass the inner field checker. - * - * Arguments: - * * atom/movable/AM - the atom trying to pass the inner field checker object - * * obj/effect/abstract/proximity_checker/advanced/inner_field/F - the proximity checker object `AM` is trying to pass - * * turf/entering - the turf `AM` is entering from - */ -/datum/component/proximity_monitor/advanced/proc/inner_field_canpass(atom/movable/AM, obj/effect/abstract/proximity_checker/advanced/inner_field/F, turf/entering) - return TRUE - -/** - * Base proc. Called when something crosses an inner field checker. - * - * Arguments: - * * atom/movable/AM - the atom crossing the inner field checker object - * * obj/effect/abstract/proximity_checker/advanced/inner_field/F - the proximity checker object `AM` getting crossed - */ -/datum/component/proximity_monitor/advanced/proc/inner_field_crossed(atom/movable/AM, obj/effect/abstract/proximity_checker/advanced/inner_field/F) - return TRUE - -/** - * Base proc. Called when something uncrosses an inner field checker. - * - * Arguments: - * * atom/movable/AM - the atom uncrossing the inner field checker object - * * obj/effect/abstract/proximity_checker/advanced/inner_field/F - the proximity checker object `AM` getting uncrossed - */ -/datum/component/proximity_monitor/advanced/proc/inner_field_uncrossed(atom/movable/AM, obj/effect/abstract/proximity_checker/advanced/inner_field/F) - return TRUE - -/** - * Base proc. Checks if `AM` can pass the edge field checker. - * - * Arguments: - * * atom/movable/AM - the atom trying to pass the edge field checker object - * * obj/effect/abstract/proximity_checker/advanced/edge_field/F - the proximity checker object `AM` is trying to pass - * * turf/entering - the turf `AM` is entering from - */ -/datum/component/proximity_monitor/advanced/proc/edge_field_canpass(atom/movable/AM, obj/effect/abstract/proximity_checker/advanced/edge_field/F, turf/entering) - return TRUE - -/** - * Base proc. Called when something crosses an edge field checker. - * - * Arguments: - * * atom/movable/AM - the atom crossing the edge field checker object - * * obj/effect/abstract/proximity_checker/advanced/edge_field/F - the proximity checker object `AM` getting crossed - */ -/datum/component/proximity_monitor/advanced/proc/edge_field_crossed(atom/movable/AM, obj/effect/abstract/proximity_checker/advanced/edge_field/F) - return TRUE - -/** - * Base proc. Called when something uncrosses an edge field checker. - * - * Arguments: - * * atom/movable/AM - the atom uncrossing the edge field checker object - * * obj/effect/abstract/proximity_checker/advanced/edge_field/F - the proximity checker object `AM` getting uncrossed - */ -/datum/component/proximity_monitor/advanced/proc/edge_field_uncrossed(atom/movable/AM, obj/effect/abstract/proximity_checker/advanced/edge_field/F) - return TRUE - - /** * # Basic Proximity Checker * @@ -452,70 +286,3 @@ . = ..() if(active && AM != monitor.hasprox_receiver && !(AM in monitor.nested_receiver_locs)) monitor.hasprox_receiver.HasProximity(AM) - -/** - * # Advanced Proximity Checker - * - * Like basic proximity checkers, these objects can also detect proximity. - * However these are meant for when you need to have some additional (more advanced) behavior on top of what basic proximity checkers can do. - */ -/obj/effect/abstract/proximity_checker/advanced - name = "advanced proximity checker" - /// `hasprox_receivers`s advanced proximity monitor component. - var/datum/component/proximity_monitor/advanced/advanced_monitor - -/obj/effect/abstract/proximity_checker/advanced/Initialize(mapload, datum/component/proximity_monitor/advanced/P, _always_active) - advanced_monitor = P - return ..() - -/obj/effect/abstract/proximity_checker/advanced/Destroy() - advanced_monitor = null - return ..() - -/** - * # Inner Field Proximity Checker - * - * An advanced proximity checker object which sits on the the inner tiles of a field. - */ -/obj/effect/abstract/proximity_checker/advanced/inner_field - name = "inner field" - -/obj/effect/abstract/proximity_checker/advanced/inner_field/Destroy() - advanced_monitor.field_checkers -= src - return ..() - -/obj/effect/abstract/proximity_checker/advanced/inner_field/Crossed(atom/movable/AM, oldloc) - . = ..() - return advanced_monitor.inner_field_crossed(AM, src) - -/obj/effect/abstract/proximity_checker/advanced/inner_field/Uncrossed(atom/movable/AM, oldloc) - . = ..() - return advanced_monitor.inner_field_uncrossed(AM, src) - -/obj/effect/abstract/proximity_checker/advanced/inner_field/CanPass(atom/movable/mover, turf/target, height) - . = ..() - return advanced_monitor.inner_field_canpass(mover, src, target) - -/** - * # Edge Field Proximity Checker - * - * An advanced proximity checker object which sits on the outer edge tiles of a field. - */ -/obj/effect/abstract/proximity_checker/advanced/edge_field - name = "edge field" - -/obj/effect/abstract/proximity_checker/advanced/edge_field/Destroy() - advanced_monitor.edge_checkers -= src - return ..() - -/obj/effect/abstract/proximity_checker/advanced/edge_field/Crossed(atom/movable/AM, oldloc) - . = ..() - return advanced_monitor.edge_field_crossed(AM, src) - -/obj/effect/abstract/proximity_checker/advanced/edge_field/Uncrossed(atom/movable/AM) - . = ..() - return advanced_monitor.edge_field_uncrossed(AM, src) - -/obj/effect/abstract/proximity_checker/advanced/edge_field/CanPass(atom/movable/mover, turf/target, height) - . = ..() - return advanced_monitor.edge_field_canpass(mover, src, target) diff --git a/code/datums/components/surgery_initiator.dm b/code/datums/components/surgery_initiator.dm index c6aefce9bf84..e0a5c1bfcc73 100644 --- a/code/datums/components/surgery_initiator.dm +++ b/code/datums/components/surgery_initiator.dm @@ -129,7 +129,7 @@ procedure = S break else - procedure = input("Begin which procedure?", "Surgery", null, null) as null|anything in available_surgeries + procedure = tgui_input_list(user, "Begin which procedure?", "Surgery", available_surgeries) if(!procedure) return diff --git a/code/datums/components/tilted.dm b/code/datums/components/tilted.dm index c4e97ee6efd9..7027fdbc5e8d 100644 --- a/code/datums/components/tilted.dm +++ b/code/datums/components/tilted.dm @@ -82,14 +82,14 @@ if(user) user.visible_message( - "[user] begins to right [parent].", - "You begin to right [parent]." + "[user] begins to right [atom_parent].", + "You begin to right [atom_parent]." ) - if(!do_after(user, duration, TRUE, parent)) + if(!do_after(user, duration, TRUE, parent) || QDELETED(src)) return user.visible_message( - "[user] rights [parent].", - "You right [parent].", + "[user] rights [atom_parent].", + "You right [atom_parent].", "You hear a loud clang." ) @@ -98,7 +98,7 @@ atom_parent.unbuckle_all_mobs(TRUE) - SEND_SIGNAL(parent, COMSIG_MOVABLE_UNTILTED, user) + SEND_SIGNAL(atom_parent, COMSIG_MOVABLE_UNTILTED, user) atom_parent.layer = initial(atom_parent.layer) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 7baab0c11f85..582366258b0d 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -117,14 +117,20 @@ GLOBAL_LIST_EMPTY(PDA_Manifest) break var/list/all_jobs = get_job_datums() + var/is_custom_job = TRUE for(var/datum/job/J in all_jobs) var/list/alttitles = get_alternate_titles(J.title) - if(!J) continue + if(J.title == real_title) + is_custom_job = FALSE if(assignment in alttitles) real_title = J.title + is_custom_job = FALSE break + if(is_custom_job) + real_title = foundrecord.fields["real_rank"] + if(foundrecord) foundrecord.fields["rank"] = assignment foundrecord.fields["real_rank"] = real_title @@ -480,6 +486,25 @@ GLOBAL_VAR_INIT(record_id_num, 1001) clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "robotics_s") clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY) + + // SS220 ADDITION - START + if("Student Scientist") + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "student_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) + if("Intern") + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "intern_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY) + if("Security Cadet") + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "cadet_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY) + if("Trainee Engineer") + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "trainee_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "orange"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY) + // SS220 ADDITION - END + if("Syndicate Agent") clothes_s = new /icon('icons/mob/clothing/under/syndicate.dmi', "syndicate_s") clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY) diff --git a/code/datums/emote.dm b/code/datums/emote.dm index 938e73e5a666..1cb1668e1182 100644 --- a/code/datums/emote.dm +++ b/code/datums/emote.dm @@ -182,7 +182,7 @@ var/suppressed = FALSE // Keep em quiet if they can't speak - if(!can_vocalize_emotes(user) && (emote_type & (EMOTE_MOUTH | EMOTE_AUDIBLE) || emote_type & (EMOTE_MOUTH | EMOTE_SOUND))) + if(!can_vocalize_emotes(user) && (emote_type & (EMOTE_MOUTH | EMOTE_AUDIBLE))) var/noise_emitted = pick(muzzled_noises) suppressed = TRUE msg = "makes \a [noise_emitted] noise." @@ -215,12 +215,12 @@ for(var/mob/dead/observer/ghost in viewers(user)) ghost.show_message("[displayed_msg]", EMOTE_VISIBLE) - else if(emote_type & (EMOTE_AUDIBLE | EMOTE_SOUND) && !user.mind?.miming) + else if((emote_type & EMOTE_AUDIBLE) && !user.mind?.miming) user.audible_message(displayed_msg, deaf_message = "You see how [user] [msg]") else user.visible_message(displayed_msg, blind_message = "You hear how someone [msg]") - if(!(emote_type & (EMOTE_FORCE_NO_RUNECHAT | EMOTE_SOUND) || suppressed) && !isobserver(user)) + if(!((emote_type & EMOTE_FORCE_NO_RUNECHAT) || suppressed) && !isobserver(user)) runechat_emote(user, msg) SEND_SIGNAL(user, COMSIG_MOB_EMOTED(key), src, key, emote_type, message, intentional) diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm index 170f6773b1d1..6ce46ac564cd 100644 --- a/code/datums/helper_datums/map_template.dm +++ b/code/datums/helper_datums/map_template.dm @@ -143,7 +143,6 @@ continue GLOB.map_templates[R.name] = R - GLOB.ruins_templates[R.name] = R if(istype(R, /datum/map_template/ruin/lavaland)) GLOB.lava_ruins_templates[R.name] = R @@ -195,5 +194,4 @@ var/datum/map_template/event/E = new event_type() - GLOB.event_templates[E.event_id] = E GLOB.map_templates[E.event_id] = E diff --git a/code/datums/keybindings/emote_keybinds.dm b/code/datums/keybindings/emote_keybinds.dm index 4b99ae192997..f81ed46cd943 100644 --- a/code/datums/keybindings/emote_keybinds.dm +++ b/code/datums/keybindings/emote_keybinds.dm @@ -296,31 +296,31 @@ return isbrain(M) && ..() /datum/keybinding/emote/carbon/brain/alarm - linked_emote = /datum/emote/living/carbon/brain/alarm + linked_emote = /datum/emote/living/brain/alarm name = "Alarm" /datum/keybinding/emote/carbon/brain/alert - linked_emote = /datum/emote/living/carbon/brain/alert + linked_emote = /datum/emote/living/brain/alert name = "Alert" /datum/keybinding/emote/carbon/brain/notice - linked_emote = /datum/emote/living/carbon/brain/notice + linked_emote = /datum/emote/living/brain/notice name = "Notice" /datum/keybinding/emote/carbon/brain/flash - linked_emote = /datum/emote/living/carbon/brain/flash + linked_emote = /datum/emote/living/brain/flash name = "Flash" /datum/keybinding/emote/carbon/brain/whistle - linked_emote = /datum/emote/living/carbon/brain/whistle + linked_emote = /datum/emote/living/brain/whistle name = "Whistle" /datum/keybinding/emote/carbon/brain/beep - linked_emote = /datum/emote/living/carbon/brain/beep + linked_emote = /datum/emote/living/brain/beep name = "Beep" /datum/keybinding/emote/carbon/brain/boop - linked_emote = /datum/emote/living/carbon/brain/boop + linked_emote = /datum/emote/living/brain/boop name = "Boop" /datum/keybinding/emote/carbon/human diff --git a/code/datums/keybindings/mob_keybinds.dm b/code/datums/keybindings/mob_keybinds.dm index c870739da56e..c2f782dd024d 100644 --- a/code/datums/keybindings/mob_keybinds.dm +++ b/code/datums/keybindings/mob_keybinds.dm @@ -224,3 +224,13 @@ /datum/keybinding/mob/target/l_foot name = "Target Left Foot" body_part = BODY_ZONE_PRECISE_L_FOOT + +/datum/keybinding/mob/trigger_action_button // Don't add a name to this, shouldn't show up in the prefs menu + var/datum/action/linked_action + var/binded_to // these are expected to actually get deleted at some point, to prevent hard deletes we need to know where to remove them from the clients list + +/datum/keybinding/mob/trigger_action_button/down(client/C) + . = ..() + if(C.mob.next_click > world.time) + return + linked_action.Trigger() diff --git a/code/datums/mind.dm b/code/datums/mind.dm index edded43f23ad..5ed6fa83c48b 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -56,8 +56,6 @@ var/miming = 0 // Mime's vow of silence /// A list of all the antagonist datums that the player is (does not include undatumized antags) var/list/antag_datums - /// A lazy list of all teams the player is part of but doesnt have an antag role for, (i.e. a custom admin team) - var/list/teams var/antag_hud_icon_state = null //this mind's ANTAG_HUD should have this icon_state var/datum/atom_hud/antag/antag_hud = null //this mind's antag HUD @@ -226,11 +224,6 @@ for(var/datum/antagonist/A as anything in antag_datums) if(A.has_antag_objectives(include_team)) // this checks teams also return TRUE - // For custom non-antag role teams - if(include_team && LAZYLEN(teams)) - for(var/datum/team/team as anything in teams) - if(team.objective_holder.has_objectives()) - return TRUE return FALSE /** @@ -248,11 +241,6 @@ if(team) // have to make asure a team exists here, team?. does not work below because it will add the null to the list all_objectives += team.objective_holder.get_objectives() // Get all of their teams' objectives - // For custom non-antag role teams - if(include_team && LAZYLEN(teams)) - for(var/datum/team/team as anything in teams) - all_objectives += team.objective_holder.get_objectives() - return all_objectives /** diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index b9c3e8c7ebf6..9c457d9c7209 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -1020,7 +1020,7 @@ /obj/item/stack/tile/plasteel = 7 ) -/datum/outfit/admin/tournament_janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) +/datum/outfit/admin/tournament/tournament_janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() if(visualsOnly) return diff --git a/code/datums/outfits/outfit_debug.dm b/code/datums/outfits/outfit_debug.dm index 25656e065844..28460989c297 100644 --- a/code/datums/outfits/outfit_debug.dm +++ b/code/datums/outfits/outfit_debug.dm @@ -26,9 +26,9 @@ toggle_helmet = TRUE cybernetic_implants = list( - /obj/item/organ/internal/cyberimp/arm/surgery/advanced, + /obj/item/organ/internal/cyberimp/arm/surgery/debug, /obj/item/organ/internal/cyberimp/chest/nutriment/hardened, - /obj/item/organ/internal/cyberimp/arm/janitorial/advanced + /obj/item/organ/internal/cyberimp/arm/janitorial/debug ) @@ -144,20 +144,34 @@ righthand_file = 'icons/mob/inhands/items_righthand.dmi' w_class = WEIGHT_CLASS_SMALL var/datum/species/selected_species - var/valid_species = list() + var/activate_mind = FALSE + +/obj/item/debug/human_spawner/examine(mob/user) + . = ..() + . += "Alt-Click to toggle mind-activation on spawning." /obj/item/debug/human_spawner/afterattack(atom/target, mob/user, proximity) ..() - if(isturf(target)) - var/mob/living/carbon/human/H = new /mob/living/carbon/human(target) - if(selected_species) - H.setup_dna(selected_species.type) + if(!isturf(target)) + return + var/mob/living/carbon/human/H = new /mob/living/carbon/human(target) + if(selected_species) + H.setup_dna(selected_species.type) + if(activate_mind) + H.mind_initialize() /obj/item/debug/human_spawner/attack_self(mob/user) ..() var/choice = input("Select a species", "Human Spawner", null) in GLOB.all_species selected_species = GLOB.all_species[choice] +/obj/item/debug/human_spawner/AltClick(mob/user) + . = ..() + if(!Adjacent(user)) + return + activate_mind = !activate_mind + to_chat(user, "Any humans spawned will [activate_mind ? "" : "not "]spawn with an initialized mind.") + /obj/item/rcd/combat/admin name = "AVD-CNED RCD" max_matter = INFINITY @@ -185,7 +199,7 @@ to_chat(user, "[src] is now set to toolspeed [toolspeed]") playsound(src, 'sound/effects/pop.ogg', 50, 0) //Change the mode -/obj/item/organ/internal/cyberimp/arm/surgery/advanced +/obj/item/organ/internal/cyberimp/arm/surgery/debug name = "AVD-CNED surgical toolset implant" contents = newlist( /obj/item/scalpel/laser/manager/debug, @@ -197,7 +211,7 @@ /obj/item/bodyanalyzer/debug ) -/obj/item/organ/internal/cyberimp/arm/janitorial/advanced +/obj/item/organ/internal/cyberimp/arm/janitorial/debug name = "AVD-CNED janitorial toolset implant... is that a... tazer?" desc = "A set of advanced janitorial tools hidden behind a concealed panel on the user's arm with a tazer? What the fuck." parent_organ = "l_arm" // left arm by default cuz im lazy diff --git a/code/datums/outfits/vv_outfit.dm b/code/datums/outfits/vv_outfit.dm index 5ab0e3aba83a..1b986aa12140 100644 --- a/code/datums/outfits/vv_outfit.dm +++ b/code/datums/outfits/vv_outfit.dm @@ -3,10 +3,10 @@ /datum/outfit/varedit var/list/vv_values var/list/stored_access - var/update_id_name = FALSE //If the name of the human is same as the name on the id they're wearing we'll update provided id when equipping + var/update_id_name = FALSE // If the name of the human is same as the name on the id they're wearing we'll update provided id when equipping /datum/outfit/varedit/pre_equip(mob/living/carbon/human/H, visualsOnly) - H.delete_equipment() //Applying VV to wrong objects is not reccomended. + H.delete_equipment() // Applying VV to wrong objects is not reccomended. . = ..() /datum/outfit/varedit/proc/set_equipment_by_slot(slot, item_path) @@ -46,27 +46,29 @@ /proc/collect_vv(obj/item/I) - //Temporary/Internal stuff, do not copy these. - var/static/list/ignored_vars = list("vars","x","y","z","plane","layer","override","animate_movement","pixel_step_size","screen_loc","fingerprintslast","tip_timer") - - if(istype(I)) - var/list/vedits = list() - for(var/varname in I.vars) - if(!I.can_vv_get(varname)) - continue - if(varname in ignored_vars) - continue - var/vval = I.vars[varname] // Can't check initial() because it doesn't work on a list index - //Only text/numbers and icons variables to make it less weirdness prone. - if(!istext(vval) && !isnum(vval) && !isicon(vval)) - continue - vedits[varname] = I.vars[varname] - return vedits + if(!istype(I)) + return + + // Temporary/Internal stuff, do not copy these. + var/static/list/ignored_vars = list("vars", "x", "y", "z", "plane", "layer", "override", "animate_movement", "pixel_step_size", "screen_loc", "fingerprintslast", "tip_timer") + + var/list/vedits = list() + for(var/varname in I.vars) + if(!I.can_vv_get(varname)) + continue + if(varname in ignored_vars) + continue + var/vval = I.vars[varname] // Can't check initial() because it doesn't work on a list index + // Only text/numbers and icons variables to make it less weirdness prone. + if(!istext(vval) && !isnum(vval) && !isicon(vval)) + continue + vedits[varname] = I.vars[varname] + return vedits /mob/living/carbon/human/proc/copy_outfit() var/datum/outfit/varedit/O = new - //Copy equipment + // Copy equipment var/list/result = list() var/list/slots_to_check = list(SLOT_HUD_JUMPSUIT, SLOT_HUD_BACK, SLOT_HUD_OUTER_SUIT, SLOT_HUD_BELT, SLOT_HUD_GLOVES, SLOT_HUD_SHOES, SLOT_HUD_HEAD, SLOT_HUD_WEAR_MASK, SLOT_HUD_LEFT_EAR, SLOT_HUD_RIGHT_EAR, SLOT_HUD_GLASSES, SLOT_HUD_WEAR_ID, SLOT_HUD_WEAR_PDA, SLOT_HUD_SUIT_STORE, SLOT_HUD_LEFT_STORE, SLOT_HUD_RIGHT_STORE) for(var/s in slots_to_check) @@ -77,7 +79,7 @@ if(istype(I)) O.set_equipment_by_slot(s, I.type) - //Copy access + // Copy access O.stored_access = list() var/obj/item/id_slot = get_item_by_slot(SLOT_HUD_WEAR_ID) if(id_slot) @@ -86,8 +88,8 @@ if(ID && ID.registered_name == real_name) O.update_id_name = TRUE - //Copy hands - if(l_hand || r_hand) //Not in the mood to let outfits transfer amputees + // Copy hands + if(l_hand || r_hand) // Not in the mood to let outfits transfer amputees var/obj/item/left_hand = l_hand var/obj/item/right_hand = r_hand if(istype(left_hand)) @@ -102,7 +104,7 @@ result["RHAND"] = vedits O.vv_values = result - //Copy backpack contents if exist. + // Copy backpack contents if exist. var/obj/item/backpack = get_item_by_slot(SLOT_HUD_BACK) if(istype(backpack) && LAZYLEN(backpack.contents) > 0) var/list/typecounts = list() @@ -112,9 +114,9 @@ else typecounts[I.type] = 1 O.backpack_contents = typecounts - //TODO : Copy varedits from backpack stuff too. + // TODO : Copy varedits from backpack stuff too. - //Copy implants + // Copy implants O.implants = list() for(var/obj/item/implant/I in contents) if(istype(I)) @@ -134,7 +136,7 @@ if(istype(A)) O.accessories |= A - //Copy to outfit cache + // Copy to outfit cache var/outfit_name = stripped_input(usr, "Enter the outfit name") O.name = outfit_name GLOB.custom_outfits += O @@ -142,7 +144,8 @@ /datum/outfit/varedit/post_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - //Apply VV + + // Apply VV for(var/slot in vv_values) var/list/edits = vv_values[slot] var/obj/item/I @@ -155,15 +158,18 @@ I = H.get_item_by_slot(text2num(slot)) for(var/vname in edits) I.vv_edit_var(vname,edits[vname]) - //Apply access + + // Apply access var/obj/item/id_slot = H.get_item_by_slot(SLOT_HUD_WEAR_ID) - if(id_slot) - var/obj/item/card/id/card = id_slot.GetID() - if(istype(card)) - card.access |= stored_access - if(update_id_name) - card.registered_name = H.real_name - card.update_label() + if(!id_slot) + return + + var/obj/item/card/id/card = id_slot.GetID() + if(istype(card)) + card.access |= stored_access + if(update_id_name) + card.registered_name = H.real_name + card.update_label() /datum/outfit/varedit/get_json_data() . = .. () diff --git a/code/datums/position_point_vector.dm b/code/datums/position_point_vector.dm index f1e5ffc05b51..1cad3b52899f 100644 --- a/code/datums/position_point_vector.dm +++ b/code/datums/position_point_vector.dm @@ -23,7 +23,7 @@ return ATAN2((b.y - a.y), (b.x - a.x)) /// For positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess. -/datum/position +/datum/position var/x = 0 var/y = 0 var/z = 0 @@ -68,7 +68,7 @@ return new /datum/point_precise(src) /// A precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP! -/datum/point_precise +/datum/point_precise var/x = 0 var/y = 0 var/z = 0 @@ -83,7 +83,7 @@ return p /// First argument can also be a /datum/position or /atom. -/datum/point_precise/New(_x, _y, _z, _pixel_x = 0, _pixel_y = 0) +/datum/point_precise/New(_x, _y, _z, _pixel_x = 0, _pixel_y = 0) if(istype(_x, /datum/position)) var/datum/position/P = _x _x = P.x @@ -134,11 +134,11 @@ /datum/point_precise/vector /// Pixels per iteration - var/speed = 32 + var/speed = 32 var/iteration = 0 var/angle = 0 /// Calculated x movement amounts to prevent having to do trig every step. - var/mpx = 0 + var/mpx = 0 /// Calculated y movement amounts to prevent having to do trig every step. var/mpy = 0 var/starting_x = 0 //just like before, pixels from EDGE of map! This is set in initialize_location(). @@ -158,7 +158,7 @@ starting_z = z /// Same effect as initiliaze_location, but without setting the starting_x/y/z -/datum/point_precise/vector/proc/set_location(tile_x, tile_y, tile_z, p_x = 0, p_y = 0) +/datum/point_precise/vector/proc/set_location(tile_x, tile_y, tile_z, p_x = 0, p_y = 0) if(!isnull(tile_x)) x = ((tile_x - 1) * world.icon_size) + world.icon_size * 0.5 + p_x + 1 if(!isnull(tile_y)) @@ -214,9 +214,6 @@ v.increment(multiplier * amount) return v -/datum/point_precise/vector/proc/on_z_change() - return - /datum/point_precise/vector/processed //pixel_speed is per decisecond. var/last_process = 0 var/last_move = 0 diff --git a/code/datums/radio_frequency.dm b/code/datums/radio_frequency.dm index 764fd640881a..cf14ba3c956d 100644 --- a/code/datums/radio_frequency.dm +++ b/code/datums/radio_frequency.dm @@ -98,7 +98,7 @@ var/mob/living/carbon/human/H = M . = H.dna.species.name else if(isbrain(M)) - var/mob/living/carbon/brain/B = M + var/mob/living/brain/B = M . = B.get_race() else if(issilicon(M)) . = "Artificial Life" diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index d3d82d73aadf..57abc708635d 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -125,8 +125,8 @@ cost = 0 allow_duplicates = FALSE //will only spawn one variant of the ruin -/datum/map_template/ruin/lavaland/blood_drunk_miner/guidance - name = "Blood-Drunk Miner (Guidance)" +/datum/map_template/ruin/lavaland/blood_drunk_miner/guardian + name = "Blood-Drunk Miner (Guardian)" suffix = "lavaland_surface_blooddrunk2.dmm" /datum/map_template/ruin/lavaland/blood_drunk_miner/hunter diff --git a/code/datums/spell.dm b/code/datums/spell.dm index 3f5c82772e3f..a40432406b36 100644 --- a/code/datums/spell.dm +++ b/code/datums/spell.dm @@ -17,7 +17,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) to_chat(user, "[user.ranged_ability.name] has been disabled.") user.ranged_ability.remove_ranged_ability(user) return TRUE //TRUE for failed, FALSE for passed. - user.changeNext_click(CLICK_CD_CLICK_ABILITY) user.face_atom(A) return FALSE @@ -114,7 +113,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) var/smoke_type = SMOKE_NONE var/smoke_amt = 0 - var/critfailchance = 0 var/centcom_cancast = TRUE //Whether or not the spell should be allowed on the admin zlevel /// Whether or not the spell functions in a holy place var/holy_area_cancast = TRUE @@ -160,6 +158,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) if(!can_cast(user, charge_check, TRUE)) return FALSE + user.changeNext_click(CLICK_CD_CLICK_ABILITY) if(ishuman(user)) var/mob/living/carbon/human/caster = user if(caster.remoteview_target) @@ -360,10 +359,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) if(sound) playMagSound() - if(prob(critfailchance)) - critfail(targets) - else - cast(targets, user = user) + cast(targets, user = user) after_cast(targets, user) if(action) action.UpdateButtonIcon() @@ -434,9 +430,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) /obj/effect/proc_holder/spell/proc/cast(list/targets, mob/user = usr) return -/obj/effect/proc_holder/spell/proc/critfail(list/targets) - return - /obj/effect/proc_holder/spell/proc/revert_cast(mob/user = usr) //resets recharge or readds a charge cooldown_handler.revert_cast() custom_handler?.revert_cast(user, src) diff --git a/code/datums/spell_cooldown/spell_cooldown.dm b/code/datums/spell_cooldown/spell_cooldown.dm index aa08e9491e48..3d320bdca8a7 100644 --- a/code/datums/spell_cooldown/spell_cooldown.dm +++ b/code/datums/spell_cooldown/spell_cooldown.dm @@ -29,16 +29,12 @@ /datum/spell_cooldown/proc/should_end_cooldown() return !is_on_cooldown() -/datum/spell_cooldown/proc/end_recharge() - return - /datum/spell_cooldown/process() if(!spell_parent.action) stack_trace("[spell_parent.type] ended up with a null action") return PROCESS_KILL spell_parent.action.UpdateButtonIcon() if(should_end_cooldown()) - end_recharge() return PROCESS_KILL diff --git a/code/datums/spell_targeting/matter_eater_targeting.dm b/code/datums/spell_targeting/matter_eater_targeting.dm index 9a672576d8f1..a9f33c676768 100644 --- a/code/datums/spell_targeting/matter_eater_targeting.dm +++ b/code/datums/spell_targeting/matter_eater_targeting.dm @@ -40,7 +40,7 @@ continue possible_targets += O - var/atom/movable/target = input("Choose the target of your hunger.", "Targeting") as null|anything in possible_targets + var/atom/movable/target = tgui_input_list(user, "Choose the target of your hunger", "Targeting", possible_targets) if(QDELETED(target)) return diff --git a/code/datums/spell_targeting/remoteview_targeting.dm b/code/datums/spell_targeting/remoteview_targeting.dm index f089ba285858..fce68b121810 100644 --- a/code/datums/spell_targeting/remoteview_targeting.dm +++ b/code/datums/spell_targeting/remoteview_targeting.dm @@ -16,7 +16,7 @@ if(!length(remoteviewers)) return - var/mob/target = input("Choose the target to spy on.", "Targeting") as null|anything in remoteviewers + var/mob/target = tgui_input_list(user, "Choose the target to spy on", "Targeting", remoteviewers) if(QDELETED(target)) return diff --git a/code/datums/spell_targeting/targeted.dm b/code/datums/spell_targeting/targeted.dm index 5ff208cf6d4b..2f6871324176 100644 --- a/code/datums/spell_targeting/targeted.dm +++ b/code/datums/spell_targeting/targeted.dm @@ -25,7 +25,7 @@ else if(max_targets == 1) // Only one target var/atom/target if(!random_target) - target = input("Choose the target for the spell.", "Targeting") as anything in possible_targets + target = tgui_input_list(user, "Choose the target for the spell", "Targeting", possible_targets) //Adds a safety check post-input to make sure those targets are actually in range. if(target in view_or_range(range, spell_location, selection_type)) targets += target diff --git a/code/datums/spell_targeting/telepathic.dm b/code/datums/spell_targeting/telepathic.dm index 618f9da80ca7..c6c739fe0f1a 100644 --- a/code/datums/spell_targeting/telepathic.dm +++ b/code/datums/spell_targeting/telepathic.dm @@ -28,7 +28,7 @@ if(!length(valid_targets)) return - var/target_name = input("Choose the target to listen to.", "Targeting") as null|anything in valid_targets + var/target_name = tgui_input_list(user, "Choose the target to listen to", "Targeting", valid_targets) var/mob/living/target = valid_targets[target_name] if(QDELETED(target)) diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm index fc4f0dd3f684..ed44996ce455 100644 --- a/code/datums/spells/banana_touch.dm +++ b/code/datums/spells/banana_touch.dm @@ -19,6 +19,17 @@ icon_state = "banana_touch" item_state = "banana_touch" +/obj/effect/proc_holder/spell/touch/banana/apprentice + hand_path = /obj/item/melee/touch_attack/banana/apprentice + +/obj/item/melee/touch_attack/banana/apprentice + +/obj/item/melee/touch_attack/banana/apprentice/afterattack(atom/target, mob/living/carbon/user, proximity) + if(iswizard(target) && target != user) + to_chat(user, "Seriously?! Honk THEM, not me!") + return + ..() + /obj/item/melee/touch_attack/banana/afterattack(atom/target, mob/living/carbon/user, proximity) if(!proximity || target == user || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) return diff --git a/code/datums/spells/construct_spells.dm b/code/datums/spells/construct_spells.dm index 2ba67cf1aa40..e27d70153bb6 100644 --- a/code/datums/spells/construct_spells.dm +++ b/code/datums/spells/construct_spells.dm @@ -143,6 +143,7 @@ invocation_type = "none" holy_area_cancast = FALSE //Stops cult magic from working on holy ground eg: chapel proj_lifespan = 10 + proj_step_delay = 5 proj_type = "/obj/effect/proc_holder/spell/inflict_handler/magic_missile/lesser" /obj/effect/proc_holder/spell/projectile/magic_missile/lesser/create_new_targeting() diff --git a/code/datums/spells/lichdom.dm b/code/datums/spells/lichdom.dm index be263c915b8f..b882d6dec2c7 100644 --- a/code/datums/spells/lichdom.dm +++ b/code/datums/spells/lichdom.dm @@ -10,10 +10,10 @@ level_max = 0 //cannot be improved cooldown_min = 10 - var/obj/marked_item + var/marked_item_uid var/mob/living/current_body var/resurrections = 0 - var/existence_stops_round_end = 0 + var/existence_stops_round_end = FALSE action_icon_state = "skeleton" @@ -30,106 +30,148 @@ return ..() /obj/effect/proc_holder/spell/lichdom/cast(list/targets, mob/user = usr) - if(!GLOB.configuration.gamemode.disable_certain_round_early_end) - existence_stops_round_end = TRUE - GLOB.configuration.gamemode.disable_certain_round_early_end = TRUE - for(var/mob/M in targets) - var/list/hand_items = list() - if(iscarbon(M)) - hand_items = list(M.get_active_hand(), M.get_inactive_hand()) - - if(marked_item && !stat_allowed) //sanity, shouldn't happen without badminry - marked_item = null - return - - if(stat_allowed) //Death is not my end! - if(M.stat == CONSCIOUS && iscarbon(M)) - to_chat(M, "You aren't dead enough to revive!")//Usually a good problem to have - - cooldown_handler.revert_cast() - return - - if(!marked_item || QDELETED(marked_item)) //Wait nevermind - to_chat(M, "Your phylactery is gone!") + if(stat_allowed) + attempt_revive(M) + else if(!marked_item_uid) + attempt_mark_item(M) + +/obj/effect/proc_holder/spell/lichdom/proc/attempt_revive(mob/user) + // Can only cast when unconscious/dead + if(user.stat == CONSCIOUS) + to_chat(user, "You aren't dead enough to revive!") + cooldown_handler.revert_cast() + return + + // Body was destroyed + if(QDELETED(current_body)) + to_chat(user, "Your body is gone!") + return + + // Phylactery was destroyed + var/obj/item/marked_item = locateUID(marked_item_uid) + if(QDELETED(marked_item)) + to_chat(user, "Your phylactery is gone!") + return + + // Wrong z-level + var/turf/body_turf = get_turf(current_body) + var/turf/item_turf = get_turf(marked_item) + if(body_turf.z != item_turf.z) + to_chat(user, "Your phylactery is out of range!") + return + + if(isobserver(user)) + var/mob/dead/observer/O = user + O.reenter_corpse() + + // Clean up the old body + if(!QDELETED(current_body)) + if(iscarbon(current_body)) + var/mob/living/carbon/C = current_body + for(var/obj/item/W in C) + C.unEquip(W) + + // Give a hint as to where the body is + var/wheres_wizdo = dir2text(get_dir(body_turf, item_turf)) + if(wheres_wizdo) + current_body.visible_message("Suddenly [current_body.name]'s corpse falls to pieces! You see a strange energy rise from the remains, and speed off towards the [wheres_wizdo]!") + body_turf.Beam(item_turf, icon_state = "lichbeam", icon = 'icons/effects/effects.dmi', time = 10 + 10 * resurrections, maxdistance = INFINITY) + + UnregisterSignal(current_body, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_Z_CHANGED)) + current_body.dust() + + var/stun_time = (1 + resurrections++) * 20 SECONDS + + var/mob/living/carbon/human/lich = new /mob/living/carbon/human(item_turf) + lich.set_species(/datum/species/skeleton/lich) + lich.real_name = user.mind.name + lich.Weaken(stun_time) + user.mind.transfer_to(lich) + equip_lich(lich) + RegisterSignal(lich, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_Z_CHANGED), PROC_REF(check_revivability_handler)) + + current_body = lich + cooldown_handler.recharge_duration += 1 MINUTES + to_chat(lich, "Your bones clatter and shudder as they're pulled back into this world!") + +/obj/effect/proc_holder/spell/lichdom/proc/attempt_mark_item(mob/user) + var/obj/item/target = user.get_active_hand() + if(!target) + to_chat(user, "You must hold an item you wish to make your phylactery!") + return + + if(target.flags & (ABSTRACT|NODROP)) + to_chat(user, "[target] cannot be used as your phylactery!") + return + + if(!do_after(user, 5 SECONDS, target = target)) + to_chat(user, "Your soul snaps back to your body as you drop [target]!") + return + + name = "RISE!" + desc = "Rise from the dead! You will reform at the location of your phylactery and your old body will crumble away." + stat_allowed = UNCONSCIOUS + cooldown_handler.recharge_duration = 3 MINUTES + cooldown_handler.revert_cast() + + if(action && action.button) + action.name = action.button.name = name + action.desc = action.button.desc = desc + + target.name = "ensouled [target.name]" + target.desc += "
A terrible aura surrounds this item, its very existence is offensive to life itself..." + target.color = "#003300" + marked_item_uid = target.UID() + + current_body = user.mind.current + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.set_species(/datum/species/skeleton/lich) + H.unEquip(H.wear_suit) + H.unEquip(H.head) + H.unEquip(H.shoes) + H.unEquip(H.head) + equip_lich(H) + + RegisterSignal(target, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_Z_CHANGED), PROC_REF(check_revivability_handler)) + RegisterSignal(current_body, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_Z_CHANGED), PROC_REF(check_revivability_handler)) + to_chat(user, "With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As your organs crumble to dust in your fleshless chest you come to terms with your choice. You're a lich!") + + existence_stops_round_end = TRUE + GLOB.configuration.gamemode.disable_certain_round_early_end = TRUE + +/obj/effect/proc_holder/spell/lichdom/proc/is_revive_possible() + var/obj/item/marked_item = locateUID(marked_item_uid) + if(QDELETED(marked_item)) + return FALSE + if(QDELETED(current_body)) + return FALSE + var/turf/body_turf = get_turf(current_body) + var/turf/item_turf = get_turf(marked_item) + if(body_turf.z != item_turf.z) + return FALSE + return TRUE + +/obj/effect/proc_holder/spell/lichdom/proc/check_revivability_handler() + SIGNAL_HANDLER + + // There are other liches about, so round may still continue + for(var/datum/mind/M in SSticker.mode.wizards) + for(var/obj/effect/proc_holder/spell/lichdom/S in M.spell_list) + if(S == src) + continue + // Other lich can still revive + if(S.is_revive_possible()) return - - var/turf/user_turf = get_turf(M) - var/turf/item_turf = get_turf(marked_item) - - if(user_turf.z != item_turf.z) - to_chat(M, "Your phylactery is out of range!") - return - - if(isobserver(M)) - var/mob/dead/observer/O = M - O.reenter_corpse() - - var/mob/living/carbon/human/lich = new /mob/living/carbon/human(item_turf) - - lich.real_name = M.mind.name - M.mind.transfer_to(lich) - lich.set_species(/datum/species/skeleton/lich) // Wizard variant - to_chat(lich, "Your bones clatter and shudder as they're pulled back into this world!") - cooldown_handler.recharge_duration += 1 MINUTES - var/mob/old_body = current_body - var/turf/body_turf = get_turf(old_body) - current_body = lich - var/stun_time = (1 + resurrections) * 20 SECONDS - lich.Weaken(stun_time) - ++resurrections - equip_lich(lich) - - if(old_body && old_body.loc) - if(iscarbon(old_body)) - var/mob/living/carbon/C = old_body - for(var/obj/item/W in C) - C.unEquip(W) - var/wheres_wizdo = dir2text(get_dir(body_turf, item_turf)) - if(wheres_wizdo) - old_body.visible_message("Suddenly [old_body.name]'s corpse falls to pieces! You see a strange energy rise from the remains, and speed off towards the [wheres_wizdo]!") - body_turf.Beam(item_turf,icon_state="lichbeam",icon='icons/effects/effects.dmi',time=10+10*resurrections,maxdistance=INFINITY) - old_body.dust() - - if(!marked_item) //linking item to the spell - message = "" - for(var/obj/item in hand_items) - if((ABSTRACT in item.flags) || (NODROP in item.flags)) - continue - marked_item = item - to_chat(M, "You begin to focus your very being into [item]...") - break - - if(!marked_item) - to_chat(M, "You must hold an item you wish to make your phylactery...") + // Other lich is still alive + if(!QDELETED(S.current_body) && S.current_body.stat != DEAD) return - spawn(50) - if(marked_item.loc != M) //I changed my mind I don't want to put my soul in a cheeseburger! - to_chat(M, "Your soul snaps back to your body as you drop [marked_item]!") - marked_item = null - return - name = "RISE!" - desc = "Rise from the dead! You will reform at the location of your phylactery and your old body will crumble away." - cooldown_handler.recharge_duration = 3 MINUTES - cooldown_handler.revert_cast() - stat_allowed = UNCONSCIOUS - marked_item.name = "Ensouled [marked_item.name]" - marked_item.desc = "A terrible aura surrounds this item, its very existence is offensive to life itself..." - marked_item.color = "#003300" - to_chat(M, "With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As your organs crumble to dust in your fleshless chest you come to terms with your choice. You're a lich!") - current_body = M.mind.current - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.set_species(/datum/species/skeleton/lich) - H.unEquip(H.wear_suit) - H.unEquip(H.head) - H.unEquip(H.shoes) - H.unEquip(H.head) - equip_lich(H) + GLOB.configuration.gamemode.disable_certain_round_early_end = is_revive_possible() /obj/effect/proc_holder/spell/lichdom/proc/equip_lich(mob/living/carbon/human/H) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), SLOT_HUD_OUTER_SUIT) - H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(H), SLOT_HUD_HEAD) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H), SLOT_HUD_SHOES) - H.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(H), SLOT_HUD_JUMPSUIT) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), SLOT_HUD_OUTER_SUIT) + H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(H), SLOT_HUD_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H), SLOT_HUD_SHOES) + H.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(H), SLOT_HUD_JUMPSUIT) diff --git a/code/datums/spells/mimic.dm b/code/datums/spells/mimic.dm index 6fe1fbfb1613..4d807f4baaff 100644 --- a/code/datums/spells/mimic.dm +++ b/code/datums/spells/mimic.dm @@ -94,7 +94,7 @@ forms += "Original Form" forms += available_forms.Copy() - var/what = input(user, "Which form do you want to become?", "Mimic") as null|anything in forms + var/what = tgui_input_list(user, "Which form do you want to become?", "Mimic", forms) if(!what) to_chat(user, "You decide against changing forms.") revert_cast(user) diff --git a/code/datums/spells/shapeshift.dm b/code/datums/spells/shapeshift.dm index 289e0e2c5c34..09d1439e951e 100644 --- a/code/datums/spells/shapeshift.dm +++ b/code/datums/spells/shapeshift.dm @@ -27,7 +27,7 @@ for(var/path in possible_shapes) var/mob/living/simple_animal/A = path animal_list[initial(A.name)] = path - shapeshift_type = input(M, "Choose Your Animal Form!", "It's Morphing Time!", null) as anything in animal_list + shapeshift_type = tgui_input_list(M, "Choose Your Animal Form!", "It's Morphing Time!", animal_list) if(!shapeshift_type) //If you aren't gonna decide I am! shapeshift_type = pick(animal_list) shapeshift_type = animal_list[shapeshift_type] diff --git a/code/datums/spells/wizard_spells.dm b/code/datums/spells/wizard_spells.dm index 1e5abe773d9e..8951fb00ffc2 100644 --- a/code/datums/spells/wizard_spells.dm +++ b/code/datums/spells/wizard_spells.dm @@ -15,7 +15,7 @@ proj_type = "/obj/effect/proc_holder/spell/inflict_handler/magic_missile" proj_lifespan = 20 - proj_step_delay = 5 + proj_step_delay = 2 proj_trail = 1 proj_trail_lifespan = 5 @@ -190,6 +190,29 @@ /obj/effect/proc_holder/spell/area_teleport/teleport/create_new_targeting() return new /datum/spell_targeting/self +/obj/effect/proc_holder/spell/return_to_teacher + name = "Return to Teacher" + desc = "This spell teleports you back to your teacher." + + school = "abjuration" + base_cooldown = 30 SECONDS + clothes_req = TRUE + invocation = "SCYAR TESO" + invocation_type = "shout" + cooldown_min = 10 SECONDS + + action_icon_state = "spell_teleport" + var/datum/mind/teacher + +/obj/effect/proc_holder/spell/return_to_teacher/create_new_targeting() + return new /datum/spell_targeting/self + +/obj/effect/proc_holder/spell/return_to_teacher/cast(list/targets, mob/living/user = usr) + if(!(teacher && teacher.current)) + to_chat(user, "The link to your teacher is broken!") + return + do_teleport(user, teacher.current, 1, sound_in = 'sound/magic/blink.ogg', sound_out = 'sound/magic/blink.ogg', safe_turf_pick = TRUE) + /obj/effect/proc_holder/spell/forcewall name = "Force Wall" desc = "This spell creates a 3 tile wide unbreakable wall that only you can pass through, and does not need wizard garb. Lasts 30 seconds." @@ -283,12 +306,12 @@ desc = "This spell temporarily blinds a single person and does not require wizard garb." school = "transmutation" - base_cooldown = 300 + base_cooldown = 10 SECONDS clothes_req = FALSE invocation = "STI KALY" invocation_type = "whisper" message = "Your eyes cry out in pain!" - cooldown_min = 50 //12 deciseconds reduction per rank + cooldown_min = 2 SECONDS starting_spells = list("/obj/effect/proc_holder/spell/inflict_handler/blind","/obj/effect/proc_holder/spell/genetic/blind") @@ -332,6 +355,9 @@ active = FALSE +/obj/effect/proc_holder/spell/fireball/apprentice + centcom_cancast = FALSE + /obj/effect/proc_holder/spell/fireball/create_new_targeting() var/datum/spell_targeting/clicked_atom/C = new() C.range = 20 diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 1aab56c9d8a7..d65790632129 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -257,7 +257,9 @@ /datum/status_effect/force_shield id = "forceshield" - duration = 4 SECONDS + alert_type = null + status_type = STATUS_EFFECT_REFRESH + duration = 5 SECONDS tick_interval = 0 var/mutable_appearance/shield diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index c545f6c2d498..ce613a490906 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -270,3 +270,19 @@ /datum/status_effect/delayed/on_timeout() . = ..() expire_proc.Invoke() + +/datum/status_effect/action_status_effect + alert_type = null + tick_interval = -1 + +/datum/status_effect/action_status_effect/remove_handcuffs + id = "remove_handcuffs" + +/datum/status_effect/action_status_effect/break_handcuffs + id = "break_handcuffs" + +/datum/status_effect/action_status_effect/remove_muzzle + id = "remove_muzzle" + +/datum/status_effect/action_status_effect/unbuckle + id = "unbuckle" diff --git a/code/datums/uplink_items/uplink_general.dm b/code/datums/uplink_items/uplink_general.dm index 9da4ac870052..e04640fa3ae0 100644 --- a/code/datums/uplink_items/uplink_general.dm +++ b/code/datums/uplink_items/uplink_general.dm @@ -171,10 +171,10 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) category = "Highly Visible and Dangerous Weapons" /datum/uplink_item/dangerous/pistol - name = "FK-69 Pistol Kit" + name = "FK-69 Stechkin Pistol" reference = "SPI" - desc = "A box containing a small, easily concealable handgun and two eight-round magazines chambered in 10mm auto rounds. Compatible with suppressors." - item = /obj/item/storage/box/syndie_kit/stechkin + desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible with suppressors." + item = /obj/item/gun/projectile/automatic/pistol cost = 20 /datum/uplink_item/dangerous/revolver @@ -231,6 +231,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/batterer cost = 25 +/datum/uplink_item/dangerous/porta_turret + name = "Portable Turret" + desc = "A pop-up syndicate turret, shoots anyone who didn't prime the grenade. The turret cannot be moved after it's deployed." + reference = "MIS" + item = /obj/item/grenade/turret + cost = 20 + // Ammunition /datum/uplink_item/ammo @@ -258,7 +265,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "An additional 8-round 10mm magazine for use in the syndicate pistol, loaded with incendiary rounds which ignite the target." reference = "10MMFIRE" item = /obj/item/ammo_box/magazine/m10mm/fire - cost = 6 + cost = 9 surplus = 0 // Miserable /datum/uplink_item/ammo/pistolhp @@ -266,7 +273,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "An additional 8-round 10mm magazine for use in the syndicate pistol, loaded with rounds which are more damaging but ineffective against armour." reference = "10MMHP" item = /obj/item/ammo_box/magazine/m10mm/hp - cost = 6 + cost = 7 surplus = 0 // Miserable /datum/uplink_item/ammo/revolver @@ -365,7 +372,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "Just add water to make your very own hostile to everything space carp. It looks just like a plushie. The first person to squeeze it will be registered as its owner, who it will not attack. If no owner is registered, it'll just attack everyone." reference = "DSC" item = /obj/item/toy/plushie/carpplushie/dehy_carp - cost = 5 + cost = 4 // GRENADES AND EXPLOSIVES diff --git a/code/datums/uplink_items/uplink_traitor.dm b/code/datums/uplink_items/uplink_traitor.dm index da108abc6c50..fde738f81a4e 100644 --- a/code/datums/uplink_items/uplink_traitor.dm +++ b/code/datums/uplink_items/uplink_traitor.dm @@ -244,6 +244,7 @@ item = /obj/item/dice/d20/e20 cost = 15 job = list("Librarian") + surplus = 0 //Botanist /datum/uplink_item/jobspecific/ambrosiacruciatus @@ -557,9 +558,9 @@ /datum/uplink_item/bundles_TC/badass name = "Syndicate Bundle" - desc = "Syndicate Bundles are specialised groups of items that arrive in a plain box. These items are collectively worth more than 100 telecrystals, but you do not know which specialisation you will receive." + desc = "Syndicate Bundles are specialised groups of items that arrive in a plain box. These items are collectively worth more than 100 telecrystals. You can select one out of three specialisations after purchase." reference = "SYB" - item = /obj/item/storage/box/syndie_kit/bundle + item = /obj/item/radio/beacon/syndicate/bundle cost = 100 excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST) @@ -573,13 +574,6 @@ var/crate_value = 250 uses_special_spawn = TRUE -/datum/uplink_item/bundles_TC/surplus_crate/super - name = "Syndicate Super Surplus Crate" - desc = "A crate containing 625 telecrystals worth of random syndicate leftovers." - reference = "SYSS" - cost = 200 - crate_value = 625 - /datum/uplink_item/bundles_TC/surplus_crate/spawn_item(turf/loc, obj/item/uplink/U) if(..() != UPLINK_SPECIAL_SPAWNING) return FALSE diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 4fe169e79ae7..032046134e81 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -467,7 +467,7 @@ if(!istype(M)) // Rather not have non-humans get hit with a THUNK return - if(istype(M.shoes, /obj/item/clothing/shoes/magboots) && (M.shoes.flags & NOSLIP)) // Only humans can wear magboots, so we give them a chance to. + if(HAS_TRAIT(M, TRAIT_MAGPULSE)) // Only humans can wear magboots, so we give them a chance to. return if(M.dna.species.spec_thunk(M)) //Species level thunk overrides diff --git a/code/game/area/areas/ruins/space_areas.dm b/code/game/area/areas/ruins/space_areas.dm index 7517a4152a5b..cc7f7eb2a99a 100644 --- a/code/game/area/areas/ruins/space_areas.dm +++ b/code/game/area/areas/ruins/space_areas.dm @@ -171,3 +171,7 @@ /area/ruin/space/abandoned_engi_sat name = "Abandoned NT Engineering Satellite" apc_starts_off = TRUE + +/area/ruin/space/moonbase19 + name = "Moon Base 19" + apc_starts_off = TRUE diff --git a/code/game/atoms.dm b/code/game/atoms.dm index dccb7ee6f7a3..f7b86265a862 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -544,7 +544,7 @@ addtimer(CALLBACK(src, PROC_REF(hitby_react), AM), 2) /// This proc applies special effects of a carbon mob hitting something, be it a wall, structure, or window. You can set mob_hurt to false to avoid double dipping through subtypes if returning ..() -/atom/proc/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt = FALSE, self_hurt = FALSE) +/atom/proc/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt = FALSE, self_hurt = FALSE) return /atom/proc/hitby_react(atom/movable/AM) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 46241823383d..0b7280021cec 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -169,6 +169,7 @@ glide_for(movetime) if(!(direct & (direct - 1))) //Cardinal move . = ..(newloc, direct) // don't pass up movetime + setDir(direct) else //Diagonal move, split it into cardinal moves moving_diagonally = FIRST_DIAG_STEP var/first_step_dir @@ -217,6 +218,7 @@ if(moving_diagonally == SECOND_DIAG_STEP) if(!.) setDir(first_step_dir) + Moved(oldloc, first_step_dir) else if(!inertia_moving) inertia_next_move = world.time + inertia_move_delay newtonian_move(direct) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 7adac734b9fb..6b019a4a91f3 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -57,6 +57,9 @@ /datum/atom_hud/data/hydroponic hud_icons = list (PLANT_NUTRIENT_HUD, PLANT_WATER_HUD, PLANT_STATUS_HUD, PLANT_HEALTH_HUD, PLANT_TOXIN_HUD, PLANT_PEST_HUD, PLANT_WEED_HUD) +/datum/atom_hud/data/janitor + hud_icons = list(JANI_HUD) + /* MED/SEC/DIAG HUD HOOKS */ /* @@ -492,6 +495,15 @@ else holder.icon_state = "" +/*~~~~~~~~~~~~~~ + JANI HUD +~~~~~~~~~~~~~~~*/ +/obj/effect/decal/cleanable/proc/jani_hud_set_sign() + var/image/holder = hud_list[JANI_HUD] + holder.icon_state = "hudjani" + holder.alpha = 130 + holder.plane = ABOVE_LIGHTING_PLANE + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I'll just put this somewhere near the end... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 4c9a7c0f582b..cd7794592742 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -418,7 +418,6 @@ GLOBAL_LIST_EMPTY(bad_blocks) SE_original = SE.Copy() unique_enzymes = md5(character.real_name) - GLOB.reg_dna[unique_enzymes] = character.real_name // Hmm, I wonder how to go about this without a huge convention break /datum/dna/serialize() diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index f26761ea92a3..57cacf2c5251 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -1,6 +1,7 @@ #define LING_FAKEDEATH_TIME 50 SECONDS #define LING_ABSORB_RECENT_SPEECH 8 //The amount of recent spoken lines to gain on absorbing a mob +// This list is basically a copy of GLOB.greek_letters, but it also removes letters when a changeling spawns in with that ID GLOBAL_LIST_INIT(possible_changeling_IDs, list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")) /datum/game_mode diff --git a/code/game/gamemodes/cult/blood_magic.dm b/code/game/gamemodes/cult/blood_magic.dm index f9e0b667e653..41a81a2ae2c2 100644 --- a/code/game/gamemodes/cult/blood_magic.dm +++ b/code/game/gamemodes/cult/blood_magic.dm @@ -51,7 +51,7 @@ possible_spells[cult_name] = J if(length(spells)) possible_spells += "(REMOVE SPELL)" - entered_spell_name = input(owner, "Pick a blood spell to prepare...", "Spell Choices") as null|anything in possible_spells + entered_spell_name = tgui_input_list(owner, "Pick a blood spell to prepare...", "Spell Choices", possible_spells) if(entered_spell_name == "(REMOVE SPELL)") remove_spell() return @@ -80,8 +80,8 @@ SSblackbox.record_feedback("tally", "cult_spells_prepared", 1, "[new_spell.name]") channeling = FALSE -/datum/action/innate/cult/blood_magic/proc/remove_spell(message = "Pick a spell to remove.") - var/nullify_spell = input(owner, message, "Current Spells") as null|anything in spells +/datum/action/innate/cult/blood_magic/proc/remove_spell() + var/nullify_spell = tgui_input_list(owner, "Pick a spell to remove", "Current Spells", spells) if(nullify_spell) qdel(nullify_spell) @@ -518,7 +518,7 @@ log_game("Teleport spell failed - user in away mission") return - var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked + var/input_rune_key = tgui_input_list(user, "Choose a rune to teleport to", "Rune to Teleport to", potential_runes) //we know what key they picked var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? if(QDELETED(src) || !user || user.l_hand != src && user.r_hand != src || user.incapacitated() || !actual_selected_rune) return diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 084ff4419573..ee9c00bfb532 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -782,7 +782,7 @@ to_chat(user, "You are not in the right dimension!") return - var/input_rune_key = input(user, "Choose a rune to make a portal to.", "Rune to make a portal to") as null|anything in potential_runes //we know what key they picked + var/input_rune_key = tgui_input_list(user, "Choose a rune to make a portal to", "Rune to make a portal to", potential_runes) //we know what key they picked var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? if(QDELETED(R) || QDELETED(actual_selected_rune) || !Adjacent(user) || user.incapacitated()) return diff --git a/code/game/gamemodes/cult/cult_mode.dm b/code/game/gamemodes/cult/cult_mode.dm index 045f08879553..f2abcc0acedc 100644 --- a/code/game/gamemodes/cult/cult_mode.dm +++ b/code/game/gamemodes/cult/cult_mode.dm @@ -1,5 +1,3 @@ -GLOBAL_LIST_EMPTY(all_cults) - /datum/game_mode /// A list of all minds currently in the cult var/list/datum/mind/cult = list() @@ -166,6 +164,7 @@ GLOBAL_LIST_EMPTY(all_cults) check_cult_size() cult_objs.study(cult_mind.current) to_chat(cult_mind.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Cultist)") + RegisterSignal(cult_mind.current, COMSIG_MOB_STATCHANGE, PROC_REF(cultist_stat_change)) return TRUE /datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = TRUE, remove_gear = FALSE, mob/target_mob) @@ -205,6 +204,7 @@ GLOBAL_LIST_EMPTY(all_cults) if(show_message) cultist.visible_message("[cultist] looks like [cultist.p_they()] just reverted to [cultist.p_their()] old faith!", "An unfamiliar white light flashes through your mind, cleansing the taint of [SSticker.cultdat ? SSticker.cultdat.entity_title1 : "Nar'Sie"] and the memories of your time as their servant with it.") + UnregisterSignal(cult_mind.current, COMSIG_MOB_STATCHANGE) /datum/game_mode/proc/add_cult_immunity(mob/living/target) ADD_TRAIT(target, TRAIT_CULT_IMMUNITY, CULT_TRAIT) @@ -248,23 +248,32 @@ GLOBAL_LIST_EMPTY(all_cults) /datum/game_mode/proc/get_cultists(separate = FALSE) var/cultists = 0 var/constructs = 0 - for(var/I in cult) - var/datum/mind/M = I + for(var/datum/mind/M as anything in cult) + if(QDELETED(M) || M.current?.stat == DEAD) + continue if(ishuman(M.current) && !M.current.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST)) cultists++ else if(isconstruct(M.current)) constructs++ if(separate) return list(cultists, constructs) - else - return cultists + constructs + return cultists + constructs + +/datum/game_mode/proc/cultist_stat_change(mob/target_cultist, new_stat, old_stat) + SIGNAL_HANDLER // COMSIG_MOB_STATCHANGE from cultists + if(new_stat == old_stat) // huh, how? whatever, we ignore it + return + if(new_stat != DEAD && old_stat != DEAD) + return // switching between alive and unconcious + // switching between dead and alive/unconcious + check_cult_size() /datum/game_mode/proc/check_cult_size() var/cult_players = get_cultists() if(cult_ascendant) // The cult only falls if below 1/2 of the rising, usually pretty low. e.g. 5% on highpop, 10% on lowpop - if(cult_players < rise_number / 2) + if(cult_players < (rise_number / 2)) cult_fall() return diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index cea7205c4125..f9690f5c683a 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -116,7 +116,7 @@ if(!length(possible_runes)) return - var/chosen_rune = input(user, "Choose a rite to scribe.", "Sigils of Power") as null|anything in possible_runes + var/chosen_rune = tgui_input_list(user, "Choose a rite to scribe.", "Sigils of Power", possible_runes) if(!chosen_rune) return var/obj/effect/rune/rune = possible_runes[chosen_rune] diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 695ee5fda5ce..961fe5e48568 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -1,5 +1,4 @@ GLOBAL_LIST_EMPTY(sacrificed) // A mixed list of minds and mobs -GLOBAL_LIST_EMPTY(wall_runes) // A list of all cult shield walls GLOBAL_LIST_EMPTY(teleport_runes) // I'll give you two guesses /* @@ -290,7 +289,7 @@ structure_check() searches for nearby cultist structures required for the invoca // Offering a head/brain for(var/obj/item/organ/O in T) - var/mob/living/carbon/brain/b_mob + var/mob/living/brain/b_mob if(istype(O, /obj/item/organ/external/head)) // Offering a head var/obj/item/organ/external/head/H = O for(var/obj/item/organ/internal/brain/brain in H.contents) @@ -490,7 +489,7 @@ structure_check() searches for nearby cultist structures required for the invoca fail_invoke() return - var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked + var/input_rune_key = tgui_input_list(user, "Choose a rune to teleport to.", "Rune to Teleport to", potential_runes) //we know what key they picked var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? if(QDELETED(src) || QDELETED(actual_selected_rune) ||!Adjacent(user) || user.incapacitated()) fail_invoke() @@ -632,7 +631,7 @@ structure_check() searches for nearby cultist structures required for the invoca fail_invoke() return if(length(potential_revive_mobs) > 1) - mob_to_revive = input(user, "Choose a cultist to revive.", "Cultist to Revive") as null|anything in potential_revive_mobs + mob_to_revive = tgui_input_list(user, "Choose a cultist to revive.", "Cultist to Revive", potential_revive_mobs) else // If there's only one, no need for a menu mob_to_revive = potential_revive_mobs[1] if(!validness_checks(mob_to_revive, user)) @@ -716,12 +715,10 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/wall/Initialize(mapload) . = ..() - GLOB.wall_runes += src B = new /obj/machinery/shield/cult/barrier(loc) B.parent_rune = src /obj/effect/rune/wall/Destroy() - GLOB.wall_runes -= src if(B && !QDELETED(B)) QDEL_NULL(B) return ..() @@ -756,7 +753,7 @@ structure_check() searches for nearby cultist structures required for the invoca for(var/datum/mind/M in SSticker.mode.cult) if(!(M.current in invokers) && M.current && M.current.stat != DEAD) cultists[M.current.real_name] = M.current - var/input = input(user, "Who do you wish to call to [src]?", "Acolytes") as null|anything in cultists + var/input = tgui_input_list(user, "Who do you wish to call to [src]?", "Acolytes", cultists) var/mob/living/cultist_to_summon = cultists[input] if(QDELETED(src) || !Adjacent(user) || user.incapacitated()) return diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 78d0d4c264b3..2d659b9818cb 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -106,9 +106,6 @@ return 1 return 0 -/datum/game_mode/proc/cleanup() //This is called when the round has ended but not the game, if any cleanup would be necessary in that case. - return - /datum/game_mode/proc/declare_completion() var/clients = 0 var/surviving_humans = 0 diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index 92ef8002b7fb..41d8aad47085 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -47,7 +47,7 @@ /datum/game_mode/abduction/proc/make_abductor_team(team_number,preset_agent=null,preset_scientist=null) //Team Name - team_names[team_number] = "Mothership [pick(GLOB.possible_changeling_IDs)]" //TODO Ensure unique and actual alieny names + team_names[team_number] = "Mothership [pick(GLOB.greek_letters)]" //TODO Ensure unique and actual alieny names //Team Objective var/datum/objective/experiment/team_objective = new team_objective.abductor_team_number = team_number diff --git a/code/game/gamemodes/miniantags/demons/slaughter demon/slaughter.dm b/code/game/gamemodes/miniantags/demons/slaughter demon/slaughter.dm index 73f0e1de4989..e0a32fe54689 100644 --- a/code/game/gamemodes/miniantags/demons/slaughter demon/slaughter.dm +++ b/code/game/gamemodes/miniantags/demons/slaughter demon/slaughter.dm @@ -185,7 +185,7 @@ to_chat(usr, "There are no valid targets!") return - var/mob/living/target = input("Choose the target to talk to.", "Targeting") as null|mob in validtargets + var/mob/living/target = tgui_input_list(user, "Choose the target to talk to", "Targeting", validtargets) return target /datum/action/innate/demon/whisper/Activate() diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm index b2bcc1e5b37f..f5a0087f2342 100644 --- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm +++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm @@ -656,7 +656,7 @@ /mob/living/simple_animal/demon/pulse_demon/proc/is_under_tile() var/turf/T = get_turf(src) - return T.transparent_floor || T.intact || HAS_TRAIT(T, TRAIT_TURF_COVERED) + return T.intact || HAS_TRAIT(T, TRAIT_TURF_COVERED) // cable (and hijacked APC) view helper /mob/living/simple_animal/demon/pulse_demon/proc/update_cableview() diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm index 07a7735affa6..44be9000c319 100644 --- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm +++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm @@ -441,7 +441,7 @@ to_chat(user, "You have already fully upgraded everything available!") return FALSE - var/raw_choice = show_radial_menu(user, isturf(user.loc) ? user : user.loc, upgrades, radius = 48) + var/raw_choice = show_radial_menu(user, user, upgrades, radius = 48) if(!raw_choice) return var/choice = splittext(raw_choice, " ")[1] diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 8720f8b98ed2..0c7b18507c8e 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -342,6 +342,8 @@ GLOBAL_VAR(bomb_set) /obj/machinery/nuclearbomb/attack_hand(mob/user as mob) if(!panel_open) return ui_interact(user) + if(!Adjacent(user)) + return if(removal_stage != NUKE_CORE_FULLY_EXPOSED || !core) return wires.Interact(user) if(timing) //removing the core is less risk then cutting wires, and doesnt take long, so we should not let crew do it while the nuke is armed. You can however get to it, without the special screwdriver, if you put the NAD in. diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index 07b0cc95ee59..5e478757e797 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -220,7 +220,7 @@ var/name = initial(T.name) item_names += name item_paths[name] = initial(T.typepath) - var/targetitem = input("Select item to search for.", "Item Mode Select","") as null|anything in item_names + var/targetitem = tgui_input_list(user, "Select item to search for", "Select Item", item_names) if(!targetitem) return @@ -492,7 +492,7 @@ user.visible_message("[user]'s pinpointer fails to detect a signal.", "Your pinpointer fails to detect a signal.") return - var/A = input(user, "Person to track", "Pinpoint") in names + var/A = tgui_input_list(user, "Person to track", "Pinpoint", names) if(!src || !user || (user.get_active_hand() != src) || user.incapacitated() || !A) return diff --git a/code/game/gamemodes/scoreboard.dm b/code/game/gamemodes/scoreboard.dm index e6627832b4aa..71106e0ee581 100644 --- a/code/game/gamemodes/scoreboard.dm +++ b/code/game/gamemodes/scoreboard.dm @@ -149,14 +149,14 @@ GLOBAL_VAR(scoreboard) // Variable to save the scoreboard string once it's been richest_cash = cash_score richest_name = H.real_name richest_job = H.job - richest_key = H.key + richest_key = (H.client?.prefs.toggles2 & PREFTOGGLE_2_ANON) ? "Anon" : H.key var/damage_score = H.getBruteLoss() + H.getFireLoss() + H.getToxLoss() + H.getOxyLoss() if(damage_score > damaged_health) damaged_health = damage_score damaged_name = H.real_name damaged_job = H.job - damaged_key = H.key + damaged_key = (H.client?.prefs.toggles2 & PREFTOGGLE_2_ANON) ? "Anon" : H.key /// A function to determine the cash plus the account balance of the wealthiest escapee /datum/scoreboard/proc/get_score_person_worth(mob/living/carbon/human/H) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 0e2c2cb5bbc8..7bfca0d25861 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -40,34 +40,8 @@ new /obj/effect/particle_effect/smoke(H.loc) var/mob/living/carbon/human/M = new/mob/living/carbon/human(H.loc) M.key = C.key - to_chat(M, "You are the [H.real_name]'s apprentice! You are bound by magic contract to follow [H.p_their()] orders and help [H.p_them()] in accomplishing their goals.") - switch(action) - if("destruction") - M.mind.AddSpell(new /obj/effect/proc_holder/spell/projectile/magic_missile(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball(null)) - to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned powerful, destructive spells. You are able to cast magic missile and fireball.") - if("bluespace") - M.mind.AddSpell(new /obj/effect/proc_holder/spell/area_teleport/teleport(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/ethereal_jaunt(null)) - to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt.") - if("healing") - M.mind.AddSpell(new /obj/effect/proc_holder/spell/charge(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/forcewall(null)) - M.equip_to_slot_or_del(new /obj/item/gun/magic/staff/healing(M), SLOT_HUD_RIGHT_HAND) - to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned livesaving survival spells. You are able to cast charge and forcewall.") - if("robeless") - M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe/knock(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/mind_transfer(null)) - to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap.") - - M.equip_to_slot_or_del(new /obj/item/radio/headset(M), SLOT_HUD_LEFT_EAR) - M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), SLOT_HUD_JUMPSUIT) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), SLOT_HUD_SHOES) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), SLOT_HUD_OUTER_SUIT) - M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), SLOT_HUD_HEAD) - M.equip_to_slot_or_del(new /obj/item/storage/backpack(M), SLOT_HUD_BACK) - M.equip_to_slot_or_del(new /obj/item/storage/box(M), SLOT_HUD_IN_BACKPACK) - M.equip_to_slot_or_del(new /obj/item/teleportation_scroll/apprentice(M), SLOT_HUD_RIGHT_STORE) + to_chat(M, "You are [H.real_name]'s apprentice! You are bound by magic contract to follow [H.p_their()] orders and help [H.p_them()] in accomplishing [H.p_their()] goals.") + equip_apprentice(action, M, H) var/wizard_name_first = pick(GLOB.wizard_first) var/wizard_name_second = pick(GLOB.wizard_second) var/randomname = "[wizard_name_first] [wizard_name_second]" @@ -80,9 +54,8 @@ M.name = newname var/datum/objective/protect/new_objective = new /datum/objective/protect - new_objective.owner = M.mind new_objective.target = H.mind - new_objective.explanation_text = "Protect [H.real_name], the wizard." + new_objective.explanation_text = "Protect and obey [H.real_name], your teacher." M.mind.add_mind_objective(new_objective) SSticker.mode.apprentices += M.mind @@ -105,6 +78,68 @@ ui_interact(user) +/obj/item/contract/proc/equip_apprentice(action, mob/living/carbon/human/M, mob/living/carbon/human/H) + M.equip_to_slot_or_del(new /obj/item/radio/headset(M), SLOT_HUD_LEFT_EAR) + if(action == "stealth") + M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), SLOT_HUD_JUMPSUIT) + else + M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), SLOT_HUD_JUMPSUIT) + M.equip_to_slot_or_del(new /obj/item/storage/backpack(M), SLOT_HUD_BACK) + M.equip_to_slot_or_del(new /obj/item/storage/box(M), SLOT_HUD_IN_BACKPACK) + M.equip_to_slot_or_del(new /obj/item/teleportation_scroll/apprentice(M), SLOT_HUD_RIGHT_STORE) + switch(action) + if("fire") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball/apprentice(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/sacred_flame(null)) + ADD_TRAIT(M, TRAIT_RESISTHEAT, MAGIC_TRAIT) + ADD_TRAIT(M, TRAIT_RESISTHIGHPRESSURE, MAGIC_TRAIT) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/ethereal_jaunt(null)) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), SLOT_HUD_SHOES) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), SLOT_HUD_OUTER_SUIT) + M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), SLOT_HUD_HEAD) + to_chat(M, "Your service has not gone unrewarded. Under the tutelage of [H.real_name], you've acquired proficiency in the fundamentals of Firebending, enabling you to cast spells like Fireball, Sacred Flame, and Ethereal Jaunt.") + to_chat(M, "You are immune to fire, but you are NOT immune to the explosions caused by your fireballs. Neither is your teacher, for that matter. Be careful!") + if("translocation") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/area_teleport/teleport(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/turf_teleport/blink(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/ethereal_jaunt(null)) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), SLOT_HUD_SHOES) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), SLOT_HUD_OUTER_SUIT) + M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), SLOT_HUD_HEAD) + to_chat(M, "Your service has not gone unrewarded. While studying under [H.real_name], you mastered reality-bending mobility spells, allowing you to cast Teleport, Blink, and Ethereal Jaunt.") + if("restoration") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/charge(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe/knock(null)) + var/obj/effect/proc_holder/spell/return_to_teacher/S = new /obj/effect/proc_holder/spell/return_to_teacher(null) + S.teacher = H.mind + M.mind.AddSpell(S) + M.equip_to_slot_or_del(new /obj/item/gun/magic/staff/healing(M), SLOT_HUD_RIGHT_HAND) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/marisa(M), SLOT_HUD_SHOES) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/marisa(M), SLOT_HUD_OUTER_SUIT) + M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/marisa(M), SLOT_HUD_HEAD) + to_chat(M, "Your service has not gone unrewarded. Under the guidance of [H.real_name], you've acquired life-saving survival spells. You can now cast Charge and Knock, and possess the ability to teleport back to your mentor.") + to_chat(M, "Your Charge spell can be used to recharge your Staff of Healing or reduce the cooldowns of your teacher, if you are grabbing them with empty hands.") + if("stealth") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/mind_transfer(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe/knock(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball/toolbox(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/summonitem(null)) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), SLOT_HUD_SHOES) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M), SLOT_HUD_WEAR_MASK) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow(M), SLOT_HUD_GLOVES) + M.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(M), SLOT_HUD_BELT) + to_chat(M, "Your service has not gone unrewarded. Under the mentorship of [H.real_name], you've mastered stealthy, robeless spells. You can now cast Mindswap, Knock, Homing Toolbox, Forcewall, and Instant Summons without the need for wizard robes.") + if("honk") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/touch/banana/apprentice(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/ethereal_jaunt(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/summonitem(null)) + M.equip_to_slot_or_del(new /obj/item/gun/magic/staff/slipping(M), SLOT_HUD_RIGHT_HAND) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes/magical/nodrop(M), SLOT_HUD_SHOES) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/clown(M), SLOT_HUD_OUTER_SUIT) + M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/clown(M), SLOT_HUD_HEAD) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clownwiz(M), SLOT_HUD_WEAR_MASK) + to_chat(M, "Your dedication pays off! Under [H.real_name]'s guidance, you've mastered magical honkings, seamlessly casting spells like Banana Touch, Ethereal Jaunt, and Instant Summons, while skillfully wielding a Staff of Slipping. Honk!") + ///////////////////////////Veil Render////////////////////// /obj/item/veilrender @@ -867,7 +902,7 @@ GLOBAL_LIST_EMPTY(multiverse) "Welder Fuel" = "a dark, pungent, oily substance", "Vomit" = "warm chunky vomit") - var/choice = show_radial_menu(user, src, options) + var/choice = show_radial_menu(user, src, options, require_near = TRUE) if(!choice || user.stat || !in_range(user, src) || QDELETED(src)) return to_chat(user, "The [name] fills to brimming with [options_to_descriptions[choice]].") diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm index 6321edc44bcb..434059436730 100644 --- a/code/game/gamemodes/wizard/raginmages.dm +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -94,7 +94,7 @@ L.ghostize() if(isbrain(L)) // diediedie - var/mob/living/carbon/brain/B = L + var/mob/living/brain/B = L if(isitem(B.loc)) qdel(B.loc) if(B && B.container) diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index b75777018fcb..a0849e4c800c 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -302,6 +302,7 @@ name = "Remove Clothes Requirement" spell_type = /obj/effect/proc_holder/spell/noclothes category = "Assistance" + cost = 1 //Rituals /datum/spellbook_entry/summon @@ -614,6 +615,8 @@ desc = "A magical contract binding an apprentice wizard to your service, using it will summon them to your side." item_path = /obj/item/contract category = "Summons" + limit = 1 + is_ragin_restricted = TRUE //We have enough wizards already! Sheesh! /datum/spellbook_entry/item/tarotdeck name = "Guardian Deck" diff --git a/code/game/jobs/job/engineering_jobs.dm b/code/game/jobs/job/engineering_jobs.dm index e3081f425b23..030e3f2d2a86 100644 --- a/code/game/jobs/job/engineering_jobs.dm +++ b/code/game/jobs/job/engineering_jobs.dm @@ -83,7 +83,7 @@ dufflebag = /obj/item/storage/backpack/duffel/engineering box = /obj/item/storage/box/engineer - +/datum/job/engineer/trainee // SS220 ADDITION - new jobs /datum/job/atmos title = "Life Support Specialist" diff --git a/code/game/jobs/job/medical_jobs.dm b/code/game/jobs/job/medical_jobs.dm index 3449f62a653a..38eb18540a7b 100644 --- a/code/game/jobs/job/medical_jobs.dm +++ b/code/game/jobs/job/medical_jobs.dm @@ -76,6 +76,8 @@ satchel = /obj/item/storage/backpack/satchel_med dufflebag = /obj/item/storage/backpack/duffel/medical +/datum/job/doctor/intern // SS220 ADDITION - new jobs + /datum/job/coroner title = "Coroner" flag = JOB_CORONER diff --git a/code/game/jobs/job/science_jobs.dm b/code/game/jobs/job/science_jobs.dm index d6e468418fce..ae8330fce9d5 100644 --- a/code/game/jobs/job/science_jobs.dm +++ b/code/game/jobs/job/science_jobs.dm @@ -86,6 +86,7 @@ satchel = /obj/item/storage/backpack/satchel_tox dufflebag = /obj/item/storage/backpack/duffel/science +/datum/job/scientist/student // SS220 ADDITION - new jobs /datum/job/roboticist title = "Roboticist" @@ -121,3 +122,7 @@ l_ear = /obj/item/radio/headset/headset_sci id = /obj/item/card/id/roboticist pda = /obj/item/pda/roboticist + + backpack = /obj/item/storage/backpack/robotics + satchel = /obj/item/storage/backpack/satchel_robo + dufflebag = /obj/item/storage/backpack/duffel/robotics diff --git a/code/game/jobs/job/security_jobs.dm b/code/game/jobs/job/security_jobs.dm index f7c1a83c16fc..a4875d44b420 100644 --- a/code/game/jobs/job/security_jobs.dm +++ b/code/game/jobs/job/security_jobs.dm @@ -197,3 +197,4 @@ satchel = /obj/item/storage/backpack/satchel_sec dufflebag = /obj/item/storage/backpack/duffel/security +/datum/job/officer/cadet // SS220 ADDITION - new jobs diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm index 47b012eecffc..ca4071f4d6da 100644 --- a/code/game/jobs/job/supervisor.dm +++ b/code/game/jobs/job/supervisor.dm @@ -89,9 +89,9 @@ /datum/outfit/job/hop name = "Head of Personnel" jobtype = /datum/job/hop - uniform = /obj/item/clothing/under/rank/civilian/head_of_personnel + uniform = /obj/item/clothing/under/rank/civilian/hop shoes = /obj/item/clothing/shoes/brown - head = /obj/item/clothing/head/hopcap + head = /obj/item/clothing/head/hop glasses = /obj/item/clothing/glasses/hud/skills/sunglasses l_ear = /obj/item/radio/headset/heads/hop id = /obj/item/card/id/hop diff --git a/code/game/jobs/job_exp.dm b/code/game/jobs/job_exp.dm index 42c909098c38..ae628528e58b 100644 --- a/code/game/jobs/job_exp.dm +++ b/code/game/jobs/job_exp.dm @@ -3,7 +3,6 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( // NT ROLES ROLE_PAI = 0, - ROLE_POSIBRAIN = 5, // Same as cyborg job. ROLE_SENTIENT = 5, ROLE_ERT = 40, // High, because they're team-based, and we want ERT to be robust ROLE_DEATHSQUAD = 50, // Higher, see ERT and also they're OP as heck @@ -17,14 +16,12 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( ROLE_VAMPIRE = 5, ROLE_BLOB = 20, ROLE_REVENANT = 3, - ROLE_NINJA = 20, ROLE_MORPH = 5, ROLE_DEMON = 5, ROLE_ELITE = 5, // DUO ANTAGS ROLE_GUARDIAN = 20, - ROLE_GSPIDER = 5, // TEAM ANTAGS // Higher numbers here, because they require more experience to be played correctly diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index 23b2d842bc75..45c9d0d556c7 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -14,9 +14,20 @@ if(NOT_SELECTABLE in S.species_traits) return FALSE + // SS220 EDIT START + // Yes if admin - if(check_rights(R_ADMIN, FALSE)) - return TRUE + //if(check_rights(R_ADMIN, FALSE)) + // return TRUE + + if(GLOB.configuration.species_whitelist.species_whitelist_enabled) + if(!M.client?.prefs?.species_whitelist) + return FALSE + + if(!(species in M.client.prefs.species_whitelist)) + return FALSE + + // SS220 EDIT END // No if species is blacklisted if(S.blacklisted) diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index c1b66de25f8b..b20a4969e1de 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -97,7 +97,7 @@ qdel(B) for(var/mob/living/simple_animal/hostile/carp/holocarp/C in linkedholodeck) qdel(C) - holographic_items = A.copy_contents_to(linkedholodeck, platingRequired = TRUE, perfect_copy = FALSE) + holographic_items = A.copy_contents_to(linkedholodeck, platingRequired = TRUE) if(emagged) for(var/obj/item/holo/H in linkedholodeck) diff --git a/code/game/machinery/computer/atmos_controllers.dm b/code/game/machinery/computer/atmos_controllers.dm index 6ff44df86905..849ae9facf27 100644 --- a/code/game/machinery/computer/atmos_controllers.dm +++ b/code/game/machinery/computer/atmos_controllers.dm @@ -70,7 +70,7 @@ GLOBAL_LIST_EMPTY(gas_sensors) "-SAVE TO BUFFER-" = "multitool" ) - var/temp_answer = input(user, "Select an option to adjust", "Options!", null) as null|anything in options + var/temp_answer = tgui_input_list(user, "Select an option to adjust", "Options!", options) if(!Adjacent(user)) break @@ -191,7 +191,7 @@ GLOBAL_LIST_EMPTY(gas_sensors) to_chat(user, "Successfully added a new sensor/meter with name [new_name]") if("Remove") - var/to_remove = input(user, "Select a sensor/meter to remove", "Sensor/Meter Removal") as null|anything in sensor_name_uid_map + var/to_remove = tgui_input_list(user, "Select a sensor/meter to remove", "Sensor/Meter Removal", sensor_name_uid_map) if(!to_remove) return diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index baf96d4111c8..f799538d9c0d 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -72,7 +72,7 @@ . = TRUE if(!I.use_tool(src, user, 0, volume = I.tool_volume)) return - var/choice = input(user, "Circuit Setting", "What would you change the board setting to?") as null|anything in monitor_names_paths + var/choice = tgui_input_list(user, "Circuit Setting", "What would you change the board setting to?", monitor_names_paths) if(!choice) return board_name = choice @@ -527,7 +527,7 @@ if(istype(I, /obj/item/card/id) || istype(I, /obj/item/pda)) if(allowed(user)) user.visible_message("[user] waves [user.p_their()] ID past [src]'s access protocol scanner.", "You swipe your ID past [src]'s access protocol scanner.") - var/console_choice = input(user, "What do you want to configure the access to?", "Access Modification", "R&D Core") as null|anything in access_types + var/console_choice = tgui_input_list(user, "What do you want to configure the access to?", "Access Modification", access_types) if(!console_choice) return switch(console_choice) diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index abf956d90336..792ce397af4e 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -202,7 +202,7 @@ playsound(origin, 'sound/machines/terminal_prompt.ogg', 25, 0) - var/camera = input("Choose which camera you want to view", "Cameras") as null|anything in T + var/camera = tgui_input_list(target, "Choose which camera you want to view", "Cameras", T) var/obj/machinery/camera/final = T[camera] playsound(origin, "terminal_type", 25, 0) if(final) diff --git a/code/game/machinery/computer/camera_console.dm b/code/game/machinery/computer/camera_console.dm index a55fed5f1e40..2bae6d59a0ca 100644 --- a/code/game/machinery/computer/camera_console.dm +++ b/code/game/machinery/computer/camera_console.dm @@ -185,7 +185,7 @@ . = TRUE if(!I.use_tool(src, user, 0, volume = I.tool_volume)) return - var/direction = input(user, "Which direction?", "Select direction!") as null|anything in list("North", "East", "South", "West", "Centre") + var/direction = tgui_input_list(user, "Which direction?", "Select direction", list("North", "East", "South", "West", "Centre")) if(!direction || !Adjacent(user)) return pixel_x = 0 diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index f10b2b741e8c..e16579faae95 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -177,10 +177,9 @@ if(I.use_tool(src, user, 20, volume = I.tool_volume)) deconstruct(TRUE, user) -/obj/machinery/computer/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) +/obj/machinery/computer/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) if(!self_hurt && prob(50 * (damage / 15))) obj_break(MELEE) take_damage(damage, BRUTE) self_hurt = TRUE return ..() - diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index d35d03c84cda..558c13a5bef1 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -289,7 +289,7 @@ to destroy them and players will be able to make replacements. . = TRUE if(!I.use_tool(src, user, 0, volume = I.tool_volume)) return - var/choice = input(user, "Choose a new brand", "Select an Item") as null|anything in station_vendors + var/choice = tgui_input_list(user, "Choose a new brand", "Select an Item", station_vendors) if(!choice) return set_type(choice) @@ -569,7 +569,7 @@ to destroy them and players will be able to make replacements. . = TRUE if(!I.use_tool(src, user, 0, volume = I.tool_volume)) return - var/choice = input(user, "Circuit Setting", "What would you change the board setting to?") as null|anything in fridge_names_paths + var/choice = tgui_input_list(user, "Circuit Setting", "What would you change the board setting to?", fridge_names_paths) if(!choice) return set_type(user, choice) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index f62062ffd1a5..259bd3394d80 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -414,6 +414,23 @@ for(var/I in 1 to 5) new /obj/item/grenade/barrier/dropwall(src) +/obj/item/grenade/turret + name = "Pop-Up Turret grenade" + desc = "Inflates into a Pop-Up turret, shoots everyone on sight who wasn't the primer." + icon = 'icons/obj/grenade.dmi' + icon_state = "wallbang" + item_state = "flashbang" + var/owner_uid + +/obj/item/grenade/turret/attack_self(mob/user) + owner_uid = user.UID() + return ..() + +/obj/item/grenade/turret/prime() + var/obj/machinery/porta_turret/inflatable_turret/turret = new(get_turf(loc)) + turret.owner_uid = owner_uid + qdel(src) + #undef SINGLE #undef VERTICAL #undef HORIZONTAL diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 3b3aa9c76166..6c0a6bd9dff9 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -201,12 +201,12 @@ DA.update_name() qdel(src) -/obj/machinery/door/airlock/plasma/attackby(obj/C, mob/user, params) - if(is_hot(C) > 300) - message_admins("Plasma airlock ignited by [key_name_admin(user)] in ([x],[y],[z] - JMP)") +/obj/machinery/door/airlock/plasma/attackby(obj/item/C, mob/user, params) + if(C.get_heat() > 300) + message_admins("Plasma airlock ignited by [key_name_admin(user)] in ([x],[y],[z] - JMP)") log_game("Plasma airlock ignited by [key_name(user)] in ([x],[y],[z])") investigate_log("was ignited by [key_name(user)]","atmos") - ignite(is_hot(C)) + ignite(C.get_heat()) else return ..() diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index e37907cb6c63..2739d7fe6f93 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -1147,3 +1147,61 @@ GLOBAL_LIST_EMPTY(turret_icons) /obj/machinery/porta_turret/syndicate/pod/nuke_ship_interior health = 100 + +/obj/machinery/porta_turret/inflatable_turret + name = "Syndicate Pop-Up Turret" + desc = "Looks cheaply made on the defensive side but the gun barrel still shoots." + projectile = /obj/item/projectile/bullet/weakbullet3 + eprojectile = /obj/item/projectile/bullet/weakbullet3 + icon_state = "syndieturret0" + shot_sound = 'sound/weapons/gunshots/gunshot_mg.ogg' + eshot_sound = 'sound/weapons/gunshots/gunshot_mg.ogg' + health = 50 + syndicate = TRUE + installation = null + always_up = TRUE + requires_power = FALSE + power_state = NO_POWER_USE + has_cover = FALSE + raised = TRUE + scan_range = 9 + + faction = "syndicate" + emp_vulnerable = FALSE + + lethal = TRUE + lethal_is_configurable = FALSE + targetting_is_configurable = FALSE + check_arrest = FALSE + check_records = FALSE + check_weapons = FALSE + check_access = FALSE + check_anomalies = TRUE + check_synth = TRUE + ailock = TRUE + var/owner_uid + var/icon_state_initial = "syndieturret0" + var/icon_state_active = "syndieturret1" + var/icon_state_destroyed = "syndieturret2" + +/obj/machinery/porta_turret/inflatable_turret/assess_and_assign(atom/movable/AM, list/targets, list/secondarytargets) + if(AM.UID() == owner_uid) + return + . = ..() + +/obj/machinery/porta_turret/inflatable_turret/setup() + return + +/obj/machinery/porta_turret/inflatable_turret/update_icon_state() + if(stat & BROKEN) + icon_state = icon_state_destroyed + else if(enabled) + icon_state = icon_state_active + else + icon_state = icon_state_initial + +/obj/machinery/porta_turret/inflatable_turret/CanPass(atom/A) + return ((stat & BROKEN) || !isliving(A)) + +/obj/machinery/porta_turret/inflatable_turret/CanPathfindPass(obj/item/card/id/ID, to_dir, atom/movable/caller, no_id = FALSE) + return ((stat & BROKEN) || !isliving(caller)) diff --git a/code/game/machinery/tcomms/tcomms_core.dm b/code/game/machinery/tcomms/tcomms_core.dm index a072f9dd55c7..a4b85d853382 100644 --- a/code/game/machinery/tcomms/tcomms_core.dm +++ b/code/game/machinery/tcomms/tcomms_core.dm @@ -259,7 +259,7 @@ // Job Format if("nttc_job_indicator_type") - var/card_style = input(usr, "Pick a job card format.", "Job Card Format") as null|anything in nttc.job_card_styles + var/card_style = tgui_input_list(usr, "Pick a job card format", "Job Card Format", nttc.job_card_styles) if(!card_style) return nttc.job_indicator_type = card_style @@ -268,7 +268,7 @@ // Language Settings if("nttc_setting_language") - var/new_language = input(usr, "Pick a language to convert messages to.", "Language Conversion") as null|anything in nttc.valid_languages + var/new_language = tgui_input_list(usr, "Pick a language to convert messages to", "Language Conversion", nttc.valid_languages) if(!new_language) return if(new_language == "--DISABLE--") diff --git a/code/game/machinery/vendors/vending.dm b/code/game/machinery/vendors/vending.dm index 2e9e0f3d21bd..813208452d3c 100644 --- a/code/game/machinery/vendors/vending.dm +++ b/code/game/machinery/vendors/vending.dm @@ -987,14 +987,13 @@ attacker.visible_message("[attacker] lightly presses [target] against [src].", "You lightly press [target] against [src], you don't want to hurt [target.p_them()]!") return TRUE -/obj/machinery/economy/vending/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) +/obj/machinery/economy/vending/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) if(HAS_TRAIT(C, TRAIT_FLATTENED)) return ..() tilt(C, from_combat = TRUE) mob_hurt = TRUE return ..() - /* * Vending machine types */ diff --git a/code/game/machinery/vendors/wardrobe_vendors.dm b/code/game/machinery/vendors/wardrobe_vendors.dm index f0f1ed336700..387c696929ef 100644 --- a/code/game/machinery/vendors/wardrobe_vendors.dm +++ b/code/game/machinery/vendors/wardrobe_vendors.dm @@ -391,7 +391,10 @@ /obj/item/clothing/gloves/fingerless = 3, /obj/item/clothing/shoes/laceup = 3, /obj/item/clothing/shoes/white = 3, - /obj/item/clothing/shoes/black = 3) + /obj/item/clothing/shoes/black = 3, + /obj/item/storage/backpack/robotics = 2, + /obj/item/storage/backpack/satchel_robo = 2, + /obj/item/storage/backpack/duffel/robotics = 2) contraband = list(/obj/item/toy/figure/crew/roboticist = 1, /obj/item/toy/figure/crew/borg = 1) @@ -406,7 +409,10 @@ /obj/item/clothing/gloves/fingerless = 20, /obj/item/clothing/shoes/laceup = 30, /obj/item/clothing/shoes/white = 20, - /obj/item/clothing/shoes/black = 20) + /obj/item/clothing/shoes/black = 20, + /obj/item/storage/backpack/robotics = 50, + /obj/item/storage/backpack/satchel_robo = 50, + /obj/item/storage/backpack/duffel/robotics = 50) refill_canister = /obj/item/vending_refill/robodrobe diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 4eefbfe2685a..6e3243d9c6b6 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -1,3 +1,12 @@ +#define OPEN_EMPTY 1 +#define CLOSED_EMPTY 2 +#define OPEN_FULL 3 +#define CLOSED_FULL 4 +#define RUNNING 5 +//#define OPEN_BLOODY 6 is tied to an unused icon state +#define CLOSED_BLOODY 7 +#define RUNNING_BLOODY 8 + /obj/machinery/washing_machine name = "washing machine" desc = "Gets rid of those pesky bloodstains, or your money back!" @@ -5,21 +14,42 @@ icon_state = "wm_10" density = TRUE anchored = TRUE - var/state = 1 - //1 = empty, open door - //2 = empty, closed door - //3 = full, open door - //4 = full, closed door - //5 = running - //6 = blood, open door - //7 = blood, closed door - //8 = blood, running + /// Integer ID corresponding to whether the machine can accept more items, is running, will produce gibs, etc. + var/state = OPEN_EMPTY var/panel = FALSE - //FALSE = closed - //TRUE = open - var/hacked = TRUE //Bleh, screw hacking, let's have it hacked by default. - var/gibs_ready = 0 + var/gibs_ready = FALSE var/obj/crayon + /// Typecache of washable items + var/list/can_be_washed = list( + /obj/item/stack/sheet/hairlesshide, + /obj/item/clothing/under, + /obj/item/clothing/mask, + /obj/item/clothing/head, + /obj/item/clothing/gloves, + /obj/item/clothing/shoes, + /obj/item/clothing/suit, + /obj/item/bedsheet + ) + /// Typecache of items that do not fit, overrides the whitelist + var/list/does_not_fit = list( + /obj/item/clothing/under/plasmaman, + /obj/item/clothing/suit/space, + /obj/item/clothing/suit/syndicatefake, + /obj/item/clothing/suit/cyborg_suit, + /obj/item/clothing/suit/bomb_suit, + /obj/item/clothing/suit/armor, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/cigarette, + /obj/item/clothing/head/syndicatefake, + /obj/item/clothing/head/helmet, + /obj/item/clothing/gloves/furgloves + ) + +/obj/machinery/washing_machine/Initialize(mapload) + . = ..() + + can_be_washed = typecacheof(can_be_washed) + does_not_fit = typecacheof(does_not_fit) /obj/machinery/washing_machine/examine(mob/user) . = ..() @@ -31,52 +61,51 @@ start(user) /obj/machinery/washing_machine/proc/start(mob/user) - if(state != 4) + if(state != CLOSED_FULL) to_chat(user, "The washing machine cannot run in this state.") return - if(locate(/mob,contents)) - state = 8 + if(locate(/mob) in src) + state = RUNNING_BLOODY else - state = 5 + state = RUNNING update_icon(UPDATE_ICON_STATE) sleep(200) - for(var/atom/A in contents) + for(var/atom/A in src) A.clean_blood() //Tanning! - for(var/obj/item/stack/sheet/hairlesshide/HH in contents) - var/obj/item/stack/sheet/wetleather/WL = new(src) - WL.amount = HH.amount + for(var/obj/item/stack/sheet/hairlesshide/HH in src) + new /obj/item/stack/sheet/wetleather(src, HH.amount) qdel(HH) if(crayon) var/wash_color - if(istype(crayon,/obj/item/toy/crayon)) + if(istype(crayon, /obj/item/toy/crayon)) var/obj/item/toy/crayon/CR = crayon wash_color = CR.colourName - else if(istype(crayon,/obj/item/stamp)) + else if(istype(crayon, /obj/item/stamp)) var/obj/item/stamp/ST = crayon wash_color = ST.item_color if(wash_color) - var/new_jumpsuit_icon_state = "" - var/new_jumpsuit_item_state = "" - var/new_jumpsuit_name = "" - var/new_glove_icon_state = "" - var/new_glove_item_state = "" - var/new_glove_name = "" - var/new_bandana_icon_state = "" - var/new_bandana_item_state = "" - var/new_bandana_name = "" - var/new_shoe_icon_state = "" - var/new_shoe_name = "" - var/new_sheet_icon_state = "" - var/new_sheet_name = "" - var/new_sheet_item_state = "" - var/new_softcap_icon_state = "" - var/new_softcap_name = "" + var/new_jumpsuit_icon_state + var/new_jumpsuit_item_state + var/new_jumpsuit_name + var/new_glove_icon_state + var/new_glove_item_state + var/new_glove_name + var/new_bandana_icon_state + var/new_bandana_item_state + var/new_bandana_name + var/new_shoe_icon_state + var/new_shoe_name + var/new_sheet_icon_state + var/new_sheet_name + var/new_sheet_item_state + var/new_softcap_icon_state + var/new_softcap_name var/new_desc = "The colors are a bit dodgy." for(var/T in typesof(/obj/item/clothing/under)) var/obj/item/clothing/under/J = new T @@ -131,7 +160,7 @@ break qdel(H) if(new_jumpsuit_icon_state && new_jumpsuit_item_state && new_jumpsuit_name) - for(var/obj/item/clothing/under/J in contents) + for(var/obj/item/clothing/under/J in src) if(!J.dyeable) continue J.item_state = new_jumpsuit_item_state @@ -140,7 +169,7 @@ J.name = new_jumpsuit_name J.desc = new_desc if(new_glove_icon_state && new_glove_item_state && new_glove_name) - for(var/obj/item/clothing/gloves/color/G in contents) + for(var/obj/item/clothing/gloves/color/G in src) if(!G.dyeable) continue G.item_state = new_glove_item_state @@ -150,19 +179,19 @@ if(!istype(G, /obj/item/clothing/gloves/color/black/thief)) G.desc = new_desc if(new_shoe_icon_state && new_shoe_name) - for(var/obj/item/clothing/shoes/S in contents) + for(var/obj/item/clothing/shoes/S in src) if(!S.dyeable) continue - if(S.chained == 1) - S.chained = 0 + if(S.chained) + S.chained = FALSE S.slowdown = SHOES_SLOWDOWN - new /obj/item/restraints/handcuffs( src ) + new /obj/item/restraints/handcuffs(src) S.icon_state = new_shoe_icon_state S.item_color = wash_color S.name = new_shoe_name S.desc = new_desc if(new_bandana_icon_state && new_bandana_name) - for(var/obj/item/clothing/mask/bandana/M in contents) + for(var/obj/item/clothing/mask/bandana/M in src) if(!M.dyeable) continue M.item_state = new_bandana_item_state @@ -171,14 +200,14 @@ M.name = new_bandana_name M.desc = new_desc if(new_sheet_icon_state && new_sheet_name) - for(var/obj/item/bedsheet/B in contents) + for(var/obj/item/bedsheet/B in src) B.icon_state = new_sheet_icon_state B.item_color = wash_color B.item_state = new_sheet_item_state B.name = new_sheet_name B.desc = new_desc if(new_softcap_icon_state && new_softcap_name) - for(var/obj/item/clothing/head/soft/H in contents) + for(var/obj/item/clothing/head/soft/H in src) if(!H.dyeable) continue H.icon_state = new_softcap_icon_state @@ -188,143 +217,103 @@ QDEL_NULL(crayon) - if(locate(/mob,contents)) - state = 7 - gibs_ready = 1 + if(locate(/mob) in src) + state = CLOSED_BLOODY + gibs_ready = TRUE else - state = 4 + state = CLOSED_FULL update_icon(UPDATE_ICON_STATE) /obj/machinery/washing_machine/update_icon_state() icon_state = "wm_[state][panel]" -/obj/machinery/washing_machine/attackby(obj/item/W as obj, mob/user as mob, params) +/obj/machinery/washing_machine/attackby(obj/item/W, mob/user, params) if(default_unfasten_wrench(user, W)) return - if(istype(W,/obj/item/toy/crayon) ||istype(W,/obj/item/stamp)) - if(state in list( 1, 3, 6)) + if(istype(W, /obj/item/toy/crayon) || istype(W, /obj/item/stamp)) + if(state in list(OPEN_EMPTY, OPEN_FULL)) if(!crayon) user.drop_item() crayon = W - crayon.loc = src + crayon.forceMove(src) update_icon(UPDATE_ICON_STATE) else return ..() else return ..() - else if(istype(W,/obj/item/grab)) - if((state == 1) && hacked) + else if(istype(W, /obj/item/grab)) + if(state == OPEN_EMPTY) var/obj/item/grab/G = W if(ishuman(G.assailant) && iscorgi(G.affecting)) - G.affecting.loc = src + G.affecting.forceMove(src) qdel(G) - state = 3 + state = OPEN_FULL update_icon(UPDATE_ICON_STATE) else return ..() - else if(istype(W,/obj/item/stack/sheet/hairlesshide) || \ - istype(W,/obj/item/clothing/under) || \ - istype(W,/obj/item/clothing/mask) || \ - istype(W,/obj/item/clothing/head) || \ - istype(W,/obj/item/clothing/gloves) || \ - istype(W,/obj/item/clothing/shoes) || \ - istype(W,/obj/item/clothing/suit) || \ - istype(W,/obj/item/bedsheet)) - - //YES, it's hardcoded... saves a var/can_be_washed for every single clothing item. - if(istype(W,/obj/item/clothing/under/plasmaman)) - to_chat(user, "This item does not fit.") - return - if(istype(W,/obj/item/clothing/suit/space)) - to_chat(user, "This item does not fit.") - return - if(istype(W,/obj/item/clothing/suit/syndicatefake)) - to_chat(user, "This item does not fit.") - return -// if(istype(W,/obj/item/clothing/suit/powered)) -// to_chat(user, "This item does not fit.") -// return - if(istype(W,/obj/item/clothing/suit/cyborg_suit)) - to_chat(user, "This item does not fit.") - return - if(istype(W,/obj/item/clothing/suit/bomb_suit)) - to_chat(user, "This item does not fit.") - return - if(istype(W,/obj/item/clothing/suit/armor)) - to_chat(user, "This item does not fit.") - return - if(istype(W,/obj/item/clothing/mask/gas)) - to_chat(user, "This item does not fit.") - return - if(istype(W,/obj/item/clothing/mask/cigarette)) - to_chat(user, "This item does not fit.") - return - if(istype(W,/obj/item/clothing/head/syndicatefake)) - to_chat(user, "This item does not fit.") - return -// if(istype(W,/obj/item/clothing/head/powered)) -// to_chat(user, "This item does not fit.") -// return - if(istype(W,/obj/item/clothing/head/helmet)) - to_chat(user, "This item does not fit.") - return - if(istype(W,/obj/item/clothing/gloves/furgloves)) - to_chat(user, "This item does not fit.") + else if(is_type_in_typecache(W, can_be_washed)) + if(is_type_in_typecache(W, does_not_fit)) + to_chat(user, "This item does not fit.") return if(istype(W, /obj/item/clothing/gloves/color/black/krav_maga/sec)) to_chat(user, "Washing these gloves would fry the electronics!") return - if(W.flags & NODROP) //if "can't drop" item - to_chat(user, "\The [W] is stuck to your hand, you cannot put it in the washing machine!") + if(W.flags & NODROP) + to_chat(user, "[W] is stuck to your hand!") return - if(contents.len < 5) - if(state in list(1, 3)) + if(length(contents) < 5) + if(state in list(OPEN_EMPTY, OPEN_FULL)) user.drop_item() - W.loc = src - state = 3 + W.forceMove(src) + state = OPEN_FULL else - to_chat(user, "You can't put the item in right now.") + to_chat(user, "The door is closed!") else - to_chat(user, "The washing machine is full.") + to_chat(user, "[src] is full!") update_icon(UPDATE_ICON_STATE) else return ..() -/obj/machinery/washing_machine/attack_hand(mob/user as mob) +/obj/machinery/washing_machine/attack_hand(mob/user) switch(state) - if(1) - state = 2 - if(2) - state = 1 - for(var/atom/movable/O in contents) - O.loc = src.loc - if(3) - state = 4 - if(4) - state = 3 - for(var/atom/movable/O in contents) - O.loc = src.loc + if(OPEN_EMPTY) + state = CLOSED_EMPTY + if(CLOSED_EMPTY) + for(var/atom/movable/O in src) + O.forceMove(loc) + crayon = null + state = OPEN_EMPTY + if(OPEN_FULL) + state = CLOSED_FULL + if(CLOSED_FULL) + for(var/atom/movable/O in src) + O.forceMove(loc) crayon = null - state = 1 - if(5) + state = OPEN_EMPTY + if(RUNNING) to_chat(user, "[src] is busy.") - if(6) - state = 7 - if(7) + if(CLOSED_BLOODY) if(gibs_ready) - gibs_ready = 0 - if(locate(/mob,contents)) - var/mob/M = locate(/mob,contents) + gibs_ready = FALSE + if(locate(/mob) in src) + var/mob/M = locate() in src M.gib() - for(var/atom/movable/O in contents) - O.loc = src.loc + for(var/atom/movable/O in src) + O.forceMove(loc) crayon = null - state = 1 - + state = OPEN_EMPTY update_icon(UPDATE_ICON_STATE) /obj/machinery/washing_machine/deconstruct(disassembled = TRUE) new /obj/item/stack/sheet/metal(drop_location(), 2) qdel(src) + +#undef OPEN_EMPTY +#undef CLOSED_EMPTY +#undef OPEN_FULL +#undef CLOSED_FULL +#undef RUNNING +#undef CLOSED_BLOODY +#undef RUNNING_BLOODY diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 8fb9c54c26cd..f52dcec444c3 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1206,7 +1206,7 @@ if(!user.unEquip(mmi_as_oc)) to_chat(user, "\the [mmi_as_oc] is stuck to your hand, you cannot put it in \the [src]") return FALSE - var/mob/living/carbon/brain/brainmob = mmi_as_oc.brainmob + var/mob/living/brain/brainmob = mmi_as_oc.brainmob brainmob.reset_perspective(src) occupant = brainmob brainmob.forceMove(src) //should allow relaymove @@ -1231,13 +1231,13 @@ /obj/mecha/proc/pilot_is_mmi() var/atom/movable/mob_container if(isbrain(occupant)) - var/mob/living/carbon/brain/brain = occupant + var/mob/living/brain/brain = occupant mob_container = brain.container if(istype(mob_container, /obj/item/mmi)) return 1 return 0 -/obj/mecha/proc/pilot_mmi_hud(mob/living/carbon/brain/pilot) +/obj/mecha/proc/pilot_mmi_hud(mob/living/brain/pilot) return /obj/mecha/Exited(atom/movable/M, atom/newloc) @@ -1258,7 +1258,7 @@ mob_container = occupant RemoveActions(occupant, human_occupant = 1) else if(isbrain(occupant)) - var/mob/living/carbon/brain/brain = occupant + var/mob/living/brain/brain = occupant RemoveActions(brain) mob_container = brain.container else if(isAI(occupant)) @@ -1560,11 +1560,11 @@ for(var/obj/item/mecha_parts/mecha_equipment/MT in equipment) if(!MT.selectable || selected == MT) continue - var/mutable_appearance/clean/MA = new(MT) + var/mutable_appearance/clean/MA = mutable_appearance(MT.icon, MT.icon_state, MT.layer) choices[MT.name] = MA choices_to_refs[MT.name] = MT - var/choice = show_radial_menu(L, src, choices, radius = 48, custom_check = CALLBACK(src, PROC_REF(check_menu), L)) + var/choice = show_radial_menu(L, L, choices, radius = 48, custom_check = CALLBACK(src, PROC_REF(check_menu), L)) if(!check_menu(L) || choice == "Cancel / No Change") return diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index 3fd3cf8742b0..05d1d5c38ced 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -38,7 +38,7 @@ A.remove_hud_from(H) builtin_hud_user = 0 else if((isbrain(occupant) || pilot_is_mmi()) && builtin_hud_user) - var/mob/living/carbon/brain/H = occupant + var/mob/living/brain/H = occupant var/datum/atom_hud/A = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] A.remove_hud_from(H) builtin_hud_user = 0 diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 0edc1089bb4e..bbf6725edd2e 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -138,9 +138,12 @@ if(!in_range(user, src) || !isturf(user.loc) || user.incapacitated() || M.anchored) return FALSE - if(isguardian(user)) - if(M.loc == user.loc || user.alpha == 60) //Alpha is for detecting ranged guardians in scout mode - return //unmanifested guardians shouldn't be able to buckle mobs + if(isguardian(user) && (M.loc == user.loc || user.alpha == 60)) //Alpha is for detecting ranged guardians in scout mode + return //unmanifested guardians shouldn't be able to buckle mobs + + // TRAIT_HANDS_BLOCKED check is necessary to prevent delay when incapacitated, but still keep a delay in combat + if(M != user && !HAS_TRAIT(M, TRAIT_HANDS_BLOCKED) && (!in_range(M, src) || !do_after(user, 1 SECONDS, target = M))) + return FALSE if(M != user && (!in_range(M, src) || !do_after(user, 1 SECONDS, target = M))) return FALSE diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index d1e235a9c9dc..b4b65c935bc3 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -129,7 +129,7 @@ for(var/mob/living/M in range(0, src)) gravShock(M) for(var/mob/living/M in orange(4, src)) - if(!M.mob_negates_gravity()) + if(!M.mob_negates_gravity() && !issilicon(M)) step_towards(M,src) for(var/obj/O in range(0, src)) if(!O.anchored && O.loc != src && O.move_resist < MOVE_FORCE_OVERPOWERING) // so it cannot throw the anomaly core or super big things diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index d049d275c932..c0213fe24e20 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -1,8 +1,6 @@ #define DRYING_TIME 5 * 60 * 10 //for 1 unit of depth in puddle (amount var) #define ALWAYS_IN_GRAVITY 2 -GLOBAL_LIST_EMPTY(splatter_cache) - /obj/effect/decal/cleanable/blood name = "blood" var/dryname = "dried blood" diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index b3457fc2149a..35d339aebcb7 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -11,6 +11,7 @@ plane = FLOOR_PLANE ///for blood n vomit in zero G --- IN GRAVITY=TRUE; NO GRAVITY=FALSE var/gravity_check = TRUE + hud_possible = list(JANI_HUD) /obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal if(mergeable_decal) @@ -86,6 +87,10 @@ /obj/effect/decal/cleanable/Initialize(mapload) . = ..() + var/datum/atom_hud/data/janitor/jani_hud = GLOB.huds[DATA_HUD_JANITOR] + prepare_huds() + jani_hud.add_to_hud(src) + jani_hud_set_sign() if(try_merging_decal()) return TRUE if(random_icon_states && length(src.random_icon_states) > 0) @@ -99,6 +104,8 @@ /obj/effect/decal/cleanable/Destroy() if(smoothing_flags) QUEUE_SMOOTH_NEIGHBORS(src) + var/datum/atom_hud/data/janitor/jani_hud = GLOB.huds[DATA_HUD_JANITOR] + jani_hud.remove_from_hud(src) return ..() /obj/effect/decal/cleanable/proc/try_merging_decal(turf/T) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 3b5bb6c80dd3..9482984df034 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -24,17 +24,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp /obj/effect/landmark/lightsout name = "Electrical Storm Epicentre" -/obj/effect/landmark/awaystart - name = "awaystart" - icon = 'icons/effects/spawner_icons.dmi' - icon_state = "Assistant" - -INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away missions break - -/obj/effect/landmark/awaystart/Initialize(mapload) - GLOB.awaydestinations.Add(src) - return ..() - /obj/effect/landmark/spawner icon = 'icons/effects/spawner_icons.dmi' icon_state = "questionmark" diff --git a/code/game/objects/effects/meteors.dm b/code/game/objects/effects/meteors.dm index 2bfa9f094e81..ec519dfeca5f 100644 --- a/code/game/objects/effects/meteors.dm +++ b/code/game/objects/effects/meteors.dm @@ -13,8 +13,6 @@ GLOBAL_LIST_INIT(meteors_catastrophic, list(/obj/effect/meteor/medium = 3, /obj/ GLOBAL_LIST_INIT(meteors_gore, list(/obj/effect/meteor/meaty = 5, /obj/effect/meteor/meaty/xeno = 1)) //for meaty ore event -GLOBAL_LIST_INIT(meteors_dust, list(/obj/effect/meteor/dust)) //for space dust event - GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops @@ -364,8 +362,6 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops //Spookoween meteors ///////////////////////// -GLOBAL_LIST_INIT(meteorsSPOOKY, list(/obj/effect/meteor/pumpkin)) - /obj/effect/meteor/pumpkin name = "PUMPKING" desc = "THE PUMPKING'S COMING!" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 61f4e4b8656c..d6ba038494ce 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -133,7 +133,6 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons /// Holder var for the item outline filter, null when no outline filter on the item. var/outline_filter - /obj/item/New() ..() @@ -646,7 +645,7 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons if(w_class < WEIGHT_CLASS_BULKY) itempush = FALSE //too light to push anything if(isliving(hit_atom)) //Living mobs handle hit sounds differently. - if(is_hot(src)) + if(get_heat()) var/mob/living/L = hit_atom L.IgniteMob() var/volume = get_volume_by_throwforce_and_or_w_class() @@ -902,3 +901,6 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.regenerate_icons() + +/obj/item/proc/get_heat() + return diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index 3dde2eb17be5..00ae37bb2b2a 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -42,7 +42,7 @@ return TRUE /obj/item/candle/attackby(obj/item/W, mob/user, params) - if(is_hot(W)) + if(W.get_heat()) light("[user] lights [src] with [W].") return return ..() @@ -152,6 +152,9 @@ infinite = FALSE wax = 1 // next process will burn it out +/obj/item/candle/get_heat() + return lit * 1000 + #undef TALL_CANDLE #undef MID_CANDLE #undef SHORT_CANDLE diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 069c77dac699..e9c21cd2107a 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -79,7 +79,7 @@ if(pushed_over) to_chat(user, "Right [src] first!") return - var/new_appearance = input(user, "Choose a new appearance for [src].", "26th Century Deception") as null|anything in possible_appearances + var/new_appearance = tgui_input_list(user, "Choose a new appearance for [src]", "26th Century Deception", possible_appearances) if(!Adjacent(usr)) user.visible_message("You need to be closer!") return diff --git a/code/game/objects/items/collar.dm b/code/game/objects/items/collar.dm index 6d58c8c2c536..1a1a40a6cb35 100644 --- a/code/game/objects/items/collar.dm +++ b/code/game/objects/items/collar.dm @@ -14,7 +14,7 @@ /obj/item/petcollar/attack_self(mob/user) var/option = "Change Name" if(access_id) - option = input(user, "What do you want to do?", "[src]", option) as null|anything in list("Change Name", "Remove ID") + option = tgui_input_list(user, "What do you want to do?", "[src]", list("Change Name", "Remove ID")) if(QDELETED(src) || !Adjacent(user)) return switch(option) diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm index 5571328920a1..33510ccccf5d 100644 --- a/code/game/objects/items/control_wand.dm +++ b/code/game/objects/items/control_wand.dm @@ -49,45 +49,82 @@ . = ..() . += "It's current mode is: [mode]" -/obj/item/door_remote/afterattack(obj/machinery/door/airlock/D, mob/user) - if(!istype(D)) - return +/obj/item/door_remote/afterattack(obj/target, mob/user) + if(istype(target, /obj/machinery/door/airlock)) + access_airlock(target, user) + if(istype(target, /obj/machinery/door/window)) + access_windoor(target, user) + +/obj/item/door_remote/proc/access_airlock(obj/machinery/door/airlock/D, mob/user) if(HAS_TRAIT(D, TRAIT_CMAGGED)) to_chat(user, "The door doesn't respond to [src]!") return + if(D.is_special) to_chat(user, "[src] cannot access this kind of door!") return + if(!(D.arePowerSystemsOn())) to_chat(user, "[D] has no power!") return + if(!D.requiresID()) to_chat(user, "[D]'s ID scan is disabled!") return - if(D.check_access(src.ID)) - D.add_hiddenprint(user) - switch(mode) - if(WAND_OPEN) - if(D.density) - D.open() - else - D.close() - if(WAND_BOLT) - if(D.locked) - D.unlock() - else - D.lock() - if(WAND_EMERGENCY) - if(D.emergency) - D.emergency = FALSE - else - D.emergency = TRUE - D.update_icon() - if(WAND_SPEED) - D.normalspeed = !D.normalspeed - to_chat(user, "[D] is now in [D.normalspeed ? "normal" : "fast"] mode.") - else + + if(!D.check_access(src.ID)) to_chat(user, "[src] does not have access to this door.") + return + + D.add_hiddenprint(user) + switch(mode) + if(WAND_OPEN) + if(D.density) + D.open() + else + D.close() + if(WAND_BOLT) + if(D.locked) + D.unlock() + else + D.lock() + if(WAND_EMERGENCY) + D.emergency = !D.emergency + D.update_icon() + if(WAND_SPEED) + D.normalspeed = !D.normalspeed + to_chat(user, "[D] is now in [D.normalspeed ? "normal" : "fast"] mode.") + +/obj/item/door_remote/proc/access_windoor(obj/machinery/door/window/D, mob/user) + if(HAS_TRAIT(D, TRAIT_CMAGGED)) + to_chat(user, "The door doesn't respond to [src]!") + return + + if(!D.has_power()) + to_chat(user, "[D] has no power!") + return + + if(!D.requiresID()) + to_chat(user, "[D]'s ID scan is disabled!") + return + + if(!D.check_access(ID)) + to_chat(user, "[src] does not have access to this door.") + return + + D.add_hiddenprint(user) + switch(mode) + if(WAND_OPEN) + if(D.density) + D.open() + else + D.close() + if(WAND_BOLT) + to_chat(user, "[D] has no bolting functionality.") + if(WAND_EMERGENCY) + to_chat(user, "[D] has no emergency access functionality.") + if(WAND_SPEED) + to_chat(user, "[D] has no speed change functionality.") /obj/item/door_remote/omni name = "omni door remote" @@ -145,8 +182,8 @@ var/hack_speed = 1.5 SECONDS var/busy = FALSE -/obj/item/door_remote/omni/access_tuner/afterattack(obj/machinery/door/airlock/D, mob/user) - if(!istype(D)) +/obj/item/door_remote/omni/access_tuner/afterattack(obj/machinery/door/D, mob/user) + if(!istype(D, /obj/machinery/door/airlock) && !istype(D, /obj/machinery/door/window)) return if(busy) to_chat(user, "[src] is alreading interfacing with a door!") @@ -186,16 +223,16 @@ playsound(src, 'sound/items/keyring_shake.ogg', 50) cooldown = world.time + JANGLE_COOLDOWN -/obj/item/door_remote/janikeyring/afterattack(obj/machinery/door/airlock/D, mob/user, proximity) +/obj/item/door_remote/janikeyring/afterattack(obj/machinery/door/D, mob/user, proximity) if(!proximity) return - if(!istype(D)) + if(!istype(D, /obj/machinery/door/airlock) && !istype(D, /obj/machinery/door/window)) return if(busy) - to_chat(user, "You are already using [src] on the [D] airlock's access panel!") + to_chat(user, "You are already using [src] on the [D]'s access panel!") return busy = TRUE - to_chat(user, "You fiddle with [src], trying different keys to open the [D] airlock...") + to_chat(user, "You fiddle with [src], trying different keys to open the [D]...") playsound(src, 'sound/items/keyring_unlock.ogg', 50) var/mob/living/carbon/human/H = user @@ -204,14 +241,11 @@ else hack_speed = rand(5, 20) SECONDS - if(!do_after(user, hack_speed, target = D, progress = 0)) - busy = FALSE - return + if(do_after(user, hack_speed, target = D, progress = 0)) + . = ..() busy = FALSE - if(!istype(D)) - return - +/obj/item/door_remote/janikeyring/access_airlock(obj/machinery/door/airlock/D, mob/user) if(HAS_TRAIT(D, TRAIT_CMAGGED)) to_chat(user, "[src] won't fit in the [D] airlock's access panel, there's slime everywhere!") return @@ -224,15 +258,30 @@ to_chat(user, "The [D] airlock has no power!") return - if(D.check_access(ID)) - D.add_hiddenprint(user) - if(D.density) - D.open() - else - to_chat(user, "The [D] airlock is already open!") + if(!D.check_access(ID)) + to_chat(user, "[src] does not seem to have a key for the [D] airlock's access panel!") + return + + D.add_hiddenprint(user) + if(D.density) + D.open() + else + to_chat(user, "The [D] airlock is already open!") +/obj/item/door_remote/janikeyring/access_windoor(obj/machinery/door/window/D, mob/user) + if(!(D.has_power())) + to_chat(user, "[D] has no power!") + return + + if(!D.check_access(ID)) + to_chat(user, "[src] does not seem to have a key for the [D]'s access panel!") + return + + D.add_hiddenprint(user) + if(D.density) + D.open() else - to_chat(user, "[src] does not seem to have a key for the [D] airlock's access panel!") + to_chat(user, "The [D] is already open!") #undef WAND_OPEN #undef WAND_BOLT diff --git a/code/game/objects/items/devices/enginepicker.dm b/code/game/objects/items/devices/enginepicker.dm index 215addfe81ed..46cd53485651 100644 --- a/code/game/objects/items/devices/enginepicker.dm +++ b/code/game/objects/items/devices/enginepicker.dm @@ -28,8 +28,7 @@ return locatebeacons() - var/default = null - var/E = input("Select the station's Engine:", "[src]", default) as null|anything in list_enginebeacons + var/E = tgui_input_list(user, "Select the station's Engine", "[src]", list_enginebeacons) if(E) processchoice(E, user) else @@ -51,8 +50,7 @@ var/turf/T = get_turf(choice) if(choice.enginetype.len > 1) //If the beacon has multiple engine types - var/default = null - var/E = input("You have selected a combined beacon, which option would you prefer?", "[src]", default) as null|anything in choice.enginetype + var/E = tgui_input_list(user, "You have selected a combined beacon, which option would you prefer?", "[src]", choice.enginetype) if(E) engtype = E issuccessful = TRUE diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index d471e918c6e6..62ac92441115 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -230,6 +230,9 @@ return TRUE return ..() +/obj/item/flashlight/flare/get_heat() + return produce_heat * on * 1000 + // GLOWSTICKS /obj/item/flashlight/flare/glowstick diff --git a/code/game/objects/items/devices/painter/airlock_painter.dm b/code/game/objects/items/devices/painter/airlock_painter.dm index 28d3863553e7..08fe5ffce164 100644 --- a/code/game/objects/items/devices/painter/airlock_painter.dm +++ b/code/game/objects/items/devices/painter/airlock_painter.dm @@ -23,7 +23,7 @@ "Standard" = /obj/machinery/door/airlock) /datum/painter/airlock/pick_color(mob/user) - var/choice = input(user, "Please select a paintjob.") as null|anything in available_paint_jobs + var/choice = tgui_input_list(user, "Please select a paintjob.", "Airlock painter", available_paint_jobs) if(!choice) return paint_setting = choice diff --git a/code/game/objects/items/devices/painter/pipe_painter.dm b/code/game/objects/items/devices/painter/pipe_painter.dm index 17c383809aac..fb254955d414 100644 --- a/code/game/objects/items/devices/painter/pipe_painter.dm +++ b/code/game/objects/items/devices/painter/pipe_painter.dm @@ -12,7 +12,10 @@ paint_setting = pick(modes) /datum/painter/pipe/pick_color(mob/user) - paint_setting = input("Which color do you want to use?", null, paint_setting) in modes + var/new_paint_setting = tgui_input_list(user, "Which color do you want to use?", "Pick color", modes) + if(!new_paint_setting) + return + paint_setting = new_paint_setting /datum/painter/pipe/paint_atom(atom/target, mob/user) if(!istype(target, /obj/machinery/atmospherics/pipe)) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index e4a969b1446f..f78588a832e1 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -59,6 +59,45 @@ user.drop_item() qdel(src) +/obj/item/radio/beacon/syndicate/bundle/ + name = "suspicious beacon" + desc = "A label on it reads: Activate to select a bundle." + var/list/static/bundles = list( + "Spy" = /obj/item/storage/box/syndie_kit/bundle/spy, + "Agent 13" = /obj/item/storage/box/syndie_kit/bundle/agent13, + "Thief" = /obj/item/storage/box/syndie_kit/bundle/thief, + "Agent 007" = /obj/item/storage/box/syndie_kit/bundle/bond, + "Infiltrator" = /obj/item/storage/box/syndie_kit/bundle/infiltrator, + "Bank Robber" = /obj/item/storage/box/syndie_kit/bundle/payday, + "Implanter" = /obj/item/storage/box/syndie_kit/bundle/implant, + "Hacker" = /obj/item/storage/box/syndie_kit/bundle/hacker, + "Dark Lord" = /obj/item/storage/box/syndie_kit/bundle/darklord, + "Sniper" = /obj/item/storage/box/syndie_kit/bundle/professional, + "Grenadier" = /obj/item/storage/box/syndie_kit/bundle/grenadier, + "Augmented" = /obj/item/storage/box/syndie_kit/bundle/metroid) + var/list/selected = list() + var/list/unselected = list() + +/obj/item/radio/beacon/syndicate/bundle/attack_self(mob/user) + if(!user) + return + if(!length(selected)) + unselected = bundles.Copy() + for(var/i in 1 to 3) + selected += pick_n_take(unselected) + selected += "Random" + var/bundle_name = tgui_input_list(user, "Available Bundles", "Bundle Selection", selected) + if(!bundle_name) + return + if(bundle_name == "Random") + bundle_name = pick(unselected) + var/bundle = bundles[bundle_name] + bundle = new bundle(user.loc) + to_chat(user, "Welcome to [station_name()], [bundle_name]") + user.drop_item() + qdel(src) + user.put_in_hands(bundle) + /obj/item/radio/beacon/syndicate/power_sink name = "suspicious beacon" desc = "A label on it reads: Warning: Activating this device will send a power sink to your location." diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 12951340306a..b7be56862103 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -5,7 +5,9 @@ icon_state = "headset" item_state = "headset" sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/ears.dmi') //We read you loud and skree-er. + "Vox" = 'icons/mob/clothing/species/vox/ears.dmi', //We read you loud and skree-er. + "Kidan" = 'icons/mob/clothing/species/kidan/ears.dmi' + ) materials = list(MAT_METAL = 200) canhear_range = 0 // can't hear headsets from very far away diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index 302b2703d958..665faa1d6d1b 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -13,7 +13,7 @@ /obj/item/flag/attackby(obj/item/W, mob/user, params) . = ..() - if(is_hot(W) && !(resistance_flags & ON_FIRE)) + if(W.get_heat() && !(resistance_flags & ON_FIRE)) user.visible_message("[user] lights [src] with [W].", "You light [src] with [W].", "You hear a low whoosh.") fire_act() @@ -259,7 +259,7 @@ log_game("[key_name(user)] has hidden [I] in [src] ready for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).") investigate_log("[key_name(user)] has hidden [I] in [src] ready for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).", INVESTIGATE_BOMB) add_attack_logs(user, src, "has hidden [I] ready for detonation in", ATKLOG_MOST) - else if(is_hot(I) && !(resistance_flags & ON_FIRE) && boobytrap && trapper) + else if(I.get_heat() && !(resistance_flags & ON_FIRE) && boobytrap && trapper) var/turf/bombturf = get_turf(src) var/area/A = get_area(bombturf) log_game("[key_name_admin(user)] has lit [src] trapped with [boobytrap] by [key_name_admin(trapper)] at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).") diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm index d936ec32227a..03415cbecf56 100644 --- a/code/game/objects/items/latexballoon.dm +++ b/code/game/objects/items/latexballoon.dm @@ -61,5 +61,5 @@ var/obj/item/tank/T = W blow(T, user) return - if(is_sharp(W) || is_hot(W) || is_pointed(W)) + if(is_sharp(W) || W.get_heat() || is_pointed(W)) burst() diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 76b84dc8be67..38d1e025e46b 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -26,7 +26,7 @@ AddComponent(/datum/component/surgery_initiator/limb, forced_surgery = /datum/surgery/attach_robotic_limb) /obj/item/robot_parts/attack_self(mob/user) - var/choice = input(user, "Select the company appearance for this limb.", "Limb Company Selection") as null|anything in GLOB.selectable_robolimbs + var/choice = tgui_input_list(user, "Select the company appearance for this limb", "Limb Company Selection", GLOB.selectable_robolimbs) if(!choice) return if(loc != user) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 8aab03be8a57..a86d7010775d 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -41,6 +41,8 @@ GLOBAL_LIST_INIT(silver_recipes, list ( new /datum/stack_recipe("Monkey Statue", /obj/structure/statue/silver/monkey, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE), new /datum/stack_recipe("Corgi Statue", /obj/structure/statue/silver/corgi, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE), )), + null, + new /datum/stack_recipe("Silver Locket", /obj/item/clothing/accessory/necklace/locket/silver, 1), )) GLOBAL_LIST_INIT(diamond_recipes, list ( @@ -82,7 +84,13 @@ GLOBAL_LIST_INIT(gold_recipes, list ( new /datum/stack_recipe("CMO Statue", /obj/structure/statue/gold/cmo, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE), )), null, - new /datum/stack_recipe("Simple Crown", /obj/item/clothing/head/crown, 5), + new /datum/stack_recipe_list("gold clothing", list( + new /datum/stack_recipe("Simple Crown", /obj/item/clothing/head/crown, 5), + null, + new /datum/stack_recipe("Simple Necklace", /obj/item/clothing/accessory/necklace, 1), + new /datum/stack_recipe("Large Necklace", /obj/item/clothing/accessory/necklace/long, 2), + new /datum/stack_recipe("Gold Locket", /obj/item/clothing/accessory/necklace/locket, 1), + )), )) GLOBAL_LIST_INIT(plasma_recipes, list ( @@ -264,7 +272,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( return TRUE /obj/item/stack/sheet/mineral/plasma/attackby(obj/item/I, mob/living/user, params) - if(is_hot(I)) + if(I.get_heat()) log_and_set_aflame(user, I) else return ..() diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 11a50e1c59bb..b42d0dfac594 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -274,6 +274,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( new /datum/stack_recipe("white shoes", /obj/item/clothing/shoes/white, 2), new /datum/stack_recipe("cloth footwraps", /obj/item/clothing/shoes/footwraps, 2), null, + new /datum/stack_recipe("cloth handwraps", /obj/item/clothing/gloves/handwraps, 2), new /datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1), new /datum/stack_recipe("white gloves", /obj/item/clothing/gloves/color/white, 3), new /datum/stack_recipe("white softcap", /obj/item/clothing/head/soft/mime, 2), diff --git a/code/game/objects/items/tools/welder.dm b/code/game/objects/items/tools/welder.dm index 5a22b04df84f..72f286458d94 100644 --- a/code/game/objects/items/tools/welder.dm +++ b/code/game/objects/items/tools/welder.dm @@ -142,6 +142,8 @@ . = ..() if(!tool_enabled) return + if(!proximity || isturf(target)) // We don't want to take away fuel when we hit something far away + return remove_fuel(0.5) /obj/item/weldingtool/use_tool(atom/target, user, delay, amount, volume, datum/callback/extra_checks) @@ -205,6 +207,9 @@ if(reagents.check_and_add("fuel", maximum_fuel, 2 * coeff)) update_icon() +/obj/item/weldingtool/get_heat() + return tool_enabled * 2500 + /obj/item/weldingtool/largetank name = "industrial welding tool" desc = "A slightly larger welder with a larger tank." diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index cd7881419356..e3e6b5d0b437 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -128,5 +128,10 @@ desc = "Not sticky anymore." throw_range = 1 +/obj/item/trash/popsicle_stick + name = "used popsicle stick" + icon_state = "popsicle_stick_s" + desc = "Still tastes sweet." + /obj/item/trash/attack(mob/M as mob, mob/living/user as mob) return diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm index 9c54f803b836..6e2d363c319e 100644 --- a/code/game/objects/items/weapons/cigs.dm +++ b/code/game/objects/items/weapons/cigs.dm @@ -47,12 +47,19 @@ LIGHTERS ARE IN LIGHTERS.DM reagents.set_reacting(FALSE) // so it doesn't react until you light it if(list_reagents) reagents.add_reagent_list(list_reagents) + RegisterSignal(src, COMSIG_ITEM_BEING_ATTACKED, PROC_REF(can_light)) /obj/item/clothing/mask/cigarette/Destroy() QDEL_NULL(reagents) STOP_PROCESSING(SSobj, src) return ..() +/obj/item/clothing/mask/cigarette/proc/can_light(obj/item/cigarette, obj/item/lighting_item) + SIGNAL_HANDLER + if(lighting_item.get_heat()) + light() + return COMPONENT_CANCEL_ATTACK_CHAIN + /obj/item/clothing/mask/cigarette/decompile_act(obj/item/matter_decompiler/C, mob/user) if(isdrone(user)) C.stored_comms["wood"] += 1 @@ -250,6 +257,8 @@ LIGHTERS ARE IN LIGHTERS.DM STOP_PROCESSING(SSobj, src) qdel(src) +/obj/item/clothing/mask/cigarette/get_heat() + return lit * 1000 /obj/item/clothing/mask/cigarette/menthol list_reagents = list("nicotine" = 40, "menthol" = 20) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 1f740ef64b37..cea375da82b3 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -59,7 +59,7 @@ /obj/item/defibrillator/examine(mob/user) . = ..() - . += "Ctrl-click to remove the paddles from the defibrillator." + . += "Alt-Click to remove the paddles from the defibrillator." /obj/item/defibrillator/proc/update_power() if(cell) @@ -93,7 +93,7 @@ /obj/item/defibrillator/ui_action_click(mob/user) toggle_paddles(user) -/obj/item/defibrillator/CtrlClick(mob/user) +/obj/item/defibrillator/AltClick(mob/user) if(ishuman(user) && Adjacent(user)) toggle_paddles(user) @@ -106,13 +106,14 @@ if(C.maxcharge < paddles.revivecost) to_chat(user, "[src] requires a higher capacity cell.") return - user.drop_item() - W.loc = src - cell = W - to_chat(user, "You install a cell in [src].") + if(user.drop_item(C)) + W.forceMove(src) + cell = C + to_chat(user, "You install a cell in [src].") + if(W == paddles) + toggle_paddles(user) update_icon(UPDATE_OVERLAYS) - return /obj/item/defibrillator/screwdriver_act(mob/living/user, obj/item/I) if(!cell) @@ -249,11 +250,6 @@ /obj/item/defibrillator/compact/advanced/screwdriver_act(mob/living/user, obj/item/I) return // The cell is too strong roundstart and we dont want the adv defib to become useless -/obj/item/defibrillator/compact/advanced/attackby(obj/item/W, mob/user, params) - if(W == paddles) - toggle_paddles(user) - update_icon(UPDATE_OVERLAYS) - /obj/item/defibrillator/compact/advanced/loaded/Initialize(mapload) . = ..() cell = new /obj/item/stock_parts/cell/bluespace/charging(src) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 2f4fe5f67c86..c17e99f0f8ee 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -101,8 +101,6 @@ message_say = "FOR THE HIVE!" else if(role == ROLE_CULTIST) message_say = "FOR NARSIE!" - else if(role == ROLE_NINJA) - message_say = "FOR THE CLAN!" else if(role == ROLE_WIZARD) message_say = "FOR THE FEDERATION!" else if(role == ROLE_REV || role == "head revolutionary") diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 5d16fd637815..0e2d8b42bec9 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -50,6 +50,7 @@ if(!reagents) create_reagents(max_water) reagents.add_reagent("water", max_water) + ADD_TRAIT(src, TRAIT_CAN_POINT_WITH, ROUNDSTART_TRAIT) /obj/item/extinguisher/attack_self(mob/user as mob) safety = !safety diff --git a/code/game/objects/items/weapons/garrote.dm b/code/game/objects/items/weapons/garrote.dm index 32ad45ba87c8..1d1570344a25 100644 --- a/code/game/objects/items/weapons/garrote.dm +++ b/code/game/objects/items/weapons/garrote.dm @@ -88,8 +88,9 @@ U.swap_hand() if(G && istype(G)) - if(improvised) // Improvised garrotes start you off with a passive grab, but keep you stunned like an agressive grab. - M.Stun(2 SECONDS) + if(improvised) // Improvised garrotes start you off with a passive grab, but will lock you in place. A quick stun to drop items but not to make it unescapable + M.Stun(1 SECONDS) + M.Immobilize(2 SECONDS) else G.state = GRAB_NECK G.hud.icon_state = "kill" @@ -153,7 +154,7 @@ return if(G.state < GRAB_NECK) // Only possible with improvised garrotes, essentially this will stun people as if they were aggressively grabbed. Allows for resisting out if you're quick, but not running away. - strangling.Stun(6 SECONDS) + strangling.Immobilize(3 SECONDS) if(improvised) strangling.Stuttering(6 SECONDS) diff --git a/code/game/objects/items/weapons/grenades/syndieminibomb.dm b/code/game/objects/items/weapons/grenades/syndieminibomb.dm index 0eb76dbf86ae..e2a779b9374a 100644 --- a/code/game/objects/items/weapons/grenades/syndieminibomb.dm +++ b/code/game/objects/items/weapons/grenades/syndieminibomb.dm @@ -1,6 +1,6 @@ /obj/item/grenade/syndieminibomb - desc = "A syndicate manufactured explosive used to sow destruction and chaos" name = "syndicate minibomb" + desc = "A syndicate manufactured explosive used to sow destruction and chaos." icon = 'icons/obj/grenade.dmi' icon_state = "syndicate" item_state = "grenade" @@ -24,3 +24,15 @@ to_chat(user, "As you activate the bomb, it emits a substance that sticks to your hand! It won't come off!") to_chat(user, "Uh oh.") . = ..() + +/obj/item/grenade/syndieminibomb/pen + name = "pen" + desc = "It's a normal black ink pen." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "pen" + item_state = "pen" + +/obj/item/grenade/syndieminibomb/pen/attack_self(mob/user) + if(!active) + visible_message("[user] fumbles with [src]!") + . = ..() diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index 2d7130f1ca04..ae90f8b8ae2e 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -229,6 +229,8 @@ /obj/item/nullrod/sord name = "\improper UNREAL SORD" desc = "This thing is so unspeakably HOLY you are having a hard time even holding it." + lefthand_file = 'icons/mob/inhands/weapons_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons_righthand.dmi' icon_state = "sord" item_state = "sord" slot_flags = SLOT_FLAG_BELT diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm index bf720995b07b..235ec5816c9b 100644 --- a/code/game/objects/items/weapons/lighters.dm +++ b/code/game/objects/items/weapons/lighters.dm @@ -125,6 +125,9 @@ item_state = "[initial(item_state)][lit ? "-on" : ""]" return ..() +/obj/item/lighter/get_heat() + return lit * 1500 + // Zippo lighters /obj/item/lighter/zippo name = "zippo lighter" @@ -304,6 +307,9 @@ if(istype(mask_item, /obj/item/clothing/mask/cigarette)) return mask_item +/obj/item/match/get_heat() + return lit * 1000 + /obj/item/match/firebrand name = "firebrand" desc = "An unlit firebrand. It makes you wonder why it's not just called a stick." diff --git a/code/game/objects/items/weapons/melee/energy_melee_weapons.dm b/code/game/objects/items/weapons/melee/energy_melee_weapons.dm index 92768750e7e7..2086e1677e07 100644 --- a/code/game/objects/items/weapons/melee/energy_melee_weapons.dm +++ b/code/game/objects/items/weapons/melee/energy_melee_weapons.dm @@ -85,6 +85,9 @@ add_fingerprint(user) return +/obj/item/melee/energy/get_heat() + return active * 3500 + /obj/item/melee/energy/axe name = "energy axe" desc = "An energised battle axe." diff --git a/code/game/objects/items/weapons/misc_items.dm b/code/game/objects/items/weapons/misc_items.dm index 4a8642bc8c8e..e90c14664d05 100644 --- a/code/game/objects/items/weapons/misc_items.dm +++ b/code/game/objects/items/weapons/misc_items.dm @@ -14,6 +14,7 @@ Newton Cradle PAI cable Red Phone + Popsicle Sticks */ /obj/item/balltoy @@ -216,3 +217,9 @@ if(cooldown < world.time - 20) playsound(user.loc, 'sound/weapons/ring.ogg', 50, 1) cooldown = world.time + +/obj/item/popsicle_stick + name = "popsicle stick" + desc = "A small wooden stick, usually topped by popsicles or other frozen treats." + icon = 'icons/obj/food/frozen_treats.dmi' + icon_state = "popsicle_stick" diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm index ddd1c7a220cf..bb7afcb69199 100644 --- a/code/game/objects/items/weapons/pneumaticCannon.dm +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -10,16 +10,26 @@ lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/guns_righthand.dmi' armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 60, ACID = 50) - var/maxWeightClass = 20 //The max weight of items that can fit into the cannon - var/loadedWeightClass = 0 //The weight of items currently in the cannon - var/obj/item/tank/internals/tank = null //The gas tank that is drawn from to fire things - var/gasPerThrow = 3 //How much gas is drawn from a tank's pressure to fire - var/list/loadedItems = list() //The items loaded into the cannon that will be fired out - var/pressureSetting = 1 //How powerful the cannon is - higher pressure = more gas but more powerful throws + ///The max weight of items that can fit into the cannon + var/max_weight_class = 20 + ///The weight of items currently in the cannon + var/loaded_weight_class = 0 + ///The gas tank that is drawn from to fire things + var/obj/item/tank/internals/tank = null + ///If the cannon needs a tank at all + var/requires_tank = TRUE + ///How many moles of gas is drawn from a tank's pressure to fire + var/gas_per_throw = 3 + ///The items loaded into the cannon that will be fired out + var/list/loaded_items = list() + ///How powerful the cannon is - higher pressure = more gas but more powerful throws + var/pressure_setting = 1 + ///In case we want a really strong cannon + var/max_pressure_setting = 3 /obj/item/pneumatic_cannon/Destroy() QDEL_NULL(tank) - QDEL_LIST_CONTENTS(loadedItems) + QDEL_LIST_CONTENTS(loaded_items) return ..() /obj/item/pneumatic_cannon/examine(mob/user) @@ -28,148 +38,127 @@ . += "You'll need to get closer to see any more." else if(tank) - . += "[bicon(tank)] It has \the [tank] mounted onto it." - for(var/obj/item/I in loadedItems) - . += "[bicon(I)] It has \the [I] loaded." + . += "[bicon(tank)] It has [tank] mounted onto it." + for(var/obj/item/I in loaded_items) + . += "[bicon(I)] It has [I] loaded." + +/** +* Arguments: +* * I - item to load into the cannon +* * user - the person loading the item in +* Returns: +* * True if item was loaded, false if it failed +*/ +/obj/item/pneumatic_cannon/proc/load_item(obj/item/I, mob/user) + if((loaded_weight_class + I.w_class) > max_weight_class) + to_chat(user, "[I] won't fit into [src]!") + return FALSE + if(I.w_class > w_class) + to_chat(user, "[I] is too large to fit into [src]!") + return FALSE + if(!user.unEquip(I) || I.flags & (ABSTRACT | NODROP | DROPDEL)) + to_chat(user, "You can't put [I] into [src]!") + return FALSE + to_chat(user, "You load [I] into [src].") + loaded_items.Add(I) + loaded_weight_class += I.w_class + I.forceMove(src) + return TRUE + +/obj/item/pneumatic_cannon/wrench_act(mob/living/user, obj/item/I) + adjust_setting(user) + return TRUE + +/obj/item/pneumatic_cannon/proc/adjust_setting(mob/living/user) + if(pressure_setting == max_pressure_setting) + pressure_setting = 1 + else + pressure_setting++ + to_chat(user, "You tweak [src]'s pressure output to [pressure_setting].") /obj/item/pneumatic_cannon/attackby(obj/item/W, mob/user, params) ..() - if(istype(W, /obj/item/tank/internals/) && !tank) + if(istype(W, /obj/item/tank/internals) && !tank) if(istype(W, /obj/item/tank/internals/emergency_oxygen)) - to_chat(user, "\The [W] is too small for \the [src].") + to_chat(user, "[W] is too small for [src].") return - updateTank(W, 0, user) + add_tank(W, user) return if(W.type == type) to_chat(user, "You're fairly certain that putting a pneumatic cannon inside another pneumatic cannon would cause a spacetime disruption.") return - if(istype(W, /obj/item/wrench)) - switch(pressureSetting) - if(1) - pressureSetting = 2 - if(2) - pressureSetting = 3 - if(3) - pressureSetting = 1 - to_chat(user, "You tweak \the [src]'s pressure output to [pressureSetting].") - return - if(loadedWeightClass >= maxWeightClass) - to_chat(user, "\The [src] can't hold any more items!") - return - if(isitem(W)) - var/obj/item/IW = W - if(IW.flags & (ABSTRACT | NODROP | DROPDEL)) - to_chat(user, "You can't put [IW] into [src]!") - return - if((loadedWeightClass + IW.w_class) > maxWeightClass) - to_chat(user, "\The [IW] won't fit into \the [src]!") - return - if(IW.w_class > src.w_class) - to_chat(user, "\The [IW] is too large to fit into \the [src]!") - return - if(!user.unEquip(W)) - return - to_chat(user, "You load \the [IW] into \the [src].") - loadedItems.Add(IW) - loadedWeightClass += IW.w_class - IW.loc = src - return + load_item(W, user) /obj/item/pneumatic_cannon/screwdriver_act(mob/living/user, obj/item/I) - if(!tank) - return - - updateTank(tank, 1, user) + remove_tank(user) return TRUE /obj/item/pneumatic_cannon/afterattack(atom/target, mob/living/carbon/human/user, flag, params) if(isstorage(target)) //So you can store it in backpacks return ..() - if(istype(target, /obj/structure/closet)) //So you can store it in closets - return ..() if(istype(target, /obj/structure/rack)) //So you can store it on racks return ..() if(!istype(user)) return ..() - Fire(user, target) + fire(user, target) -/obj/item/pneumatic_cannon/proc/Fire(mob/living/carbon/human/user, atom/target) +/obj/item/pneumatic_cannon/proc/fire(mob/living/carbon/human/user, atom/target) if(!istype(user) && !target) return - var/discharge = 0 - if(!loadedItems || !loadedWeightClass) - to_chat(user, "\The [src] has nothing loaded.") - return - if(!tank) - to_chat(user, "\The [src] can't fire without a source of gas.") - return - if(tank && !tank.air_contents.remove(gasPerThrow * pressureSetting)) - to_chat(user, "\The [src] lets out a weak hiss and doesn't react!") + var/has_discharged = FALSE + if(!loaded_items || !loaded_weight_class) + to_chat(user, "[src] has nothing loaded.") return + if(requires_tank) + if(!tank) + to_chat(user, "[src] can't fire without a source of gas.") + return + if(!tank.air_contents.boolean_remove(gas_per_throw * pressure_setting)) + to_chat(user, "[src] lets out a weak hiss and doesn't react!") + return if(user && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(75)) user.visible_message("[user] loses [user.p_their()] grip on [src], causing it to go off!", "[src] slips out of your hands and goes off!") user.drop_item() + has_discharged = TRUE if(prob(10)) - target = get_turf(user) + target = user else var/list/possible_targets = range(3,src) target = pick(possible_targets) - discharge = 1 - if(!discharge) - user.visible_message("[user] fires \the [src]!", \ - "You fire \the [src]!") + if(!has_discharged) + user.visible_message("[user] fires [src]!", \ + "You fire [src]!") add_attack_logs(user, target, "Fired [src]") - playsound(src.loc, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) - for(var/obj/item/ITD in loadedItems) //Item To Discharge - spawn(0) - loadedItems.Remove(ITD) - loadedWeightClass -= ITD.w_class - ITD.throw_speed = pressureSetting * 2 - ITD.loc = get_turf(src) - ITD.throw_at(target, pressureSetting * 5, pressureSetting * 2,user) - if(pressureSetting >= 3 && user) + playsound(loc, 'sound/weapons/sonic_jackhammer.ogg', 50, TRUE) + for(var/obj/item/loaded_item in loaded_items) + loaded_items.Remove(loaded_item) + loaded_weight_class -= loaded_item.w_class + loaded_item.throw_speed = pressure_setting * 2 + loaded_item.forceMove(get_turf(src)) + loaded_item.throw_at(target, pressure_setting * 5, pressure_setting * 2, user) + if(pressure_setting >= 3 && user) user.visible_message("[user] is thrown down by the force of the cannon!", "[src] slams into your shoulder, knocking you down!") - user.Weaken(3) - + user.KnockDown(3 SECONDS) -/obj/item/pneumatic_cannon/ghetto //Obtainable by improvised methods; more gas per use, less capacity, but smaller - name = "improvised pneumatic cannon" - desc = "A gas-powered, object-firing cannon made out of common parts." - force = 5 - w_class = WEIGHT_CLASS_NORMAL - maxWeightClass = 7 - gasPerThrow = 5 - -/datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but - name = "Pneumatic Cannon" - result = list(/obj/item/pneumatic_cannon/ghetto) - tools = list(TOOL_WELDER, TOOL_WRENCH) - reqs = list(/obj/item/stack/sheet/metal = 4, - /obj/item/stack/packageWrap = 8, - /obj/item/pipe = 2) - time = 300 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON +/obj/item/pneumatic_cannon/proc/add_tank(obj/item/tank/new_tank, mob/living/carbon/human/user) + if(tank) + to_chat(user, "[src] already has a tank.") + return + if(!user.unEquip(new_tank)) + return + to_chat(user, "You hook [new_tank] up to [src].") + new_tank.forceMove(src) + tank = new_tank + update_icons() -/obj/item/pneumatic_cannon/proc/updateTank(obj/item/tank/thetank, removing = 0, mob/living/carbon/human/user) - if(removing) - if(!src.tank) - return - to_chat(user, "You detach \the [thetank] from \the [src].") - src.tank.loc = get_turf(user) - user.put_in_hands(tank) - src.tank = null - if(!removing) - if(src.tank) - to_chat(user, "\The [src] already has a tank.") - return - if(!user.unEquip(thetank)) - return - to_chat(user, "You hook \the [thetank] up to \the [src].") - src.tank = thetank - thetank.loc = src - src.update_icons() +/obj/item/pneumatic_cannon/proc/remove_tank(mob/living/carbon/human/user) + if(!tank) + return FALSE + to_chat(user, "You detach [tank] from [src].") + user.put_in_hands(tank) + tank = null + update_icons() /obj/item/pneumatic_cannon/proc/update_icons() src.overlays.Cut() @@ -177,3 +166,17 @@ return src.overlays += image('icons/obj/pneumaticCannon.dmi', "[tank.icon_state]") src.update_icon() + +/obj/item/pneumatic_cannon/admin + name = "admin pnuematic cannon" + desc = "Infinite gas and infinite capacity, go crazy." + requires_tank = FALSE + max_weight_class = INFINITY + +/obj/item/pneumatic_cannon/ghetto //Obtainable by improvised methods; more gas per use, less capacity, but smaller + name = "improvised pneumatic cannon" + desc = "A gas-powered, object-firing cannon made out of common parts." + force = 5 + w_class = WEIGHT_CLASS_NORMAL + max_weight_class = 7 + gas_per_throw = 5 diff --git a/code/game/objects/items/weapons/scissors.dm b/code/game/objects/items/weapons/scissors.dm index abd1ca581ad6..fc6ccffb4606 100644 --- a/code/game/objects/items/weapons/scissors.dm +++ b/code/game/objects/items/weapons/scissors.dm @@ -32,9 +32,9 @@ to_chat(user, "[M] doesn't have a head!") return //facial hair - var/f_new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in H.generate_valid_facial_hairstyles() + var/f_new_style = tgui_input_list(user, "Select a facial hair style", "Grooming", H.generate_valid_facial_hairstyles()) //handle normal hair - var/h_new_style = input(user, "Select a hair style", "Grooming") as null|anything in H.generate_valid_hairstyles() + var/h_new_style = tgui_input_list(user, "Select a hair style", "Grooming", H.generate_valid_hairstyles()) user.visible_message("[user] starts cutting [M]'s hair!", "You start cutting [M]'s hair!") //arguments for this are: 1. what others see 2. what the user sees. --Fixed grammar, (TGameCo) playsound(loc, 'sound/goonstation/misc/scissor.ogg', 100, 1) if(do_after(user, 50 * toolspeed, target = H)) //this is the part that adds a delay. delay is in deciseconds. --Made it 5 seconds, because hair isn't cut in one second in real life, and I want at least a little bit longer time, (TGameCo) diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index df58f7dc30ed..a66919d4e775 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -28,7 +28,7 @@ return var/picked_area - picked_area = input(user, "Area to jump to", "Teleport where?", picked_area) as null|anything in SSmapping.teleportlocs + picked_area = tgui_input_list(user, "Area to jump to", "Teleport where?", SSmapping.teleportlocs) if(!picked_area) return diff --git a/code/game/objects/items/weapons/soap.dm b/code/game/objects/items/weapons/soap.dm index 8c5f3034ab2e..009bed78c08e 100644 --- a/code/game/objects/items/weapons/soap.dm +++ b/code/game/objects/items/weapons/soap.dm @@ -2,7 +2,7 @@ name = "soap" desc = "A cheap bar of soap. Doesn't smell." gender = PLURAL - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/janitor.dmi' icon_state = "soap" lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' @@ -106,6 +106,11 @@ icon_state = "soapdeluxe" cleanspeed = 40 //slightly better because deluxe -- captain gets one of these +/obj/item/soap/deluxe/laundry + name = "laundry soap" + desc = "Very cheap but effective soap. Dries out the skin." + icon_state = "soapsoviet" + /obj/item/soap/syndie desc = "An untrustworthy bar of soap made of strong chemical agents that dissolve blood faster." icon_state = "soapsyndie" diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 55fb990a6d29..cba3393e3b23 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -132,8 +132,8 @@ new /obj/item/gun/projectile/revolver/capgun(src) /obj/item/storage/backpack/mime - name = "Parcel Parceaux" - desc = "A silent backpack made for those silent workers. Silence Co." + name = "Pierre the Panda" + desc = "A backpack modelled after Pierre the Panda - the official mascot for the Université du Mime." icon_state = "mimepack" item_state = "mimepack" @@ -213,6 +213,13 @@ icon_state = "blueshieldpack" item_state = "blueshieldpack" +/obj/item/storage/backpack/robotics + name = "robotics backpack" + desc = "A specially designed backpack. It's fire resistant and smells vaguely of welding fuel." + icon_state = "robopack" + item_state = "robopack" + resistance_flags = FIRE_PROOF + /* * Satchel Types */ @@ -336,6 +343,13 @@ icon_state = "satchel-blueshield" item_state = "satchel-blueshield" +/obj/item/storage/backpack/satchel_robo + name = "bioengineer satchel" + desc = "A black satchel designed for holding repair equipment." + icon_state = "satchel-robo" + item_state = "satchel-robo" + resistance_flags = FIRE_PROOF + /obj/item/storage/backpack/satchel_flat name = "smuggler's satchel" desc = "A very slim satchel that can easily fit into tight spaces." @@ -862,6 +876,12 @@ icon_state = "duffel-blueshield" item_state = "duffel-blueshield" +/obj/item/storage/backpack/duffel/robotics + name = "roboticist duffelbag" + desc = "A duffelbag designed to hold tools." + icon_state = "duffel-robo" + item_state = "duffel-robo" + //ERT backpacks. /obj/item/storage/backpack/ert name = "emergency response team backpack" diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index e71d266c3d27..717b00c0bb8a 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -378,6 +378,15 @@ max_w_class = WEIGHT_CLASS_SMALL max_combined_w_class = 18 resistance_flags = FIRE_PROOF + use_item_overlays = TRUE // Will show the tools on the sprite + w_class_override = list( + /obj/item/crowbar, + /obj/item/screwdriver, + /obj/item/weldingtool, + /obj/item/wirecutters, + /obj/item/wrench, + /obj/item/multitool + ) /obj/item/storage/belt/military/sst icon_state = "assaultbelt" @@ -388,16 +397,7 @@ desc = "Can hold various tools. This model seems to have additional compartments and folds up rather nicely into a bag." icon_state = "utilitybelt" item_state = "utility" - use_item_overlays = TRUE // So it will still show tools in it in case sec get lazy and just glance at it. storable = TRUE - w_class_override = list( - /obj/item/crowbar, - /obj/item/screwdriver, - /obj/item/weldingtool, - /obj/item/wirecutters, - /obj/item/wrench, - /obj/item/multitool - ) /obj/item/storage/belt/military/traitor/hacker/populate_contents() new /obj/item/screwdriver(src, "red") @@ -406,6 +406,7 @@ new /obj/item/crowbar/small(src) new /obj/item/wirecutters(src, "red") new /obj/item/stack/cable_coil(src, 30, COLOR_RED) + new /obj/item/multitool/ai_detect(src) update_icon() /obj/item/storage/belt/grenade diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 52e11f4a208f..4496647127af 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -780,7 +780,7 @@ to_chat(user, "You can't modify [src] with items still inside!") return var/list/designs = list(NODESIGN, NANOTRASEN, SYNDI, HEART, SMILE) - var/switchDesign = input("Select a Design:", "Paper Sack Design", designs[1]) as null|anything in designs + var/switchDesign = tgui_input_list(user, "Select a Design", "Paper Sack Design", designs) if(!switchDesign) return if(get_dist(usr, src) > 1 && !usr.incapacitated()) diff --git a/code/game/objects/items/weapons/storage/garment.dm b/code/game/objects/items/weapons/storage/garment.dm index d3c5ea44ef64..f76156c129ce 100644 --- a/code/game/objects/items/weapons/storage/garment.dm +++ b/code/game/objects/items/weapons/storage/garment.dm @@ -52,14 +52,16 @@ desc = "A bag for storing extra clothes and shoes. This one belongs to the head of personnel." /obj/item/storage/bag/garment/head_of_personnel/populate_contents() - new /obj/item/clothing/head/hopcap(src) - new /obj/item/clothing/head/hopcap/beret(src) - new /obj/item/clothing/suit/mantle/armor/head_of_personnel(src) + new /obj/item/clothing/head/hop(src) + new /obj/item/clothing/head/hop/beret(src) + new /obj/item/clothing/suit/mantle/armor/hop(src) new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/clothing/under/rank/civilian/head_of_personnel(src) - new /obj/item/clothing/under/rank/civilian/head_of_personnel/dress(src) - new /obj/item/clothing/under/rank/civilian/head_of_personnel/dress_hr(src) - new /obj/item/clothing/under/rank/civilian/head_of_personnel/oldman(src) + new /obj/item/clothing/suit/hopcoat(src) + new /obj/item/clothing/under/rank/civilian/hop(src) + new /obj/item/clothing/under/rank/civilian/hop/skirt(src) + new /obj/item/clothing/under/rank/civilian/hop/dress(src) + new /obj/item/clothing/under/rank/civilian/hop/formal(src) + new /obj/item/clothing/under/rank/civilian/hop/oldman(src) new /obj/item/clothing/under/suit/female(src) new /obj/item/clothing/shoes/brown(src) new /obj/item/clothing/shoes/black(src) diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index ea0465ef39c7..c98fe5833907 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -201,3 +201,30 @@ locked = FALSE icon_state = icon_broken origin_tech = null //wipe out any origin tech if it's unlocked in any way so you can't double-dip tech levels at R&D. + +/obj/item/storage/lockbox/experimental_weapon + name = "A-113 classified lockbox" + desc = "Contains a classifed item for experimental purposes. Looks like some acid was spilt on it." + req_access = list(ACCESS_SEC_DOORS) //officers, heads + +/obj/item/storage/lockbox/experimental_weapon/populate_contents() + if(prob(10)) + new /obj/item/clothing/mask/facehugger(src) //Suprise! Storing facehuggers improperly is what lead to this mess. + return + var/spawn_type = pick(/obj/item/gun/energy/kinetic_accelerator/experimental, /obj/item/surveillance_upgrade, /obj/item/mod/module/stealth/ninja) + if(prob(25)) + if(rand(1, 6) == 1) //organ time. I want this to be more balanced in distribution, so organs are under a prob 25 + new /obj/item/organ/internal/alien/plasmavessel/drone(src) //Disected drone before the place got wiped. No hivenode. + new /obj/item/organ/internal/alien/acidgland(src) + new /obj/item/organ/internal/alien/resinspinner(src) + return + var/list/organ_loot = list( + /obj/item/organ/internal/cyberimp/arm/katana, + /obj/item/organ/internal/cyberimp/arm/toolset_abductor, + /obj/item/organ/internal/cyberimp/arm/esword, + /obj/item/organ/internal/heart/demon/pulse, + /obj/item/organ/internal/eyes/cybernetic/eyesofgod + ) + + spawn_type = pick(organ_loot) + new spawn_type(src) diff --git a/code/game/objects/items/weapons/storage/storage_base.dm b/code/game/objects/items/weapons/storage/storage_base.dm index 4511e5b807e2..c5de6b7bd3a1 100644 --- a/code/game/objects/items/weapons/storage/storage_base.dm +++ b/code/game/objects/items/weapons/storage/storage_base.dm @@ -546,7 +546,6 @@ handle_item_insertion(I) - /obj/item/storage/attack_hand(mob/user) if(ishuman(user)) var/mob/living/carbon/human/H = user diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 4b81c4ad8183..5dd3b61997cd 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -3,60 +3,79 @@ icon_state = "box_of_doom" /obj/item/storage/box/syndie_kit/bundle // Traitor bundles - - var/static/list/spy = list( // 37TC - /obj/item/clothing/under/chameleon, // 1TC - /obj/item/clothing/mask/chameleon, // 1TC - /obj/item/card/id/syndicate, // 2TC - /obj/item/clothing/shoes/chameleon/noslip, // 2TC - /obj/item/clothing/glasses/hud/security/chameleon, // 2TC - /obj/item/implanter/storage, // 8TC - /obj/item/pen/edagger, // 2TC - /obj/item/pinpointer/advpinpointer, // 4TC - /obj/item/storage/fancy/cigarettes/cigpack_syndicate, // 2TC - /obj/item/flashlight/emp, // 4TC - /obj/item/chameleon, // 7TC - /obj/item/encryptionkey/syndicate) // 2TC - - var/static/list/agent13 = list( // 36TC - /obj/item/clothing/under/chameleon, // 1TC - /obj/item/card/id/syndicate, // 2TC - /obj/item/gun/projectile/automatic/pistol, // 4TC - /obj/item/suppressor, // 1TC - /obj/item/ammo_box/magazine/m10mm, // 1TC - /obj/item/ammo_box/magazine/m10mm/hp, // 2TC - /obj/item/garrote, // 6TC - /obj/item/door_remote/omni/access_tuner, // 6TC - /obj/item/clothing/glasses/chameleon/thermal, // 6TC - /obj/item/implanter/freedom, // 5TC + var/list/items = list() + +/obj/item/storage/box/syndie_kit/bundle/spy // 172TC + name = "Spy Bundle" + desc = "Complete your objectives quietly with this compilation of stealthy items." + items = list( + /obj/item/storage/box/syndie_kit/chameleon, // 20 TC + /obj/item/card/id/syndicate, // 10TC + /obj/item/clothing/shoes/chameleon/noslip, // 10TC + /obj/item/clothing/glasses/hud/security/chameleon, // 10TC + /obj/item/implanter/storage, // 40TC + /obj/item/pen/edagger, // 10TC + /obj/item/pinpointer/advpinpointer, // 20TC + /obj/item/storage/fancy/cigarettes/cigpack_syndicate, // 7TC + /obj/item/flashlight/emp, // 20TC + /obj/item/chameleon, // 25TC + /obj/item/garrote, // 30 TC + /obj/item/door_remote/omni/access_tuner, // 30 TC + /obj/item/encryptionkey/syndicate) // 10TC + +/obj/item/storage/box/syndie_kit/bundle/agent13 // 159 + name = "Agent 13 Bundle" + desc = "Find and eliminate your targets quietly and effectively with this kit." + items = list( + /obj/item/clothing/under/chameleon, // 5TC + /obj/item/card/id/syndicate, // 10TC + /obj/item/storage/box/syndie_kit/stechkin, // 20TC + /obj/item/suppressor, // 5TC + /obj/item/ammo_box/magazine/m10mm, // 3TC + /obj/item/ammo_box/magazine/m10mm/hp, // 6TC + /obj/item/garrote, // 30TC + /obj/item/door_remote/omni/access_tuner, // 30TC + /obj/item/clothing/glasses/chameleon/thermal, // 15TC + /obj/item/storage/briefcase/false_bottomed, // 10 TC + /obj/item/implanter/freedom, // 25TC /obj/item/coin/gold, // 0TC - /obj/item/encryptionkey/syndicate) // 2TC - - var/static/list/thief = list( // 37TC - /obj/item/gun/energy/kinetic_accelerator/crossbow, // 12TC - /obj/item/chameleon, // 7TC - /obj/item/clothing/glasses/chameleon/thermal, // 6TC - /obj/item/clothing/gloves/color/black/thief, // 6TC - /obj/item/card/id/syndicate, // 2TC - /obj/item/storage/backpack/satchel_flat, // 2TC - /obj/item/encryptionkey/syndicate) // 2TC - - var/static/list/bond = list( // 32TC - /obj/item/gun/projectile/automatic/pistol, // 4TC - /obj/item/suppressor, // 1TC - /obj/item/ammo_box/magazine/m10mm/ap, // 2TC - /obj/item/ammo_box/magazine/m10mm/ap, // 2TC + /obj/item/encryptionkey/syndicate) // 10TC + +/obj/item/storage/box/syndie_kit/bundle/thief // 160TC + name = "Thief Bundle" + desc = "Steal from friends, enemies, and interstellar megacorporations alike!" + items = list( + /obj/item/gun/energy/kinetic_accelerator/crossbow, // 60TC + /obj/item/chameleon, // 25TC + /obj/item/clothing/glasses/chameleon/thermal, // 15TC + /obj/item/clothing/gloves/color/black/thief, // 30TC + /obj/item/card/id/syndicate, // 10TC + /obj/item/storage/backpack/satchel_flat, // 10TC + /obj/item/encryptionkey/syndicate) // 10TC + +/obj/item/storage/box/syndie_kit/bundle/bond // 137TC + name = "Agent 007 Bundle" + desc = "Shake your Martini and stir up trouble with this bundle of lethal equipment mixed with a spritz of gadgetry to keep things interesting." + items = list( + /obj/item/storage/briefcase/false_bottomed, // 20TC + /obj/item/suppressor, // 5TC + /obj/item/storage/box/syndie_kit/stechkin, // 20TC + /obj/item/ammo_box/magazine/m10mm/ap, // 6TC + /obj/item/ammo_box/magazine/m10mm/ap, // 6TC /obj/item/clothing/under/suit/really_black, // 0TC - /obj/item/card/id/syndicate, // 2TC - /obj/item/clothing/suit/storage/iaa/blackjacket/armored, // 0TC - /obj/item/storage/box/syndie_kit/emp, // 2TC - /obj/item/clothing/glasses/hud/security/chameleon, // 2TC - /obj/item/encryptionkey/syndicate, // 2TC + /obj/item/card/id/syndicate, // 10TC + /obj/item/clothing/suit/storage/iaa/blackjacket/armored, // 3TC + /obj/item/storage/box/syndie_kit/emp, // 10TC + /obj/item/clothing/glasses/hud/security/chameleon, // 10TC + /obj/item/encryptionkey/syndicate, // 10TC /obj/item/reagent_containers/food/drinks/drinkingglass/alliescocktail, // 0TC - /obj/item/dnascrambler, // 2TC + /obj/item/storage/box/syndie_kit/pen_bomb, // 30 TC /obj/item/CQC_manual) // 13TC - var/static/list/infiltrator = list( // 34TC + RCD & Mesons Autoimplanter +/obj/item/storage/box/syndie_kit/bundle/infiltrator // 155TC + RCD & Mesons Autoimplanter + name = "Infiltration Bundle" + desc = "Use your teleporter, krav maga and other support tools to jump right into your desired location, quickly leaving as though you were never there." + items = list( /obj/item/storage/box/syndie_kit/teleporter, // 8TC /obj/item/clothing/gloves/color/black/krav_maga, // 10TC /obj/item/clothing/glasses/chameleon/thermal, // 6TC @@ -66,7 +85,10 @@ /obj/item/autosurgeon/organ/syndicate/meson_eyes, // 0TC /obj/item/encryptionkey/syndicate) // 2TC - var/static/list/payday = list( // 35TC +/obj/item/storage/box/syndie_kit/bundle/payday // 175TC + name = "Heist Bundle" + desc = "Alright guys, today we're performing a heist on a space station owned by a greedy corporation. Drain the vault of all its worth so we can get that pay dirt!11" + items = list( /obj/item/gun/projectile/revolver, // 13TC /obj/item/ammo_box/a357, // 3TC /obj/item/ammo_box/a357, // 3TC @@ -79,83 +101,103 @@ /obj/item/clothing/mask/gas/clown_hat, // 0TC /obj/item/grenade/plastic/c4, // 1TC /obj/item/thermal_drill/diamond_drill/syndicate, // 1TC - /obj/item/encryptionkey/syndicate) // 2TC - - var/static/list/implant = list( // 40TC - /obj/item/implanter/freedom, // 5TC - /obj/item/implanter/uplink, // 14TC (ten free TC) - /obj/item/implanter/emp, // 1TC - /obj/item/implanter/adrenalin, // 8TC - /obj/item/implanter/explosive, // 2TC - /obj/item/implanter/storage, // 8TC - /obj/item/encryptionkey/syndicate) // 2TC - - var/static/list/hacker = list( // 39TC + Toy AI Uploader - /obj/item/melee/energy/sword/saber/blue, // 8TC - /obj/item/card/emag, // 6TC - /obj/item/encryptionkey/syndicate, // 2TC - /obj/item/encryptionkey/binary, // 5TC - /obj/item/card/id/syndicate, // 2TC - /obj/item/storage/box/syndie_kit/emp, // 2TC + /obj/item/implanter/freedom/prototype, // 10 TC + /obj/item/encryptionkey/syndicate) // 10TC + +/obj/item/storage/box/syndie_kit/bundle/implant // 200TC + name = "Bio-chip Bundle" + desc = "A few useful bio-chips to give you some options for when you inevitably get captured by the Security." + items = list( + /obj/item/implanter/freedom, // 25TC + /obj/item/implanter/stealth, // 45 TC + /obj/item/implanter/emp, // 5TC (half of EMP kit) + /obj/item/implanter/adrenalin, // 40TC + /obj/item/implanter/explosive, // 10TC + /obj/item/implanter/storage, // 40TC + /obj/item/encryptionkey/syndicate) // 10TC + +/obj/item/storage/box/syndie_kit/bundle/hacker // 180TC + name = "Hacker Bundle" + desc = "A kit with everything you need to hack into and disrupt the Station, AI, its cyborgs and the Security team. HACK THE PLANET!" + items = list( + /obj/item/melee/energy/sword/saber/blue, // 40TC + /obj/item/card/emag, // 30TC + /obj/item/door_remote/omni/access_tuner, // 30 TC, HACK EVERYTHING + /obj/item/encryptionkey/syndicate, // 10TC + /obj/item/encryptionkey/binary, // 25TC + /obj/item/card/id/syndicate, // 10TC + /obj/item/storage/box/syndie_kit/emp, // 10TC /obj/item/aiModule/toyAI, // 0TC - /obj/item/clothing/glasses/chameleon/thermal, // 6TC - /obj/item/storage/belt/military/traitor/hacker, // 3TC - /obj/item/clothing/gloves/combat, // 0TC - /obj/item/multitool/ai_detect, // 1TC + /obj/item/aiModule/syndicate, // 15 TC + /obj/item/storage/box/syndie_kit/camera_bug, // 5 TC + /obj/item/implanter/freedom/prototype, // 10 TC + /obj/item/storage/belt/military/traitor/hacker, // 15TC + AI detector for 5 TC + /obj/item/clothing/gloves/combat, // accounted in belt + toolbox /obj/item/flashlight/emp) // 4TC - var/static/list/darklord = list( // 33TC + TK - /obj/item/melee/energy/sword/saber/red, // 8TC - /obj/item/melee/energy/sword/saber/red, // 8TC - /obj/item/clothing/gloves/color/yellow/power, // 10TC - /obj/item/dnainjector/telemut/darkbundle, // 0TC +/obj/item/storage/box/syndie_kit/bundle/darklord // 168TC + Telekinesis + name = "Dark Lord Bundle" + desc = "Turn your anger into hate and your hate into suffering with a mix of energy swords and magical powers. DO IT." + items = list( + /obj/item/melee/energy/sword/saber/red, // 40TC + /obj/item/melee/energy/sword/saber/red, // 40TC + /obj/item/clothing/gloves/color/yellow/power, // 50TC + /obj/item/dnainjector/telemut/darkbundle, // ?TC /obj/item/clothing/suit/hooded/chaplain_hoodie, // 0TC /obj/item/clothing/glasses/meson/engine/tray, // 0TC - /obj/item/clothing/mask/chameleon, // 1TC - /obj/item/card/id/syndicate, // 2TC - /obj/item/clothing/shoes/chameleon/noslip, // 2TC - /obj/item/encryptionkey/syndicate) // 2TC - - var/static/list/professional = list( // 38TC - /obj/item/gun/projectile/automatic/sniper_rifle/syndicate, // 16TC - /obj/item/ammo_box/magazine/sniper_rounds, // 4TC - /obj/item/ammo_box/magazine/sniper_rounds/penetrator, // 5TC - /obj/item/ammo_box/magazine/sniper_rounds/penetrator, // 5TC - /obj/item/clothing/glasses/chameleon/thermal, // 6TC - /obj/item/clothing/gloves/combat, // 0 TC - /obj/item/clothing/under/suit/really_black, // 0 TC - /obj/item/clothing/suit/storage/iaa/blackjacket/armored, // 0TC - /obj/item/encryptionkey/syndicate) // 2TC + /obj/item/clothing/mask/chameleon, // 8TC + /obj/item/card/id/syndicate, // 10TC + /obj/item/clothing/shoes/chameleon/noslip, // 10TC + /obj/item/encryptionkey/syndicate) // 10TC + +/obj/item/storage/box/syndie_kit/bundle/professional // 164TC + name = "Sniper Bundle" + desc = "Suit up and handle yourself like a professional with a long-distance sniper rifle, additional .50 standard and penetrator rounds and thermal glasses to easily scope out your target." + items = list( + /obj/item/gun/projectile/automatic/sniper_rifle/syndicate, // 80TC + /obj/item/ammo_box/magazine/sniper_rounds, // 15TC + /obj/item/ammo_box/magazine/sniper_rounds/penetrator, // 20TC + /obj/item/ammo_box/magazine/sniper_rounds/penetrator, // 20TC + /obj/item/clothing/glasses/chameleon/thermal, // 15TC + /obj/item/clothing/gloves/combat, // ~1TC + /obj/item/clothing/under/suit/really_black, // 0TC + /obj/item/clothing/suit/storage/iaa/blackjacket/armored, // 3TC + /obj/item/encryptionkey/syndicate) // 15TC - var/static/list/grenadier = list( // 20TC + Tactical Grenadier Belt +/obj/item/storage/box/syndie_kit/bundle/grenadier // 133TC + Tactical Grenadier Belt + name = "Grenade Bundle" + desc = "A variety of grenades and pyrotechnics to ensure you can blast your way through any situation. " + items = list( /obj/item/storage/belt/grenade/tactical, // Contains 2 Frag and EMP grenades, 5 C4 Explosives, 5 Smoke and Gluon grenades and 1 Minibomb grenade ~20TC Estimate - /obj/item/gun/projectile/automatic/pistol, // 4TC - /obj/item/ammo_box/magazine/m10mm/fire, // 2TC - /obj/item/ammo_box/magazine/m10mm/fire, // 2TC - /obj/item/mod/control/pre_equipped/traitor, // 6TC - /obj/item/clothing/gloves/combat, // 0TC - /obj/item/card/id/syndicate, // 2TC - /obj/item/clothing/shoes/chameleon/noslip, // 2TC - /obj/item/encryptionkey/syndicate) // 2TC - - var/static/list/metroid = list( // 21 + modules + laser gun - /obj/item/mod/control/pre_equipped/traitor_elite, // 9TC - /obj/item/mod/module/visor/thermal, // 3 TC - /obj/item/mod/module/stealth, //0 TC but strong - /obj/item/mod/module/power_kick, //0 TC but funny - /obj/item/mod/module/sphere_transform, //0TC but should not be allowed to normally be installed - /obj/item/autosurgeon/organ/syndicate/laser_arm, //0 TC but otherwise not obtainable. - /obj/item/pinpointer/advpinpointer, //4 TC - /obj/item/storage/box/syndidonkpockets, //2TC, otherwise they will just die in the first combat to disabler. - /obj/item/storage/belt/utility/full/multitool, //0 TC - /obj/item/clothing/head/collectable/slime, //Priceless (0 TC) - /obj/item/encryptionkey/syndicate) //2 TC - - + /obj/item/storage/box/syndie_kit/stechkin, // 20TC + /obj/item/ammo_box/magazine/m10mm/fire, // 6TC + /obj/item/ammo_box/magazine/m10mm/fire, // 6TC + /obj/item/mod/control/pre_equipped/traitor, // 30TC + /obj/item/clothing/gloves/combat, // ~1TC + /obj/item/card/id/syndicate, // 10TC + /obj/item/clothing/shoes/chameleon/noslip, // 10TC + /obj/item/storage/box/syndidonkpockets, // 10 TC + /obj/item/storage/box/syndie_kit/frag_grenades, // One box, as a treat + /obj/item/encryptionkey/syndicate) // 10TC + +/obj/item/storage/box/syndie_kit/bundle/metroid // 115TC + modules + laser gun + name = "Modsuit Bundle" + desc = "Don the equipment of an intergalactic bounty hunter and blast your way through the station!" + items = list( + /obj/item/mod/control/pre_equipped/traitor_elite, // 45TC + /obj/item/mod/module/visor/thermal, // 15TC + /obj/item/mod/module/stealth, // ?TC + /obj/item/mod/module/power_kick, // ?TC + /obj/item/mod/module/sphere_transform, // ?TC + /obj/item/autosurgeon/organ/syndicate/laser_arm, // ?TC + /obj/item/pinpointer/advpinpointer, // 20TC + /obj/item/implanter/adrenalin, // 40TC + /obj/item/storage/belt/utility/full/multitool, // 15TC + /obj/item/clothing/head/collectable/slime, // 0TC priceless + /obj/item/encryptionkey/syndicate) // 10TC /obj/item/storage/box/syndie_kit/bundle/populate_contents() - var/list/bundle = pick(spy, agent13, thief, bond, infiltrator, payday, implant, hacker, darklord, professional, grenadier, metroid) - for(var/item in bundle) + for(var/obj/item/item as anything in items) new item(src) /obj/item/storage/box/syndie_kit/space @@ -390,3 +432,9 @@ new /obj/item/paper/camera_bug(src) for(var/i in 1 to 5) new /obj/item/wall_bug(src, camera) + +/obj/item/storage/box/syndie_kit/pen_bomb + name = "\improper Pen bomb" + +/obj/item/storage/box/syndie_kit/pen_bomb/populate_contents() + new /obj/item/grenade/syndieminibomb/pen(src) diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index d38608a45eb8..8279b5151c23 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -69,7 +69,7 @@ return . += mutable_appearance(front_id.icon, front_id.icon_state) . += front_id.overlays - . += mutable_appearance(icon, "wallet_overlay") + . += mutable_appearance(icon, "[icon_state]_overlay") // SS220 EDIT // fuck yeah, ass photo in my wallet var/obj/item/photo/photo = locate(/obj/item/photo) in contents @@ -79,7 +79,7 @@ MA.pixel_x = 11 MA.pixel_y = 1 . += MA - . += mutable_appearance(icon, "photo_overlay") + . += mutable_appearance(icon, "[photo_overlay]_overlay") // SS220 EDIT /obj/item/storage/wallet/update_name(updates) . = ..() diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 0409a6004d3d..231a5586bcb1 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -59,7 +59,7 @@ turfs += T if(turfs.len) L["None (Dangerous)"] = pick(turfs) - var/t1 = input(user, "Please select a teleporter to lock in on.", "Hand Teleporter") as null|anything in L + var/t1 = tgui_input_list(user, "Please select a teleporter to lock in on.", "Hand Teleporter", L) if(!t1 || (!user.is_in_active_hand(src) || user.stat || user.restrained())) return if(active_portals >= 3) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 1660d8a80136..f335db6ae370 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -108,6 +108,7 @@ var/w_class_on = WEIGHT_CLASS_BULKY armour_penetration_flat = 10 + armour_penetration_percentage = 50 origin_tech = "magnets=4;syndicate=5" attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") max_integrity = 200 @@ -574,7 +575,7 @@ icon_state = "singulohammer0" /obj/item/singularityhammer/proc/vortex(turf/pull, mob/wielder) - for(var/atom/movable/X in orange(5, pull)) + for(var/atom/movable/X in range(5, pull)) if(X.move_resist == INFINITY) continue if(X == wielder) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 312577306607..d3eddd8b963d 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -297,7 +297,7 @@ // In the event that the object doesn't have an overriden version of this proc to do it, log a runtime so one can be added. CRASH("Proc force_eject_occupant() is not overridden on a machine containing a mob.") -/obj/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) +/obj/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) damage *= 0.75 //Define this probably somewhere, we want objects to hurt less than walls, unless special impact effects. playsound(src, 'sound/weapons/punch1.ogg', 35, 1) if(mob_hurt) //Density check probably not needed, one should only bump into something if it is dense, and blob tiles are not dense, because of course they are not. @@ -306,4 +306,7 @@ C.take_organ_damage(damage) if(!self_hurt) take_damage(damage, BRUTE) - C.KnockDown(3 SECONDS) + if(issilicon(C)) + C.Weaken(3 SECONDS) + else + C.KnockDown(3 SECONDS) diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 02581d96f8d1..367d1c62648c 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -71,42 +71,32 @@ return FALSE var/blocking_object = density_check() if(blocking_object) - to_chat(user, "You cannot climb [src], as it is blocked by \a [blocking_object]!") + to_chat(user, "You cannot climb onto [src], as it is blocked by \a [blocking_object]!") return FALSE - var/turf/T = src.loc - if(!T || !istype(T)) return FALSE + if(!isturf(loc)) + return FALSE - climber = user - if(HAS_TRAIT(climber, TRAIT_TABLE_LEAP)) + if(HAS_TRAIT(user, TRAIT_TABLE_LEAP)) user.visible_message("[user] gets ready to vault up onto [src]!") if(!do_after(user, 0.5 SECONDS, target = src)) - climber = null return FALSE else user.visible_message("[user] starts climbing onto [src]!") if(!do_after(user, 5 SECONDS, target = src)) - climber = null return FALSE if(!can_touch(user) || !climbable) - climber = null return FALSE - var/old_loc = usr.loc - user.loc = get_turf(src) - user.Moved(old_loc, get_dir(old_loc, usr.loc), FALSE) + user.forceMove(get_turf(src)) if(get_turf(user) == get_turf(src)) - if(HAS_TRAIT(climber, TRAIT_TABLE_LEAP)) + if(HAS_TRAIT(user, TRAIT_TABLE_LEAP)) user.visible_message("[user] leaps up onto [src]!") else user.visible_message("[user] climbs onto [src]!") - climber = null - return TRUE - /obj/structure/proc/structure_shaken() - for(var/mob/living/M in get_turf(src)) if(IS_HORIZONTAL(M)) @@ -148,22 +138,21 @@ H.adjustBruteLoss(damage) H.UpdateDamageIcon() - return /obj/structure/proc/can_touch(mob/living/user) if(!istype(user)) - return 0 + return FALSE if(!Adjacent(user)) - return 0 + return FALSE if(user.restrained() || user.buckled) to_chat(user, "You need your hands and legs free for this.") - return 0 + return FALSE if(HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) - return 0 + return FALSE if(issilicon(user)) to_chat(user, "You need hands for this.") - return 0 - return 1 + return FALSE + return TRUE /obj/structure/examine(mob/user) . = ..() diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 0888040b8ae8..5ebf91d6272e 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -78,10 +78,10 @@ qdel(src) return if(is_pen(W)) - var/decalselection = input("Please select a decal") as null|anything in list("Atmospherics", "Bartender", "Barber", "Blueshield", "Captain", + var/decalselection = tgui_input_list(user, "Please select a decal", "Paint Box", list("Atmospherics", "Bartender", "Barber", "Blueshield", "Captain", "Cargo", "Chief Engineer", "Chaplain", "Chef", "Chemist", "Assistant", "Clown", "CMO", "Coroner", "Detective", "Engineering", "Genetics", "HOP", "HOS", "Hydroponics", "Internal Affairs Agent", "Janitor", "Magistrate", "Medical", "Mime", "Mining", "NT Representative", "Paramedic", - "Prisoner", "Research Director", "Security", "Syndicate", "Therapist", "Virology", "Warden", "Xenobiology") + "Prisoner", "Research Director", "Security", "Syndicate", "Therapist", "Virology", "Warden", "Xenobiology")) if(!decalselection) return if(user.incapacitated()) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index c4bf4779a2ea..73f75df0569a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -26,12 +26,12 @@ /obj/structure/closet/secure_closet/roboticist/populate_contents() new /obj/item/mod/core/standard(src) - new /obj/item/storage/backpack(src) - new /obj/item/storage/backpack(src) - new /obj/item/storage/backpack/satchel_norm(src) - new /obj/item/storage/backpack/satchel_norm(src) - new /obj/item/storage/backpack/duffel(src) - new /obj/item/storage/backpack/duffel(src) + new /obj/item/storage/backpack/robotics(src) + new /obj/item/storage/backpack/robotics(src) + new /obj/item/storage/backpack/satchel_robo(src) + new /obj/item/storage/backpack/satchel_robo(src) + new /obj/item/storage/backpack/duffel/robotics(src) + new /obj/item/storage/backpack/duffel/robotics(src) new /obj/item/clothing/suit/storage/labcoat/roboblack(src) new /obj/item/clothing/suit/storage/labcoat/robowhite(src) new /obj/item/radio/headset/headset_sci(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index e708d668425f..5826b53f95cf 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -118,6 +118,8 @@ /obj/structure/closet/wardrobe/xenos/populate_contents() new /obj/item/clothing/suit/unathi/mantle(src) new /obj/item/clothing/suit/unathi/robe(src) + new /obj/item/clothing/gloves/handwraps(src) + new /obj/item/clothing/gloves/handwraps(src) new /obj/item/clothing/shoes/sandal(src) new /obj/item/clothing/shoes/sandal(src) new /obj/item/clothing/shoes/sandal(src) diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm index 3775ac87fb0b..5bc31b1d0502 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -12,7 +12,7 @@ if(ishuman(user) && anchored) var/mob/living/carbon/human/H = user - var/choice = input(user, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in list("Underwear","Undershirt","Socks") + var/choice = tgui_input_list(user, "Underwear, Undershirt, or Socks?", "Changing", list("Underwear","Undershirt","Socks")) if(!Adjacent(user)) return @@ -24,7 +24,7 @@ if(!(H.dna.species.name in S.species_allowed)) continue valid_underwear[underwear] = GLOB.underwear_list[underwear] - var/new_underwear = input(user, "Choose your underwear:", "Changing") as null|anything in valid_underwear + var/new_underwear = tgui_input_list(user, "Choose your underwear:", "Changing", valid_underwear) if(new_underwear) H.underwear = new_underwear @@ -35,7 +35,7 @@ if(!(H.dna.species.name in S.species_allowed)) continue valid_undershirts[undershirt] = GLOB.undershirt_list[undershirt] - var/new_undershirt = input(user, "Choose your undershirt:", "Changing") as null|anything in valid_undershirts + var/new_undershirt = tgui_input_list(user, "Choose your undershirt:", "Changing", valid_undershirts) if(new_undershirt) H.undershirt = new_undershirt @@ -46,7 +46,7 @@ if(!(H.dna.species.name in S.species_allowed)) continue valid_sockstyles[sockstyle] = GLOB.socks_list[sockstyle] - var/new_socks = input(user, "Choose your socks:", "Changing") as null|anything in valid_sockstyles + var/new_socks = tgui_input_list(user, "Choose your socks:", "Changing", valid_sockstyles) if(new_socks) H.socks = new_socks diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index d8203fe9fcd0..e6bd754e6e21 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -284,7 +284,7 @@ canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS) /obj/structure/falsewall/plasma/attackby(obj/item/W, mob/user, params) - if(is_hot(W) > 300) + if(W.get_heat() > 300) var/turf/T = locate(user) message_admins("Plasma falsewall ignited by [key_name_admin(user)] in [ADMIN_VERBOSEJMP(T)]") log_game("Plasma falsewall ignited by [key_name(user)] in [AREACOORD(T)]") diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index 58bd619686ca..27d1a9f40638 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -23,7 +23,7 @@ /obj/structure/spawner/lavaland/legion mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril) -GLOBAL_LIST_INIT(tendrils, list()) +GLOBAL_LIST_EMPTY(tendrils) /obj/structure/spawner/lavaland/Initialize(mapload) . = ..() diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 6a4eb718120a..20424ff6b732 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -177,8 +177,8 @@ sheetType = /obj/item/stack/sheet/mineral/plasma /obj/structure/mineral_door/transparent/plasma/attackby(obj/item/W, mob/user) - if(is_hot(W)) - message_admins("Plasma mineral door ignited by [key_name_admin(user)] in ([x], [y], [z] - JMP)", 0, 1) + if(W.get_heat()) + message_admins("Plasma mineral door ignited by [key_name_admin(user)] in ([x], [y], [z] - JMP)", 0, 1) log_game("Plasma mineral door ignited by [key_name(user)] in ([x], [y], [z])") investigate_log("was ignited by [key_name(user)]","atmos") TemperatureAct(100) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index a11a1de1dc17..eabccdf939a5 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -104,7 +104,7 @@ return var/mob/living/carbon/human/H = user - var/choice = input(user, "Something to change?", "Magical Grooming") as null|anything in options + var/choice = tgui_input_list(user, "Something to change?", "Magical Grooming", options) switch(choice) if("Name") @@ -139,7 +139,7 @@ AC.ui_interact(user) if("Voice") - var/voice_choice = input(user, "Perhaps...", "Voice effects") as null|anything in list("Comic Sans", "Wingdings", "Swedish", "Chav", "Mute") + var/voice_choice = tgui_input_list(user, "Perhaps...", "Voice effects", list("Comic Sans", "Wingdings", "Swedish", "Chav", "Mute")) var/voice_mutation switch(voice_choice) if("Comic Sans") diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 849b4cc1d59b..c7310b9141db 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -125,11 +125,11 @@ ..() /obj/structure/statue/plasma/attackby(obj/item/W, mob/user, params) - if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite + if(W.get_heat() > 300)//If the temperature of the object is over 300, then ignite message_admins("[key_name_admin(user)] ignited a plasma statue at [COORD(loc)]") log_game("[key_name(user)] ignited plasma a statue at [COORD(loc)]") investigate_log("[key_name(user)] ignited a plasma statue at [COORD(loc)]", "atmos") - ignite(is_hot(W)) + ignite(W.get_heat()) return return ..() diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 2c42680c6a3d..e6adf57c7626 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -139,7 +139,7 @@ choices += "Connect" choices += "Rotate" - var/response = input(user, "What do you want to do?", "[src]") as null|anything in choices + var/response = tgui_input_list(user, "What do you want to do?", "[src]", choices) if(!Adjacent(user) || !response) //moved away or cancelled return switch(response) @@ -545,7 +545,7 @@ if(can_rotate) choices += "Rotate" - var/response = input(user, "What do you want to do?", "[src]") as null|anything in choices + var/response = tgui_input_list(user, "What do you want to do?", "[src]", choices) if(!Adjacent(user) || !response) //moved away or cancelled return switch(response) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index e0b232ac2342..0129aecfa718 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -456,14 +456,14 @@ if(exposed_temperature > (T0C + heat_resistance)) take_damage(round(exposed_volume / 100), BURN, 0, 0) -/obj/structure/window/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) +/obj/structure/window/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) var/shattered = FALSE if(damage * 2 >= obj_integrity && shardtype && !mob_hurt) shattered = TRUE - var/obj/item/S = new shardtype(loc) - S.embedded_ignore_throwspeed_threshold = TRUE - S.throw_impact(C) - S.embedded_ignore_throwspeed_threshold = FALSE + var/obj/item/shard = new shardtype(loc) + shard.embedded_ignore_throwspeed_threshold = TRUE + shard.throw_impact(C) + shard.embedded_ignore_throwspeed_threshold = FALSE damage *= (4/3) //Inverts damage loss from being a structure, since glass breaking on you hurts var/turf/T = get_turf(src) for(var/obj/structure/grille/G in T.contents) diff --git a/code/game/turfs/simulated/floor/asteroid_floors.dm b/code/game/turfs/simulated/floor/asteroid_floors.dm index ff25fb1ae585..5e3ca03b919d 100644 --- a/code/game/turfs/simulated/floor/asteroid_floors.dm +++ b/code/game/turfs/simulated/floor/asteroid_floors.dm @@ -151,6 +151,14 @@ planetary_atmos = TRUE baseturf = /turf/simulated/floor/plating/lava/smooth/mapping_lava +/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface_hard + oxygen = 14 + nitrogen = 23 + temperature = 300 + planetary_atmos = TRUE + color = COLOR_FLOOR_HARD_ROCK + baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface + /turf/simulated/floor/plating/asteroid/airless temperature = TCMB oxygen = 0 diff --git a/code/game/turfs/simulated/floor/lava.dm b/code/game/turfs/simulated/floor/lava.dm index 79adfa0460c3..f43e36b6f810 100644 --- a/code/game/turfs/simulated/floor/lava.dm +++ b/code/game/turfs/simulated/floor/lava.dm @@ -121,8 +121,20 @@ new /obj/structure/lattice/lava(locate(x, y, z)) else to_chat(user, "You need one rod to build a heatproof lattice.") + return + if(istype(C, /obj/item/stack/tile/plasteel)) + var/obj/structure/lattice/L = locate(/obj/structure/lattice/lava, src) + if(!L) + to_chat(user, "The plating is going to need some support! Place metal rods first.") return - + var/obj/item/stack/tile/plasteel/S = C + if(S.use(1)) + qdel(L) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) + to_chat(user, "You build a floor.") + ChangeTurf(/turf/simulated/floor/plating, keep_icon = FALSE) + else + to_chat(user, "You need one floor tile to build a floor!") /turf/simulated/floor/plating/lava/screwdriver_act() return diff --git a/code/game/turfs/simulated/floor/mineral_floors.dm b/code/game/turfs/simulated/floor/mineral_floors.dm index fb75450a8a51..d33d5a8d2f3e 100644 --- a/code/game/turfs/simulated/floor/mineral_floors.dm +++ b/code/game/turfs/simulated/floor/mineral_floors.dm @@ -36,11 +36,11 @@ PlasmaBurn() /turf/simulated/floor/mineral/plasma/attackby(obj/item/W, mob/user, params) - if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite - message_admins("Plasma flooring was ignited by [key_name_admin(user)]([ADMIN_QUE(user,"?")]) ([ADMIN_FLW(user,"FLW")]) in ([x],[y],[z] - JMP)",0,1) + if(W.get_heat() > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma flooring was ignited by [key_name_admin(user)]([ADMIN_QUE(user,"?")]) ([ADMIN_FLW(user,"FLW")]) in ([x],[y],[z] - JMP)",0,1) log_game("Plasma flooring was ignited by [key_name(user)] in ([x],[y],[z])") investigate_log("was ignited by [key_name(user)]","atmos") - ignite(is_hot(W)) + ignite(W.get_heat()) return ..() diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 3fcffc31db13..428dae3e7203 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -74,7 +74,7 @@ var/obj/item/stack/tile/W = C if(!W.use(1)) return - ChangeTurf(W.turf_type, keep_icon = FALSE) + ChangeTurf(W.turf_type) playsound(src, 'sound/weapons/genhit.ogg', 50, 1) else to_chat(user, "This section is too damaged to support a tile! Use a welder to fix the damage.") diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index e8cbb28dd80e..4d0b9a2b4180 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -235,6 +235,32 @@ return return ..() +/turf/simulated/mineral/ancient/lava_land_surface_hard + name = "hardened volcanic rock" + desc = "A dense volcanic rock that appears to be resistant to everything except diamond and sonic tools!" + mine_time = 15 SECONDS + color = COLOR_HARD_ROCK + oxygen = 14 + nitrogen = 23 + temperature = 300 + turf_type = /turf/simulated/floor/plating/asteroid/basalt/lava_land_surface_hard + var/static/list/allowed_picks_typecache + +/turf/simulated/mineral/ancient/lava_land_surface_hard/Initialize(mapload) + . = ..() + allowed_picks_typecache = typecacheof(list( + /obj/item/pickaxe/drill/jackhammer, + /obj/item/pickaxe/diamond, + /obj/item/pickaxe/drill/cyborg/diamond, + /obj/item/pickaxe/drill/diamonddrill, + )) + +/turf/simulated/mineral/ancient/lava_land_surface_hard/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/pickaxe) && !(is_type_in_typecache(I, allowed_picks_typecache))) + to_chat(user, "Only a diamond tools or a sonic jackhammer can break this rock.") + return + return ..() + /turf/simulated/mineral/random/high_chance color = COLOR_YELLOW mineralChance = 25 diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index 5f7bb041f3a2..57a7f7dbc043 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -106,12 +106,12 @@ smoothing_groups = list(SMOOTH_GROUP_SIMULATED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS) canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS) -/turf/simulated/wall/mineral/plasma/attackby(obj/item/W as obj, mob/user as mob) - if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite - message_admins("Plasma wall ignited by [key_name_admin(user)] in ([x], [y], [z] - JMP)",0,1) +/turf/simulated/wall/mineral/plasma/attackby(obj/item/W, mob/user) + if(W.get_heat() > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma wall ignited by [key_name_admin(user)] in ([x], [y], [z] - JMP)",0,1) log_game("Plasma wall ignited by [key_name(user)] in ([x], [y], [z])") investigate_log("was ignited by [key_name(user)]","atmos") - ignite(is_hot(W)) + ignite(W.get_heat()) return ..() diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm index 8a04d251ab05..c08748fb8730 100644 --- a/code/game/turfs/simulated/walls_misc.dm +++ b/code/game/turfs/simulated/walls_misc.dm @@ -91,3 +91,21 @@ if(heated) to_chat(M.occupant, "The wall's intense heat completely reflects your [M.name]'s attack!") M.take_damage(20, BURN) + +/turf/simulated/wall/boss + name = "ancient wall" + desc = "A thick metal wall, it look very old." + icon = 'icons/turf/walls/boss_wall.dmi' + icon_state = "boss_wall-0" + base_icon_state = "boss_wall" + explosion_block = 2 + damage_cap = 600 + hardness = 10 + heat_resistance = 20000 + can_dismantle_with_welder = FALSE + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BOSS_WALLS) + canSmoothWith = list(SMOOTH_GROUP_BOSS_WALLS) + sheet_type = /obj/item/stack/sheet/runed_metal + sheet_amount = 1 + girder_type = /obj/structure/girder/cult diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index a60da9933cd3..a931c24989aa 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -569,10 +569,14 @@ return I -/turf/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) +/turf/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) if(mob_hurt || !density) return playsound(src, 'sound/weapons/punch1.ogg', 35, 1) C.visible_message("[C] slams into [src]!", "You slam into [src]!") - C.take_organ_damage(damage) - C.KnockDown(3 SECONDS) + if(issilicon(C)) + C.adjustBruteLoss(damage) + C.Weaken(3 SECONDS) + else + C.take_organ_damage(damage) + C.KnockDown(3 SECONDS) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 825e9c771e96..c72f5072f63a 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -275,7 +275,7 @@ GLOBAL_VAR_INIT(admin_ooc_colour, "#b82e00") // Client closed the window? Some other error? This is unexpected behaviour, let's CRASH with some info. if(!sizes["paramapwindow.size"]) - CRASH("sizes does not contain paramapwindow.size key. This means a winget() failed to return what we wanted. --- sizes var: [sizes] --- sizes length: [length(sizes)]") + CRASH("sizes does not contain paramapwindow.size key. This means a winget() failed to return what we wanted. --- sizes var: [sizes] --- list contents:[list2params(sizes)] --- sizes length: [length(sizes)]") var/list/map_size = splittext(sizes["paramapwindow.size"], "x") diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index 9f1eff529c9c..21b37d58a74d 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -31,7 +31,7 @@ return if(forced || (confirm == "Yes")) - if(!forced && isAntag(src)) + if(!forced && isAntag(src) && !HAS_TRAIT(src, TRAIT_RESPAWNABLE)) confirm = alert("Are you absolutely sure? If you do this after you got converted/joined as an antagonist, you could face a jobban!", "Confirm Suicide", "Yes", "No") if(confirm == "Yes") suiciding = TRUE diff --git a/code/game/world.dm b/code/game/world.dm index 2fbd08764faa..2b03f0ad2d1f 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -12,7 +12,7 @@ GLOBAL_DATUM(test_runner, /datum/test_runner) SSmetrics.world_init_time = REALTIMEOFDAY // Do sanity checks to ensure RUST actually exists - if(!fexists(RUST_G)) + if((!fexists(RUST_G)) && world.system_type == MS_WINDOWS) DIRECT_OUTPUT(world.log, "ERROR: RUSTG was not found and is required for the game to function. Server will now exit.") del(world) @@ -294,7 +294,10 @@ GLOBAL_LIST_EMPTY(world_topic_handlers) /world/Del() rustg_close_async_http_client() // Close the HTTP client. If you dont do this, youll get phantom threads which can crash DD from memory access violations disable_auxtools_debugger() // Disables the debugger if running. See above comment - rustg_redis_disconnect() // Disconnects the redis connection. See above. + + if(SSredis.connected) + rustg_redis_disconnect() // Disconnects the redis connection. See above. + #ifdef ENABLE_BYOND_TRACY CALL_EXT("prof.dll", "destroy")() // Setup Tracy integration #endif diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 9bb9212f81d2..637ddfeb4e82 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -814,7 +814,7 @@ GLOBAL_LIST_INIT(view_runtimes_verbs, list( if(!istype(H)) if(isbrain(H)) - var/mob/living/carbon/brain/B = H + var/mob/living/brain/B = H if(istype(B.container, /obj/item/mmi/robotic_brain/positronic)) var/obj/item/mmi/robotic_brain/positronic/C = B.container var/obj/item/organ/internal/brain/mmi_holder/posibrain/P = C.loc @@ -840,7 +840,7 @@ GLOBAL_LIST_INIT(view_runtimes_verbs, list( if(!istype(H)) if(isbrain(H)) - var/mob/living/carbon/brain/B = H + var/mob/living/brain/B = H if(istype(B.container, /obj/item/mmi/robotic_brain/positronic)) var/obj/item/mmi/robotic_brain/positronic/C = B.container var/obj/item/organ/internal/brain/mmi_holder/posibrain/P = C.loc diff --git a/code/modules/admin/misc_admin_procs.dm b/code/modules/admin/misc_admin_procs.dm index f6ccc2931ab3..fe951230dda7 100644 --- a/code/modules/admin/misc_admin_procs.dm +++ b/code/modules/admin/misc_admin_procs.dm @@ -118,7 +118,7 @@ GLOBAL_VAR_INIT(nologevent, 0) body += "Related accounts by IP: [jointext(M.client.related_accounts_ip, " - ")]

" if(M.ckey) - body += "Enabled AntagHUD: [M.has_ahudded() ? "TRUE" : "false"]
" + body += "Enabled AntagHUD: [M.has_ahudded() ? "TRUE" : "false"]
" body += "Roundstart observer: [M.is_roundstart_observer() ? "true" : "false"]
" body += "Kick | " body += "Ban | " diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 608f88d6ea5c..8fc385496e8e 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2678,8 +2678,8 @@ if(!paths) alert("The path list you sent is empty") return - if(length(paths) > 5) - alert("Select fewer object types, (max 5)") + if(length(paths) > 20) + alert("Select fewer object types, (max 20)") return var/list/offset = splittext(href_list["offset"],",") diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 1d44235fc90a..40fb2ab3da75 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -1,6 +1,3 @@ -//This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE! -GLOBAL_LIST_INIT(adminhelp_ignored_words, list("unknown", "the", "a", "an", "of", "monkey", "alien", "as")) - /client/verb/adminhelp() set category = "Admin" set name = "Adminhelp" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 542d9f6cdc3c..add4b2a57f3d 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -663,7 +663,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) ) var/list/outfits = list() - var/list/paths = subtypesof(/datum/outfit) - typesof(/datum/outfit/job) + var/list/paths = subtypesof(/datum/outfit) - typesof(/datum/outfit/job) - list(/datum/outfit/varedit, /datum/outfit/admin) for(var/path in paths) var/datum/outfit/O = path //not much to initalize here but whatever if(initial(O.can_be_admin_equipped)) diff --git a/code/modules/admin/verbs/logging_view.dm b/code/modules/admin/verbs/logging_view.dm index cafaab8f1d7b..636378df1abb 100644 --- a/code/modules/admin/verbs/logging_view.dm +++ b/code/modules/admin/verbs/logging_view.dm @@ -1,4 +1,4 @@ -GLOBAL_LIST_INIT(open_logging_views, list()) +GLOBAL_LIST_EMPTY(open_logging_views) /client/proc/cmd_admin_open_logging_view() set category = "Admin" @@ -18,4 +18,4 @@ GLOBAL_LIST_INIT(open_logging_views, list()) cur_view.add_mobs(mobs_to_add) cur_view.show_ui(usr) - + diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 339fde58bbc9..9af71e5350a9 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -42,19 +42,30 @@ GLOBAL_LIST_EMPTY(antagonists) /datum/antagonist/Destroy(force, ...) qdel(objective_holder) - remove_owner_from_gamemode() GLOB.antagonists -= src + if(!QDELETED(owner)) + detach_from_owner() + + return ..() + +/** + * Removes owner's dependencies on this antag datum. + * For example: removal of antag datum from owner's `antag_datums`, antag datum related teams etc. + * If your `/datum/antagonist` subtype adds more dependencies on `owner` - they should be cleared there. + */ +/datum/antagonist/proc/detach_from_owner() + SHOULD_CALL_PARENT(TRUE) + + remove_owner_from_gamemode() if(!silent) farewell() remove_innate_effects() antag_memory = null var/datum/team/team = get_team() team?.remove_member(owner) - if(owner) - LAZYREMOVE(owner.antag_datums, src) + LAZYREMOVE(owner.antag_datums, src) restore_last_hud_and_role() owner = null - return ..() /** * Adds the owner to their respective gamemode's list. For example `SSticker.mode.traitors |= owner`. @@ -125,12 +136,16 @@ GLOBAL_LIST_EMPTY(antagonists) */ /datum/antagonist/proc/remove_innate_effects(mob/living/mob_override) SHOULD_CALL_PARENT(TRUE) - var/mob/living/L = mob_override || owner.current + + var/mob/living/remove_effects_from = mob_override || owner?.current + if(!remove_effects_from) + return + if(antag_hud_type && antag_hud_name) - remove_antag_hud(L) + remove_antag_hud(remove_effects_from) // If `mob_override` exists it means we're only transferring this datum, we don't need to show the clown any text. - handle_clown_mutation(L, mob_override ? null : clown_removal_text) - return L + handle_clown_mutation(remove_effects_from, mob_override ? null : clown_removal_text) + return remove_effects_from /** * Adds this datum's antag hud to `antag_mob`. diff --git a/code/modules/antagonists/_common/antag_team.dm b/code/modules/antagonists/_common/antag_team.dm index fe226f89bbb6..0e8f49984079 100644 --- a/code/modules/antagonists/_common/antag_team.dm +++ b/code/modules/antagonists/_common/antag_team.dm @@ -19,14 +19,15 @@ GLOBAL_LIST_EMPTY(antagonist_teams) /// The name to save objective successes under in the blackboxes. Saves nothing if blank. var/blackbox_save_name -/datum/team/New(list/starting_members) +/datum/team/New(list/starting_members, add_antag_datum = TRUE) ..() members = list() objective_holder = new(src) + if(starting_members && !islist(starting_members)) starting_members = list(starting_members) for(var/datum/mind/M as anything in starting_members) - add_member(M) + add_member(M, add_antag_datum) GLOB.antagonist_teams += src /datum/team/Destroy(force = FALSE, ...) @@ -42,12 +43,15 @@ GLOBAL_LIST_EMPTY(antagonist_teams) * * Generally this should ONLY be called by `add_antag_datum()` to ensure proper order of operations. */ -/datum/team/proc/add_member(datum/mind/new_member) +/datum/team/proc/add_member(datum/mind/new_member, add_antag_datum = TRUE) SHOULD_CALL_PARENT(TRUE) - var/datum/antagonist/antag = get_antag_datum_from_member(new_member) // make sure they have the antag datum members |= new_member - if(!antag) // this team has no antag role, we'll add it directly to their mind team - LAZYDISTINCTADD(new_member.teams, src) + + if(add_antag_datum && antag_datum_type) + var/datum/antagonist/antag = get_antag_datum_from_member(new_member) // make sure they have the antag datum + // If no matching antag datum was found, give them one. + if(!antag) + return new_member.add_antag_datum(antag_datum_type, src) /** * Removes `member` from this team. @@ -55,7 +59,6 @@ GLOBAL_LIST_EMPTY(antagonist_teams) /datum/team/proc/remove_member(datum/mind/member) SHOULD_CALL_PARENT(TRUE) members -= member - LAZYREMOVE(member.teams, src) var/datum/antagonist/antag = get_antag_datum_from_member(member) if(!QDELETED(antag)) qdel(antag) @@ -103,9 +106,6 @@ GLOBAL_LIST_EMPTY(antagonist_teams) if(A.get_team() != src) continue return A - // If no matching antag datum was found, give them one. - if(antag_datum_type) - return member.add_antag_datum(antag_datum_type, src) /** * Special overrides for teams for target exclusion from objectives. diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index 5a34f372a8d4..a88759b54675 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -13,6 +13,8 @@ background_icon_state = "bg_changeling" /// A reference to the changeling's changeling antag datum. var/datum/antagonist/changeling/cling + /// Datum path used to determine the location and name of the power in changeling evolution menu UI + var/datum/changeling_power_category/category /// Determines whether the power is always given to the changeling or if it must be purchased. var/power_type = CHANGELING_UNOBTAINABLE_POWER /// A description of what the power does. @@ -31,8 +33,6 @@ var/active = FALSE /// If this power can be used while the changeling has the `TRAIT_FAKE_DEATH` trait. var/bypass_fake_death = FALSE - /// Where this ability should be stored in the changeling menu - var/menu_location /* * Changeling code relies on on_purchase to grant powers. diff --git a/code/modules/antagonists/changeling/changeling_power_category.dm b/code/modules/antagonists/changeling/changeling_power_category.dm new file mode 100644 index 000000000000..2d1ea2ee4d91 --- /dev/null +++ b/code/modules/antagonists/changeling/changeling_power_category.dm @@ -0,0 +1,21 @@ +/datum/changeling_power_category + /// The name of the category + var/name = "common" + /// The number used to determine category position in changeling evolution menu UI + var/priority = 0 + +/datum/changeling_power_category/offence + name = "Offence" + priority = 1 + +/datum/changeling_power_category/defence + name = "Defence" + priority = 2 + +/datum/changeling_power_category/utility + name = "Utility" + priority = 3 + +/datum/changeling_power_category/stings + name = "Stings" + priority = 4 diff --git a/code/modules/antagonists/changeling/datum_changeling.dm b/code/modules/antagonists/changeling/datum_changeling.dm index 81a1f9c8e566..173c5d012195 100644 --- a/code/modules/antagonists/changeling/datum_changeling.dm +++ b/code/modules/antagonists/changeling/datum_changeling.dm @@ -347,7 +347,7 @@ continue names[DNA.real_name] = DNA - var/chosen_name = input(message, title, null) as null|anything in names + var/chosen_name = tgui_input_list(owner.current, message, title, names) if(!chosen_name) return diff --git a/code/modules/antagonists/changeling/evolution_menu.dm b/code/modules/antagonists/changeling/evolution_menu.dm index f3e47bdfca21..cfc62411a7e3 100644 --- a/code/modules/antagonists/changeling/evolution_menu.dm +++ b/code/modules/antagonists/changeling/evolution_menu.dm @@ -3,11 +3,6 @@ /// The evolution menu will be shown in the expanded mode, with powers, costs, and power descriptions being displayed. #define EXPANDED_MODE 1 -#define CLING_MENU_ATTACK 1 -#define CLING_MENU_DEFENSE 2 -#define CLING_MENU_UTILITY 3 -#define CLING_MENU_STINGS 4 - /datum/action/changeling/evolution_menu name = "Evolution Menu" desc = "Choose our method of subjugation." @@ -17,29 +12,8 @@ var/view_mode = EXPANDED_MODE /// A list containing the typepaths of bought changeling abilities. For use with the UI. var/list/purchased_abilities = list() - /// A list containing every purchasable changeling power. Includes its name, description, helptext and cost. - var/static/list/ability_list = list() - -/datum/action/changeling/evolution_menu/Grant(mob/M) - ..() - if(length(ability_list)) - return // List is already populated. - - // This is a list of lists, each lower-level list corresponding to one of the CLING_MENU section - ability_list = list(list(), list(), list(), list()) - - for(var/power_path in cling.purchaseable_powers) - var/datum/action/changeling/C = power_path - if(!C.menu_location) - stack_trace("Cling power [C], [C.type] had no corresponding menu location!") - continue - ability_list[C.menu_location] += list(list( - "name" = initial(C.name), - "description" = initial(C.desc), - "helptext" = initial(C.helptext), - "cost" = initial(C.dna_cost), - "power_path" = power_path - )) + /// A list containing lists of category and abilities, related to this category. For each ability includes its name, description, helptext and cost. For use with the UI. + var/static/list/ability_tabs = list() /datum/action/changeling/evolution_menu/try_to_sting(mob/user, mob/target) ui_interact(user) @@ -62,7 +36,7 @@ /datum/action/changeling/evolution_menu/ui_static_data(mob/user) var/list/data = list( - "ability_list" = ability_list + "ability_tabs" = get_ability_tabs() ) return data @@ -92,6 +66,8 @@ return TRUE /datum/action/changeling/evolution_menu/proc/try_purchase_power(power_type) + PRIVATE_PROC(TRUE) + if(!(power_type in cling.purchaseable_powers)) return FALSE if(power_type in purchased_abilities) @@ -110,3 +86,55 @@ cling.give_power(new power_type) return TRUE + +/datum/action/changeling/evolution_menu/proc/get_ability_tabs() + PRIVATE_PROC(TRUE) + + if(!length(ability_tabs)) + ability_tabs = build_ability_tabs() + + return ability_tabs + +/datum/action/changeling/evolution_menu/proc/build_ability_tabs() + PRIVATE_PROC(TRUE) + + var/list/abilities_by_category_name = get_abilities_grouped_by_category_name() + if(!length(abilities_by_category_name)) + return list() + + var/list/sorted_ability_categories = sortTim(subtypesof(/datum/changeling_power_category), GLOBAL_PROC_REF(cmp_changeling_power_category_asc)) + + var/list/sorted_ability_tabs = list() + for(var/datum/changeling_power_category/category as anything in sorted_ability_categories) + var/list/abilities = abilities_by_category_name[initial(category.name)] + sorted_ability_tabs += list(list( + "category" = initial(category.name), + "abilities" = abilities)) + + return sorted_ability_tabs + +/datum/action/changeling/evolution_menu/proc/get_abilities_grouped_by_category_name() + PRIVATE_PROC(TRUE) + + var/list/abilities_by_category_name = list() + for(var/power_path in cling.purchaseable_powers) + var/datum/action/changeling/changeling_ability = power_path + + if(!changeling_ability.category) + stack_trace("Cling power [changeling_ability], [changeling_ability.type] had no assigned category!") + continue + + var/category_name = initial(changeling_ability.category.name) + var/list/abilities = abilities_by_category_name[category_name] + if(!islist(abilities)) + abilities_by_category_name[category_name] = abilities = list() + + abilities += list(list( + "name" = initial(changeling_ability.name), + "description" = initial(changeling_ability.desc), + "helptext" = initial(changeling_ability.helptext), + "cost" = initial(changeling_ability.dna_cost), + "power_path" = power_path + )) + + return abilities_by_category_name diff --git a/code/modules/antagonists/changeling/powers/apex_predator.dm b/code/modules/antagonists/changeling/powers/apex_predator.dm new file mode 100644 index 000000000000..e40d7207e8e7 --- /dev/null +++ b/code/modules/antagonists/changeling/powers/apex_predator.dm @@ -0,0 +1,25 @@ +/datum/action/changeling/apex_predator + name = "Apex Predator" + desc = "We evolve a keen intuition, allowing us to detect the anxieties of nearby lifeforms." + helptext = "We will be able to detect the direction and room our prey is in, as well as if they have any injuries." + button_icon_state = "predator" + dna_cost = 1 + power_type = CHANGELING_PURCHASABLE_POWER + category = /datum/changeling_power_category/utility + +/datum/action/changeling/apex_predator/sting_action(mob/user) + var/list/target_by_name = list() + for(var/mob/living/carbon/human/possible_target as anything in GLOB.human_list) + if((!possible_target.mind || possible_target.z != user.z)) + continue + target_by_name[possible_target.real_name] = possible_target + + var/target_name = tgui_input_list(user, "Person to Locate", "Prey", target_by_name) + if(!target_name) + return + + var/mob/living/carbon/human/target = target_by_name[target_name] + var/message = "[target_name] is in [get_area(target)], [dir2text(get_dir(user, target))] of us." + if(target.get_damage_amount() >= 40 || target.bleed_rate) + message += " They are wounded..." + to_chat(user, "[message]") diff --git a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm index 8e443fdbf61f..a156a58467f9 100644 --- a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm +++ b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm @@ -7,7 +7,7 @@ dna_cost = 4 active = FALSE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_UTILITY + category = /datum/changeling_power_category/utility /datum/action/changeling/augmented_eyesight/on_purchase(mob/user, /datum/antagonist/changeling/C) //The ability starts inactive, so we should be protected from flashes. if(!..()) diff --git a/code/modules/antagonists/changeling/powers/become_headslug.dm b/code/modules/antagonists/changeling/powers/become_headslug.dm index 6e8f8aa282b5..be1f1fdbfae6 100644 --- a/code/modules/antagonists/changeling/powers/become_headslug.dm +++ b/code/modules/antagonists/changeling/powers/become_headslug.dm @@ -6,8 +6,10 @@ chemical_cost = 20 dna_cost = 2 req_human = TRUE + req_stat = DEAD + bypass_fake_death = TRUE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_DEFENSE + category = /datum/changeling_power_category/defence /datum/action/changeling/headslug/try_to_sting(mob/user, mob/target) if(alert("Are you sure you wish to do this? This action cannot be undone.",,"Yes","No") == "No") diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index 0d4fbfc0cd31..645c9189d104 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -7,7 +7,7 @@ dna_cost = 4 req_human = TRUE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_DEFENSE + category = /datum/changeling_power_category/defence /// Type of acid hand we give to person var/hand = /obj/item/melee/changeling_corrosive_acid /// Current hand given to human, null is we did not give hand, object if hand is given diff --git a/code/modules/antagonists/changeling/powers/chameleon_skin.dm b/code/modules/antagonists/changeling/powers/chameleon_skin.dm index b69ee5c0add8..18229432573c 100644 --- a/code/modules/antagonists/changeling/powers/chameleon_skin.dm +++ b/code/modules/antagonists/changeling/powers/chameleon_skin.dm @@ -7,7 +7,7 @@ chemical_cost = 25 req_human = TRUE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_UTILITY + category = /datum/changeling_power_category/utility /datum/action/changeling/chameleon_skin/sting_action(mob/user) var/mob/living/carbon/human/H = user //SHOULD always be human, because req_human = TRUE diff --git a/code/modules/antagonists/changeling/powers/contort_body.dm b/code/modules/antagonists/changeling/powers/contort_body.dm index 3c705db5345c..8d8e611ee85f 100644 --- a/code/modules/antagonists/changeling/powers/contort_body.dm +++ b/code/modules/antagonists/changeling/powers/contort_body.dm @@ -5,7 +5,7 @@ chemical_cost = 25 dna_cost = 4 power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_UTILITY + category = /datum/changeling_power_category/utility /datum/action/changeling/contort_body/Remove(mob/M) REMOVE_TRAIT(M, TRAIT_CONTORTED_BODY, CHANGELING_TRAIT) diff --git a/code/modules/antagonists/changeling/powers/digitalcamo.dm b/code/modules/antagonists/changeling/powers/digitalcamo.dm index be29d8a42f69..4ce7480153ab 100644 --- a/code/modules/antagonists/changeling/powers/digitalcamo.dm +++ b/code/modules/antagonists/changeling/powers/digitalcamo.dm @@ -5,7 +5,7 @@ button_icon_state = "digital_camo" dna_cost = 2 power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_UTILITY + category = /datum/changeling_power_category/utility /datum/action/changeling/digitalcamo/Remove(mob/M) REMOVE_TRAIT(M, TRAIT_AI_UNTRACKABLE, CHANGELING_TRAIT) diff --git a/code/modules/antagonists/changeling/powers/epinephrine.dm b/code/modules/antagonists/changeling/powers/epinephrine.dm index 070cc912064d..00e1f19e7b13 100644 --- a/code/modules/antagonists/changeling/powers/epinephrine.dm +++ b/code/modules/antagonists/changeling/powers/epinephrine.dm @@ -8,7 +8,7 @@ req_human = TRUE req_stat = UNCONSCIOUS power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_DEFENSE + category = /datum/changeling_power_category/defence //Recover from stuns. /datum/action/changeling/epinephrine/sting_action(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/fleshmend.dm b/code/modules/antagonists/changeling/powers/fleshmend.dm index d5968b247cd0..a2d46914432c 100644 --- a/code/modules/antagonists/changeling/powers/fleshmend.dm +++ b/code/modules/antagonists/changeling/powers/fleshmend.dm @@ -7,7 +7,7 @@ dna_cost = 4 req_stat = UNCONSCIOUS power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_DEFENSE + category = /datum/changeling_power_category/defence //Starts healing you every second for 10 seconds. Can be used whilst unconscious. /datum/action/changeling/fleshmend/sting_action(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/hivemind.dm b/code/modules/antagonists/changeling/powers/hivemind.dm index a2d21070cfd0..29079eaa61dd 100644 --- a/code/modules/antagonists/changeling/powers/hivemind.dm +++ b/code/modules/antagonists/changeling/powers/hivemind.dm @@ -9,7 +9,7 @@ GLOBAL_LIST_EMPTY(hivemind_bank) chemical_cost = 10 dna_cost = 4 power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_UTILITY + category = /datum/changeling_power_category/utility /datum/action/changeling/hivemind_pick/on_purchase(mob/user, datum/antagonist/changeling/C) if(!..()) @@ -50,7 +50,7 @@ GLOBAL_LIST_EMPTY(hivemind_bank) to_chat(user, "There's no new DNA to absorb from the air.") return - var/S = input("Select a DNA absorb from the air: ", "Absorb DNA", null) as null|anything in names + var/S = tgui_input_list(user, "Select a DNA absorb from the air", "Absorb DNA", names) if(!S) return diff --git a/code/modules/antagonists/changeling/powers/lesserform.dm b/code/modules/antagonists/changeling/powers/lesserform.dm index 85e960b8ce41..ea297fe802d6 100644 --- a/code/modules/antagonists/changeling/powers/lesserform.dm +++ b/code/modules/antagonists/changeling/powers/lesserform.dm @@ -7,7 +7,7 @@ dna_cost = 2 req_human = TRUE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_UTILITY + category = /datum/changeling_power_category/utility //Transform into a monkey. /datum/action/changeling/lesserform/sting_action(mob/living/carbon/human/user) diff --git a/code/modules/antagonists/changeling/powers/mimic_voice.dm b/code/modules/antagonists/changeling/powers/mimic_voice.dm index 558e54e92cdd..17347810c990 100644 --- a/code/modules/antagonists/changeling/powers/mimic_voice.dm +++ b/code/modules/antagonists/changeling/powers/mimic_voice.dm @@ -7,7 +7,7 @@ dna_cost = 2 req_human = TRUE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_UTILITY + category = /datum/changeling_power_category/utility // Fake Voice diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 11b4ebbe98ef..48c133b545b2 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -16,6 +16,8 @@ var/silent = FALSE var/weapon_type var/weapon_name_simple + /// How much does the chemical recharge rate get reduced by having this weapon out? + var/recharge_slowdown /datum/action/changeling/weapon/try_to_sting(mob/user, mob/target) if(istype(user.l_hand, weapon_type) || istype(user.r_hand, weapon_type)) @@ -30,8 +32,10 @@ return FALSE var/obj/item/W = new weapon_type(user, silent, src) user.put_in_hands(W) + cling.chem_recharge_slowdown += recharge_slowdown RegisterSignal(user, COMSIG_MOB_WILLINGLY_DROP, PROC_REF(retract), override = TRUE) RegisterSignal(user, COMSIG_MOB_WEAPON_APPEARS, PROC_REF(retract), override = TRUE) + playsound(owner.loc, 'sound/effects/bone_break_1.ogg', 100, TRUE) return W /datum/action/changeling/weapon/proc/retract(atom/target, any_hand = FALSE) @@ -50,7 +54,9 @@ owner.update_inv_r_hand() done = TRUE if(done && !silent) + playsound(owner.loc, 'sound/effects/bone_break_2.ogg', 100, TRUE) owner.visible_message("With a sickening crunch, [owner] reforms [owner.p_their()] [weapon_name_simple] into an arm!", "We assimilate the [weapon_name_simple] back into our body.", "You hear organic matter ripping and tearing!") + cling.chem_recharge_slowdown -= recharge_slowdown // We handle this here because more things can retract without going through try_to_sting //Parent to space suits and armor. /datum/action/changeling/suit @@ -73,6 +79,7 @@ var/mob/living/carbon/human/H = user if(istype(H.wear_suit, suit_type) || istype(H.head, helmet_type)) H.visible_message("[H] casts off [H.p_their()] [suit_name_simple]!", "We cast off our [suit_name_simple].", "You hear the organic matter ripping and tearing!") + playsound(owner.loc, 'sound/effects/bone_break_2.ogg', 100, TRUE) qdel(H.wear_suit) qdel(H.head) H.update_inv_wear_suit() @@ -112,20 +119,22 @@ \***************************************/ /datum/action/changeling/weapon/arm_blade name = "Arm Blade" - desc = "We reform one of our arms into a deadly blade. Costs 25 chemicals." + desc = "We reform one of our arms into a deadly blade. Costs 15 chemicals." helptext = "We may retract our armblade in the same manner as we form it. Cannot be used while in lesser form." button_icon_state = "armblade" - chemical_cost = 25 + chemical_cost = 15 dna_cost = 4 req_human = TRUE weapon_type = /obj/item/melee/arm_blade weapon_name_simple = "blade" power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_ATTACK + recharge_slowdown = 0.75 + category = /datum/changeling_power_category/offence /obj/item/melee/arm_blade name = "arm blade" desc = "A grotesque blade made of bone and flesh that cleaves through people like a hot knife through butter." + hitsound = 'sound/weapons/armblade.ogg' icon_state = "arm_blade" item_state = "arm_blade" flags = ABSTRACT | NODROP | DROPDEL @@ -185,7 +194,7 @@ weapon_name_simple = "tentacle" silent = TRUE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_ATTACK + category = /datum/changeling_power_category/offence /obj/item/gun/magic/tentacle name = "tentacle" @@ -215,6 +224,7 @@ if(ismob(loc)) if(!silent) loc.visible_message("[loc.name]\'s arm starts stretching inhumanly!", "Our arm twists and mutates, transforming it into a tentacle.", "You hear organic matter ripping and tearing!") + playsound(loc, 'sound/effects/bone_break_1.ogg', 100, TRUE) else to_chat(loc, "You prepare to extend a tentacle.") @@ -223,6 +233,7 @@ parent_action.UnregisterSignal(parent_action.owner, COMSIG_MOB_WILLINGLY_DROP) parent_action.UnregisterSignal(parent_action.owner, COMSIG_MOB_WEAPON_APPEARS) parent_action = null + playsound(loc, 'sound/effects/bone_break_2.ogg', 100, TRUE) return ..() /obj/item/gun/magic/tentacle/shoot_with_empty_chamber(mob/living/user as mob|obj) @@ -387,7 +398,7 @@ weapon_type = /obj/item/shield/changeling weapon_name_simple = "shield" power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_DEFENSE + category = /datum/changeling_power_category/defence /datum/action/changeling/weapon/shield/sting_action(mob/user) var/obj/item/shield/changeling/S = ..(user) @@ -409,12 +420,14 @@ AddComponent(/datum/component/parry, _stamina_constant = 2, _stamina_coefficient = 0.5, _parryable_attack_types = ALL_ATTACK_TYPES) if(ismob(loc)) loc.visible_message("The end of [loc.name]\'s hand inflates rapidly, forming a huge shield-like mass!", "We inflate our hand into a strong shield.", "You hear organic matter ripping and tearing!") + playsound(loc, 'sound/effects/bone_break_1.ogg', 100, TRUE) /obj/item/shield/changeling/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(remaining_uses < 1) if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.visible_message("With a sickening crunch, [H] reforms [H.p_their()] shield into an arm!", "We assimilate our shield into our body", "[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!", "We harden our flesh, creating a suit of armor!", "You hear organic matter ripping and tearing!") + playsound(loc, 'sound/effects/bone_break_1.ogg', 100, TRUE) /obj/item/clothing/suit/armor/changeling/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text, final_block_chance, damage) . = ..() diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm index 69682dd18e13..231af7879598 100644 --- a/code/modules/antagonists/changeling/powers/panacea.dm +++ b/code/modules/antagonists/changeling/powers/panacea.dm @@ -7,7 +7,7 @@ dna_cost = 2 req_stat = UNCONSCIOUS power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_DEFENSE + category = /datum/changeling_power_category/defence //Heals the things that the other regenerative abilities don't. /datum/action/changeling/panacea/sting_action(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm index 0c2f393a4989..90c98ab8e6c0 100644 --- a/code/modules/antagonists/changeling/powers/shriek.dm +++ b/code/modules/antagonists/changeling/powers/shriek.dm @@ -7,7 +7,7 @@ dna_cost = 2 req_human = TRUE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_ATTACK + category = /datum/changeling_power_category/offence //A flashy ability, good for crowd control and sowing chaos. /datum/action/changeling/resonant_shriek/sting_action(mob/user) @@ -24,7 +24,7 @@ M.AdjustConfused(40 SECONDS) M.Jitter(100 SECONDS) else - SEND_SOUND(M, sound('sound/effects/screech.ogg')) + SEND_SOUND(M, sound('sound/effects/clingscream.ogg')) if(issilicon(M)) SEND_SOUND(M, sound('sound/weapons/flash.ogg')) @@ -44,7 +44,7 @@ chemical_cost = 30 dna_cost = 2 power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_UTILITY + category = /datum/changeling_power_category/utility //A flashy ability, good for crowd control and sewing chaos. /datum/action/changeling/dissonant_shriek/sting_action(mob/user) diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index cca63a4f73d4..c3ff08b02937 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -10,7 +10,7 @@ dna_cost = 2 req_human = TRUE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_DEFENSE + category = /datum/changeling_power_category/defence /datum/action/changeling/strained_muscles/Remove(mob/living/L) L.remove_status_effect(STATUS_EFFECT_SPEEDLEGS) diff --git a/code/modules/antagonists/changeling/powers/summon_spiders.dm b/code/modules/antagonists/changeling/powers/summon_spiders.dm index e4d37c51e4a4..3ef00c46c0ba 100644 --- a/code/modules/antagonists/changeling/powers/summon_spiders.dm +++ b/code/modules/antagonists/changeling/powers/summon_spiders.dm @@ -16,7 +16,7 @@ /// Checks if changeling is already spawning a spider var/is_operating = FALSE power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_UTILITY + category = /datum/changeling_power_category/utility /// Makes a spider. Good for setting traps and combat. /datum/action/changeling/spiders/sting_action(mob/user) diff --git a/code/modules/antagonists/changeling/powers/swap_form.dm b/code/modules/antagonists/changeling/powers/swap_form.dm index 9fec3a5e3d68..71a838c1fdc3 100644 --- a/code/modules/antagonists/changeling/powers/swap_form.dm +++ b/code/modules/antagonists/changeling/powers/swap_form.dm @@ -7,7 +7,7 @@ dna_cost = 2 req_human = TRUE //Monkeys can't grab power_type = CHANGELING_PURCHASABLE_POWER - menu_location = CLING_MENU_ATTACK + category = /datum/changeling_power_category/offence /datum/action/changeling/swap_form/can_sting(mob/living/carbon/user) if(!..()) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 798dd999a385..504c568f8a31 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -2,7 +2,7 @@ name = "Tiny Prick" desc = "Stabby stabby" power_type = CHANGELING_UNOBTAINABLE_POWER - menu_location = CLING_MENU_STINGS + category = /datum/changeling_power_category/stings var/sting_icon = null /// A middle click override used to intercept changeling stings performed on a target. var/datum/middleClickOverride/callback_invoker/click_override diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index fb0eb2397277..b2e2fe1fa82f 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -92,7 +92,7 @@ */ /datum/antagonist/traitor/proc/forge_human_objectives() // Hijack objective. - if(prob(10) && !(locate(/datum/objective/hijack) in owner.get_all_objectives())) + if(prob(2) && !(locate(/datum/objective/hijack) in owner.get_all_objectives())) // SS220 EDIT prob(10 -> 2) add_antag_objective(/datum/objective/hijack) return // Hijack should be their only objective (normally), so return. diff --git a/code/modules/arcade/prize_datums.dm b/code/modules/arcade/prize_datums.dm index c7d027bf4d00..d24cd4aaf894 100644 --- a/code/modules/arcade/prize_datums.dm +++ b/code/modules/arcade/prize_datums.dm @@ -19,11 +19,11 @@ GLOBAL_DATUM_INIT(global_prizes, /datum/prizes, new()) if(prize_counter.tickets >= item.cost) new item.typepath(prize_counter.loc) prize_counter.tickets -= item.cost - prize_counter.visible_message("Enjoy your prize!") - return 1 + to_chat(usr, "Enjoy your prize!") + return TRUE else - prize_counter.visible_message("Not enough tickets!") - return 0 + to_chat(usr, "Not enough tickets!") + return FALSE ////////////////////////////////////// // prize_item datum // diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm index 509d30e35b67..dd9c6f9ec053 100644 --- a/code/modules/assembly/igniter.dm +++ b/code/modules/assembly/igniter.dm @@ -59,3 +59,6 @@ if(!istype(loc, /obj/item/assembly_holder)) activate() add_fingerprint(user) + +/obj/item/assembly/igniter/get_heat() + return 2000 diff --git a/code/modules/atmospherics/machinery/atmospherics.dm b/code/modules/atmospherics/machinery/atmospherics.dm index 005cf14e393f..2ab54354bd13 100644 --- a/code/modules/atmospherics/machinery/atmospherics.dm +++ b/code/modules/atmospherics/machinery/atmospherics.dm @@ -210,32 +210,25 @@ Pipelines + Other Objects -> Pipe network playsound(loc, W.usesound, 50, 1) to_chat(user, "You begin to unfasten \the [src]...") - for(var/obj/item/clothing/shoes/magboots/usermagboots in user.get_equipped_items()) - if(usermagboots.magpulse) - safefromgusts = TRUE - for(var/obj/item/clothing/shoes/mod/usermodboots in user.get_equipped_items()) - if(usermodboots.magbooted) - safefromgusts = TRUE + if(HAS_TRAIT(user, TRAIT_MAGPULSE)) + safefromgusts = TRUE - if(internal_pressure > 2*ONE_ATMOSPHERE) + if(internal_pressure > 2 * ONE_ATMOSPHERE) unsafe_wrenching = TRUE //Oh dear oh dear if(internal_pressure > 1750 && !safefromgusts) // 1750 is the pressure limit to do 60 damage when thrown - to_chat(user, "As you struggle to unwrench \the [src] a huge gust of gas blows in your face! This seems like a terrible idea!") + to_chat(user, "As you struggle to unwrench [src] a huge gust of gas blows in your face! This seems like a terrible idea!") else - to_chat(user, "As you begin unwrenching \the [src] a gust of air blows in your face... maybe you should reconsider?") + to_chat(user, "As you begin unwrenching [src] a gust of air blows in your face... maybe you should reconsider?") if(do_after(user, 40 * W.toolspeed, target = src) && !QDELETED(src)) safefromgusts = FALSE - for(var/obj/item/clothing/shoes/magboots/usermagboots in user.get_equipped_items()) - if(usermagboots.magpulse) // Check again, incase they change magpulse mid-wrench - safefromgusts = TRUE - for(var/obj/item/clothing/shoes/mod/usermodboots in user.get_equipped_items()) - if(usermodboots.magbooted) - safefromgusts = TRUE + + if(HAS_TRAIT(user, TRAIT_MAGPULSE)) + safefromgusts = TRUE user.visible_message( \ - "[user] unfastens \the [src].", \ - "You have unfastened \the [src].", \ + "[user] unfastens [src].", \ + "You have unfastened [src].", \ "You hear ratcheting.") investigate_log("was REMOVED by [key_name(usr)]", "atmos") diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index 4a385be49a81..4bcce55dd21b 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -28,8 +28,6 @@ reconcile_air() return -GLOBAL_VAR_INIT(pipenetwarnings, 10) - /datum/pipeline/proc/build_pipeline(obj/machinery/atmospherics/base) var/volume = 0 if(istype(base, /obj/machinery/atmospherics/pipe)) diff --git a/code/modules/client/preference/link_processing.dm b/code/modules/client/preference/link_processing.dm index 792e9d80fd43..3f06e358e58b 100644 --- a/code/modules/client/preference/link_processing.dm +++ b/code/modules/client/preference/link_processing.dm @@ -29,7 +29,7 @@ var/datum/job/job = locate(href_list["job"]) if(job) var/choices = list(job.title) + job.alt_titles - var/choice = input("Pick a title for [job.title].", "Character Generation", active_character.GetPlayerAltTitle(job)) as anything in choices | null + var/choice = tgui_input_list(user, "Pick a title for [job.title]", "Character Generation", choices) if(choice) active_character.SetPlayerAltTitle(job, choice) active_character.SetChoices(user) @@ -223,7 +223,9 @@ if(can_use_species(user, _species)) new_species += _species - active_character.species = input("Please select a species", "Character Generation", null) in sortTim(new_species, GLOBAL_PROC_REF(cmp_text_asc)) + active_character.species = tgui_input_list(user, "Please select a species", "Character Generation", sortList(new_species)) + if(!active_character.species) + return var/datum/species/NS = GLOB.all_species[active_character.species] if(!istype(NS)) //The species was invalid. Notify the user and fail out. active_character.species = prev_species @@ -309,14 +311,17 @@ if(!(lang.flags & RESTRICTED)) new_languages += lang.name - active_character.language = input("Please select a secondary language", "Character Generation", null) in sortTim(new_languages, GLOBAL_PROC_REF(cmp_text_asc)) + active_character.language = tgui_input_list(user, "Please select a secondary language", "Character Generation", sortList(new_languages)) + if(!active_character.language) + return if("autohiss_mode") if(S.autohiss_basic_map) var/list/autohiss_choice = list("Off" = AUTOHISS_OFF, "Basic" = AUTOHISS_BASIC, "Full" = AUTOHISS_FULL) - var/new_autohiss_pref = input(user, "Choose your character's auto-accent level:", "Character Preference") as null|anything in autohiss_choice - if(new_autohiss_pref) - active_character.autohiss_mode = autohiss_choice[new_autohiss_pref] + var/new_autohiss_pref = tgui_input_list(user, "Choose your character's auto-accent level", "Character Preference", autohiss_choice) + if(!new_autohiss_pref) + return + active_character.autohiss_mode = autohiss_choice[new_autohiss_pref] if("metadata") var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , active_character.metadata) as message|null @@ -324,9 +329,10 @@ active_character.metadata = sanitize(copytext_char(new_metadata,1,MAX_MESSAGE_LEN)) // SS220 EDIT - ORIGINAL: copytext if("b_type") - var/new_b_type = input(user, "Choose your character's blood-type:", "Character Preference") as null|anything in list( "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-" ) - if(new_b_type) - active_character.b_type = new_b_type + var/new_b_type = tgui_input_list(user, "Choose your character's blood-type", "Character Preference", list( "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")) + if(!new_b_type) + return + active_character.b_type = new_b_type if("hair") if(!(S.bodyflags & BALD)) @@ -369,12 +375,12 @@ valid_hairstyles += hairstyle sortTim(valid_hairstyles, GLOBAL_PROC_REF(cmp_text_asc)) //this alphabetizes the list - var/new_h_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in valid_hairstyles + var/new_h_style = tgui_input_list(user, "Choose your character's hair style:", "Character Preference", valid_hairstyles) if(new_h_style) active_character.h_style = new_h_style if("h_grad_style") - var/result = input(user, "Choose your character's hair gradient style:", "Character Preference") as null|anything in GLOB.hair_gradients_list + var/result = tgui_input_list(user, "Choose your character's hair gradient style", "Character Preference", GLOB.hair_gradients_list) if(result) active_character.h_grad_style = result @@ -414,7 +420,7 @@ valid_head_accessory_styles += head_accessory_style sortTim(valid_head_accessory_styles, GLOBAL_PROC_REF(cmp_text_asc)) - var/new_head_accessory_style = input(user, "Choose the style of your character's head accessory:", "Character Preference") as null|anything in valid_head_accessory_styles + var/new_head_accessory_style = tgui_input_list(user, "Choose the style of your character's head accessory", "Character Preference", valid_head_accessory_styles) if(new_head_accessory_style) active_character.ha_style = new_head_accessory_style @@ -423,7 +429,6 @@ return if(S.bodyflags & HAS_ALT_HEADS) //Species with alt heads. var/list/valid_alt_heads = list() - valid_alt_heads["None"] = GLOB.alt_heads_list["None"] //The only null entry should be the "None" option for(var/alternate_head in GLOB.alt_heads_list) var/datum/sprite_accessory/alt_heads/head = GLOB.alt_heads_list[alternate_head] if(!(active_character.species in head.species_allowed)) @@ -431,7 +436,7 @@ valid_alt_heads += alternate_head - var/new_alt_head = input(user, "Choose your character's alternate head style:", "Character Preference") as null|anything in valid_alt_heads + var/new_alt_head = tgui_input_list(user, "Choose your character's alternate head style", "Character Preference", valid_alt_heads) if(new_alt_head) active_character.alt_head = new_alt_head if(active_character.m_styles["head"]) @@ -443,7 +448,6 @@ if("m_style_head") if(S.bodyflags & HAS_HEAD_MARKINGS) //Species with head markings. var/list/valid_markings = list() - valid_markings["None"] = GLOB.marking_styles_list["None"] for(var/markingstyle in GLOB.marking_styles_list) var/datum/sprite_accessory/body_markings/head/M = GLOB.marking_styles_list[markingstyle] if(!(active_character.species in M.species_allowed)) @@ -472,7 +476,7 @@ valid_markings += markingstyle sortTim(valid_markings, GLOBAL_PROC_REF(cmp_text_asc)) - var/new_marking_style = input(user, "Choose the style of your character's head markings:", "Character Preference", active_character.m_styles["head"]) as null|anything in valid_markings + var/new_marking_style = tgui_input_list(user, "Choose the style of your character's head markings:", "Character Preference", valid_markings) if(new_marking_style) active_character.m_styles["head"] = new_marking_style @@ -486,7 +490,6 @@ if("m_style_body") if(S.bodyflags & HAS_BODY_MARKINGS) //Species with body markings/tattoos. var/list/valid_markings = list() - valid_markings["None"] = GLOB.marking_styles_list["None"] for(var/markingstyle in GLOB.marking_styles_list) var/datum/sprite_accessory/M = GLOB.marking_styles_list[markingstyle] if(!(active_character.species in M.species_allowed)) @@ -496,7 +499,7 @@ valid_markings += markingstyle sortTim(valid_markings, GLOBAL_PROC_REF(cmp_text_asc)) - var/new_marking_style = input(user, "Choose the style of your character's body markings:", "Character Preference", active_character.m_styles["body"]) as null|anything in valid_markings + var/new_marking_style = tgui_input_list(user, "Choose the style of your character's body markings:", "Character Preference", valid_markings) if(new_marking_style) active_character.m_styles["body"] = new_marking_style @@ -510,7 +513,6 @@ if("m_style_tail") if(S.bodyflags & HAS_TAIL_MARKINGS) //Species with tail markings. var/list/valid_markings = list() - valid_markings["None"] = GLOB.marking_styles_list["None"] for(var/markingstyle in GLOB.marking_styles_list) var/datum/sprite_accessory/body_markings/tail/M = GLOB.marking_styles_list[markingstyle] if(M.marking_location != "tail") @@ -526,7 +528,7 @@ valid_markings += markingstyle sortTim(valid_markings, GLOBAL_PROC_REF(cmp_text_asc)) - var/new_marking_style = input(user, "Choose the style of your character's tail markings:", "Character Preference", active_character.m_styles["tail"]) as null|anything in valid_markings + var/new_marking_style = tgui_input_list(user, "Choose the style of your character's tail markings:", "Character Preference", valid_markings) if(new_marking_style) active_character.m_styles["tail"] = new_marking_style @@ -553,7 +555,7 @@ else possible_body_accessories -= "None" // in case an admin is viewing it sortTim(possible_body_accessories, GLOBAL_PROC_REF(cmp_text_asc)) - var/new_body_accessory = input(user, "Choose your body accessory:", "Character Preference") as null|anything in possible_body_accessories + var/new_body_accessory = tgui_input_list(user, "Choose your body accessory", "Character Preference", possible_body_accessories) if(new_body_accessory) active_character.m_styles["tail"] = "None" active_character.body_accessory = (new_body_accessory == "None") ? null : new_body_accessory @@ -601,7 +603,7 @@ if(active_character.species in SA.species_allowed) //If the user's head is of a species the facial hair style allows, add it to the list. valid_facial_hairstyles += facialhairstyle sortTim(valid_facial_hairstyles, GLOBAL_PROC_REF(cmp_text_asc)) - var/new_f_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in valid_facial_hairstyles + var/new_f_style = tgui_input_list(user, "Choose your character's facial-hair style", "Character Preference", valid_facial_hairstyles) if(new_f_style) active_character.f_style = new_f_style @@ -617,7 +619,7 @@ continue valid_underwear[underwear] = GLOB.underwear_list[underwear] sortTim(valid_underwear, GLOBAL_PROC_REF(cmp_text_asc)) - var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in valid_underwear + var/new_underwear = tgui_input_list(user, "Choose your character's underwear", "Character Preference", valid_underwear) ShowChoices(user) if(new_underwear) active_character.underwear = new_underwear @@ -633,7 +635,7 @@ continue valid_undershirts[undershirt] = GLOB.undershirt_list[undershirt] sortTim(valid_undershirts, GLOBAL_PROC_REF(cmp_text_asc)) - var/new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in valid_undershirts + var/new_undershirt = tgui_input_list(user, "Choose your character's undershirt", "Character Preference", valid_undershirts) ShowChoices(user) if(new_undershirt) active_character.undershirt = new_undershirt @@ -650,7 +652,7 @@ continue valid_sockstyles[sockstyle] = GLOB.socks_list[sockstyle] sortTim(valid_sockstyles, GLOBAL_PROC_REF(cmp_text_asc)) - var/new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in valid_sockstyles + var/new_socks = tgui_input_list(user, "Choose your character's socks", "Character Preference", valid_sockstyles) ShowChoices(user) if(new_socks) active_character.socks = new_socks @@ -667,14 +669,7 @@ active_character.s_tone = 35 - max(min(round(new_s_tone), 220), 1) else if(S.bodyflags & HAS_ICON_SKIN_TONE) var/const/MAX_LINE_ENTRIES = 4 - var/prompt = "Choose your character's skin tone: 1-[S.icon_skin_tones.len]\n(" - for(var/i = 1 to S.icon_skin_tones.len) - if(i > MAX_LINE_ENTRIES && !((i - 1) % MAX_LINE_ENTRIES)) - prompt += "\n" - prompt += "[i] = [S.icon_skin_tones[i]]" - if(i != S.icon_skin_tones.len) - prompt += ", " - prompt += ")" + var/prompt = "Choose your character's skin tone: 1-[length(S.icon_skin_tones)]\n(Light to Dark)" var/skin_c = input(user, prompt, "Character Preference") as num|null if(isnum(skin_c)) active_character.s_tone = max(min(round(skin_c), S.icon_skin_tones.len), 1) @@ -691,22 +686,22 @@ ooccolor = new_ooccolor if("bag") - var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backbaglist + var/new_backbag = tgui_input_list(user, "Choose your character's style of bag", "Character Preference", GLOB.backbaglist) if(new_backbag) active_character.backbag = new_backbag if("nt_relation") - var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference") as null|anything in list("Loyal", "Supportive", "Neutral", "Skeptical", "Opposed") + var/new_relation = tgui_input_list(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference", list("Loyal", "Supportive", "Neutral", "Skeptical", "Opposed")) if(new_relation) active_character.nanotrasen_relation = new_relation if("physique") - var/new_physique = input(user, "Choose your descriptor for how built your character is on glance.", "Character Preference") as null|anything in GLOB.character_physiques + var/new_physique = tgui_input_list(user, "Choose your descriptor for how built your character is on glance.", "Character Preference", GLOB.character_physiques) if(new_physique) active_character.physique = new_physique if("height") - var/new_height = input(user, "Choose your descriptor for how tall your character is on glance.", "Character Preference") as null|anything in GLOB.character_heights + var/new_height = tgui_input_list(user, "Choose your descriptor for how tall your character is on glance.", "Character Preference", GLOB.character_heights) if(new_height) active_character.height = new_height @@ -733,7 +728,7 @@ var/valid_limbs = list("Left Leg", "Right Leg", "Left Arm", "Right Arm", "Left Foot", "Right Foot", "Left Hand", "Right Hand") if(S.bodyflags & ALL_RPARTS) valid_limbs = list("Torso", "Lower Body", "Head", "Left Leg", "Right Leg", "Left Arm", "Right Arm", "Left Foot", "Right Foot", "Left Hand", "Right Hand") - var/limb_name = input(user, "Which limb do you want to change?") as null|anything in valid_limbs + var/limb_name = tgui_input_list(user, "Which limb do you want to change?", "Limbs and Parts", valid_limbs) if(!limb_name) return var/limb = null @@ -782,7 +777,7 @@ if(!(S.bodyflags & ALL_RPARTS)) third_limb = "r_arm" - var/new_state = input(user, "What state do you wish the limb to be in?") as null|anything in valid_limb_states + var/new_state = tgui_input_list(user, "What state do you wish the limb to be in?", "[limb_name]", valid_limb_states) if(!new_state) return switch(new_state) @@ -815,7 +810,7 @@ robolimb_companies[R.company] = R //List only main brands that have the parts we're looking for. R = new() //Re-initialize R. - choice = input(user, "Which manufacturer do you wish to use for this limb?") as null|anything in robolimb_companies //Choose from a list of companies that offer the part the user wants. + choice = tgui_input_list(user, "Which manufacturer do you wish to use for this limb?", "[limb_name] - Prosthesis", robolimb_companies) //Choose from a list of companies that offer the part the user wants. if(!choice) return R.company = choice @@ -831,7 +826,7 @@ if(second_limb in L.parts) //If the child limb of the limb the user selected is also present in the model's parts list, state it's been found so the second limb can be set later. in_model = 1 if(robolimb_models.len > 1) //If there's more than one model in the list that can provide the part the user wants, let them choose. - subchoice = input(user, "Which model of [choice] [limb_name] do you wish to use?") as null|anything in robolimb_models + subchoice = tgui_input_list(user, "Which model of [choice] [limb_name] do you wish to use?", "[limb_name] - Prosthesis - Model", robolimb_models) if(subchoice) choice = subchoice if(limb in list("head", "chest", "groin")) @@ -854,7 +849,7 @@ active_character.rlimb_data[second_limb] = choice active_character.organ_data[second_limb] = "cyborg" if("organs") - var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list("Eyes", "Ears", "Heart", "Lungs", "Liver", "Kidneys") + var/organ_name = tgui_input_list(user, "Which internal function do you want to change?", "Internal Organs", list("Eyes", "Ears", "Heart", "Lungs", "Liver", "Kidneys")) if(!organ_name) return @@ -873,7 +868,7 @@ if("Kidneys") organ = "kidneys" - var/new_state = input(user, "What state do you wish the organ to be in?") as null|anything in list("Normal", "Cybernetic") + var/new_state = tgui_input_list(user, "What state do you wish the organ to be in?", "[organ_name]", list("Normal", "Cybernetic")) if(!new_state) return switch(new_state) @@ -897,7 +892,7 @@ else switch(href_list["preference"]) if("cbmode") - var/cb_mode = input(user, "Select a colourblind mode\nNote this will disable special screen effects such as the cursed heart warnings!") as null|anything in list(COLOURBLIND_MODE_NONE, COLOURBLIND_MODE_DEUTER, COLOURBLIND_MODE_PROT, COLOURBLIND_MODE_TRIT) + var/cb_mode = tgui_input_list(user, "Select a colourblind mode\nNote this will disable special screen effects such as the cursed heart warnings!", "Colorblind mode", list(COLOURBLIND_MODE_NONE, COLOURBLIND_MODE_DEUTER, COLOURBLIND_MODE_PROT, COLOURBLIND_MODE_TRIT)) if(cb_mode) colourblind_mode = cb_mode user.update_client_colour(0) @@ -912,7 +907,9 @@ if("gender") if(!S.has_gender) - var/newgender = input(user, "Choose Gender:") as null|anything in list("Male", "Female", "Genderless") + var/newgender = tgui_input_list(user, "Who are you?", "Choose Gender", list("Male", "Female", "Genderless")) + if(!newgender) + return switch(newgender) if("Male") active_character.gender = MALE @@ -930,29 +927,32 @@ if("hear_adminhelps") sound ^= SOUND_ADMINHELP if("ui") - switch(UI_style) + var/new_UI_style = tgui_input_list(user, "Choose your UI style", "UI style", list("Midnight", "Plasmafire", "Retro", "Slimecore", "Operative", "White")) + if(!new_UI_style) + return + switch(new_UI_style) if("Midnight") - UI_style = "Plasmafire" + UI_style = "Midnight" if("Plasmafire") - UI_style = "Retro" + UI_style = "Plasmafire" if("Retro") - UI_style = "Slimecore" + UI_style = "Retro" if("Slimecore") - UI_style = "Operative" + UI_style = "Slimecore" if("Operative") + UI_style = "Operative" + if("White") + UI_style = "White" // SS220 ADDITION START - UI_style = "Vaporwave" if("Vaporwave") - UI_style = "Detective" + UI_style = "Vaporwave" if("Detective") - UI_style = "Trasen" + UI_style = "Detective" if("Trasen") - UI_style = "Clockwork" + UI_style = "Trasen" if("Clockwork") + UI_style = "Clockwork" // SS220 ADDITION END - UI_style = "White" - else - UI_style = "Midnight" if(ishuman(usr)) //mid-round preference changes, for aesthetics var/mob/living/carbon/human/H = usr @@ -961,6 +961,9 @@ if("tgui") toggles2 ^= PREFTOGGLE_2_FANCYUI + if("input_lists") + toggles2 ^= PREFTOGGLE_2_DISABLE_TGUI_LISTS + if("ghost_att_anim") toggles2 ^= PREFTOGGLE_2_ITEMATTACK @@ -978,7 +981,9 @@ "19x15 (Ultrawide)" = "19x15" ) - var/new_range = input(user, "Select a view range") as anything in viewrange_options + var/new_range = tgui_input_list(user, "Select a view range", "View range", viewrange_options) + if(!new_range) + return var/actual_new_range = viewrange_options[new_range] viewrange = actual_new_range @@ -1112,7 +1117,10 @@ "High" = PARALLAX_HIGH, "Insane" = PARALLAX_INSANE ) - parallax = parallax_styles[input(user, "Pick a parallax style", "Parallax Style") as null|anything in parallax_styles] + var/new_parallax = tgui_input_list(user, "Pick a parallax style", "Parallax Style", parallax_styles) + if(!new_parallax) + return + parallax = parallax_styles[new_parallax] if(parent && parent.mob && parent.mob.hud_used) parent.mob.hud_used.update_parallax_pref() diff --git a/code/modules/client/preference/loadout/gear_tweaks.dm b/code/modules/client/preference/loadout/gear_tweaks.dm index d462cc1f342d..2dbda39a9268 100644 --- a/code/modules/client/preference/loadout/gear_tweaks.dm +++ b/code/modules/client/preference/loadout/gear_tweaks.dm @@ -16,7 +16,6 @@ /* * Color adjustment */ -GLOBAL_DATUM_INIT(gear_tweak_free_color_choice, /datum/gear_tweak/color, new()) /datum/gear_tweak/color var/list/valid_colors diff --git a/code/modules/client/preference/loadout/loadout_accessories.dm b/code/modules/client/preference/loadout/loadout_accessories.dm index 3ea92a98d263..864887d2e95f 100644 --- a/code/modules/client/preference/loadout/loadout_accessories.dm +++ b/code/modules/client/preference/loadout/loadout_accessories.dm @@ -147,10 +147,18 @@ display_name = "Cowboy shirt, short sleeved navy" path = /obj/item/clothing/accessory/cowboyshirt/navy/short_sleeved +/datum/gear/accessory/locket/silver + display_name = "Silver locket" + path = /obj/item/clothing/accessory/necklace/locket/silver + /datum/gear/accessory/locket display_name = "Gold locket" path = /obj/item/clothing/accessory/necklace/locket +/datum/gear/accessory/necklace/long + display_name = "Large necklace" + path = /obj/item/clothing/accessory/necklace/long + /datum/gear/accessory/necklace display_name = "Simple necklace" path = /obj/item/clothing/accessory/necklace diff --git a/code/modules/client/preference/loadout/loadout_general.dm b/code/modules/client/preference/loadout/loadout_general.dm index a6ae08ea13e5..f9fe14a95703 100644 --- a/code/modules/client/preference/loadout/loadout_general.dm +++ b/code/modules/client/preference/loadout/loadout_general.dm @@ -93,40 +93,6 @@ display_name = "Shark plushie" path = /obj/item/toy/plushie/shark -/datum/gear/goggles - display_name = "Goggles" - path = /obj/item/clothing/glasses/goggles - -/datum/gear/sechud - display_name = "Classic security HUD" - path = /obj/item/clothing/glasses/hud/security - allowed_roles = list("Head of Security", "Warden", "Security Officer", "Internal Affairs Agent","Magistrate") - -/datum/gear/sechudgoggles - display_name = "Security HUD goggles" - path = /obj/item/clothing/glasses/hud/security/goggles - allowed_roles = list("Head of Security", "Warden", "Security Officer", "Internal Affairs Agent", "Magistrate") - -/datum/gear/medhudgoggles - display_name = "Health HUD goggles" - path = /obj/item/clothing/glasses/hud/health/goggles - allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Coroner", "Chemist", "Geneticist", "Virologist", "Psychiatrist", "Paramedic") - -/datum/gear/diaghudgoggles - display_name = "Diagnostic HUD goggles" - path = /obj/item/clothing/glasses/hud/diagnostic/goggles - allowed_roles = list("Research Director", "Scientist", "Roboticist") - -/datum/gear/hydrohudgoggles - display_name = "Hydroponic HUD goggles" - path = /obj/item/clothing/glasses/hud/hydroponic/goggles - allowed_roles = list("Botanist") - -/datum/gear/skillhudgoggles - display_name = "Skill HUD goggles" - path = /obj/item/clothing/glasses/hud/skills/goggles - allowed_roles = list("Psychiatrist", "Nanotrasen Representative", "Head of Personnel", "Captain") - /datum/gear/cryaonbox display_name = "Box of crayons" path = /obj/item/storage/fancy/crayons diff --git a/code/modules/client/preference/loadout/loadout_glasses.dm b/code/modules/client/preference/loadout/loadout_glasses.dm index 1eec9f19af36..c6188f314642 100644 --- a/code/modules/client/preference/loadout/loadout_glasses.dm +++ b/code/modules/client/preference/loadout/loadout_glasses.dm @@ -35,3 +35,41 @@ /datum/gear/glasses/prescription display_name = "Prescription glasses" path = /obj/item/clothing/glasses/regular + +/datum/gear/glasses/sechud + display_name = "Classic security HUD" + path = /obj/item/clothing/glasses/hud/security + allowed_roles = list("Head of Security", "Warden", "Security Officer", "Internal Affairs Agent","Magistrate") + +/datum/gear/glasses/goggles + display_name = "Goggles" + path = /obj/item/clothing/glasses/goggles + +/datum/gear/glasses/goggles_job + main_typepath = /datum/gear/glasses/goggles_job + subtype_selection_cost = FALSE + +/datum/gear/glasses/goggles_job/sechudgoggles + display_name = "Security HUD goggles" + path = /obj/item/clothing/glasses/hud/security/goggles + allowed_roles = list("Head of Security", "Warden", "Security Officer", "Internal Affairs Agent", "Magistrate") + +/datum/gear/glasses/goggles_job/medhudgoggles + display_name = "Health HUD goggles" + path = /obj/item/clothing/glasses/hud/health/goggles + allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Coroner", "Chemist", "Geneticist", "Virologist", "Psychiatrist", "Paramedic") + +/datum/gear/glasses/goggles_job/diaghudgoggles + display_name = "Diagnostic HUD goggles" + path = /obj/item/clothing/glasses/hud/diagnostic/goggles + allowed_roles = list("Research Director", "Scientist", "Roboticist") + +/datum/gear/glasses/goggles_job/hydrohudgoggles + display_name = "Hydroponic HUD goggles" + path = /obj/item/clothing/glasses/hud/hydroponic/goggles + allowed_roles = list("Botanist") + +/datum/gear/glasses/goggles_job/skillhudgoggles + display_name = "Skill HUD goggles" + path = /obj/item/clothing/glasses/hud/skills/goggles + allowed_roles = list("Psychiatrist", "Nanotrasen Representative", "Head of Personnel", "Captain") diff --git a/code/modules/client/preference/loadout/loadout_hat.dm b/code/modules/client/preference/loadout/loadout_hat.dm index 06929b6311ed..828e88d0992b 100644 --- a/code/modules/client/preference/loadout/loadout_hat.dm +++ b/code/modules/client/preference/loadout/loadout_hat.dm @@ -179,7 +179,7 @@ /datum/gear/hat/beret_job/hop display_name = "Beret, head of personnel" - path = /obj/item/clothing/head/hopcap/beret + path = /obj/item/clothing/head/hop/beret allowed_roles = list("Head of Personnel") /datum/gear/hat/beret_job/sci diff --git a/code/modules/client/preference/loadout/loadout_racial.dm b/code/modules/client/preference/loadout/loadout_racial.dm index d8a669572b74..ba6ed7bec30b 100644 --- a/code/modules/client/preference/loadout/loadout_racial.dm +++ b/code/modules/client/preference/loadout/loadout_racial.dm @@ -59,6 +59,11 @@ path = /obj/item/clothing/shoes/footwraps slot = SLOT_HUD_SHOES +/datum/gear/racial/handwraps + display_name = "Cloth handwraps" + path = /obj/item/clothing/gloves/handwraps + slot = SLOT_HUD_GLOVES + /datum/gear/racial/vox_casual display_name = "Vox jumpsuit" description = "These loose clothes are optimized for the labors of the lower castes onboard the arkships. Large openings in the top allow for breathability while the pants are durable yet flexible enough to not restrict movement." diff --git a/code/modules/client/preference/loadout/loadout_suit.dm b/code/modules/client/preference/loadout/loadout_suit.dm index 6de3e2dd9fee..9c01e17cac97 100644 --- a/code/modules/client/preference/loadout/loadout_suit.dm +++ b/code/modules/client/preference/loadout/loadout_suit.dm @@ -251,7 +251,7 @@ /datum/gear/suit/mantle/job/hop display_name = "Mantle, head of personnel" - path = /obj/item/clothing/suit/mantle/armor/head_of_personnel + path = /obj/item/clothing/suit/mantle/armor/hop allowed_roles = list("Head of Personnel") /datum/gear/suit/mantle/job/rd diff --git a/code/modules/client/preference/loadout/loadout_uniform.dm b/code/modules/client/preference/loadout/loadout_uniform.dm index 0de18c3d4b03..b377d517e2bd 100644 --- a/code/modules/client/preference/loadout/loadout_uniform.dm +++ b/code/modules/client/preference/loadout/loadout_uniform.dm @@ -203,6 +203,11 @@ path = /obj/item/clothing/under/rank/security/head_of_security/skirt allowed_roles = list("Head of Security") +/datum/gear/uniform/skirt/job/head_of_personnel + display_name = "Skirt, hop" + path = /obj/item/clothing/under/rank/civilian/hop/skirt + allowed_roles = list("Head of Personnel") + /datum/gear/uniform/skirt/job/magistrate display_name = "Skirt, magistrate" path = /obj/item/clothing/under/rank/procedure/magistrate/skirt diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 5501bbdce796..beffea1f9b2f 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -1,6 +1,5 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts to play these roles ROLE_PAI = 0, - ROLE_POSIBRAIN = 0, ROLE_GUARDIAN = 0, ROLE_TRAITOR = 7, ROLE_CHANGELING = 14, @@ -16,8 +15,6 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts ROLE_SENTIENT = 21, ROLE_ELITE = 21, // ROLE_GANG = 21, - ROLE_NINJA = 21, - ROLE_GSPIDER = 21, ROLE_ABDUCTOR = 30 )) @@ -391,6 +388,11 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts dat += "Socks: [active_character.socks]
" dat += "Backpack Type: [active_character.backbag]
" + var/datum/species/myspecies = GLOB.all_species[active_character.species] + if(!isnull(myspecies)) + dat += "

Species Information

" + dat += "
Species Description: [myspecies.blurb]
" + dat += "" if(TAB_GAME) // General Preferences @@ -414,6 +416,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts if(user.client.donator_level > 0) dat += "Donator Publicity: [(toggles & PREFTOGGLE_DONATOR_PUBLIC) ? "Public" : "Hidden"]
" dat += "Fancy TGUI: [(toggles2 & PREFTOGGLE_2_FANCYUI) ? "Yes" : "No"]
" + dat += "Input Lists: [(toggles2 & PREFTOGGLE_2_DISABLE_TGUI_LISTS) ? "Default" : "TGUI"]
" dat += "FPS: [clientfps]
" dat += "Ghost Ears: [(toggles & PREFTOGGLE_CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]
" dat += "Ghost Radio: [(toggles & PREFTOGGLE_CHAT_GHOSTRADIO) ? "All Chatter" : "Nearest Speakers"]
" diff --git a/code/modules/client/preference/preferences_spawnpoints.dm b/code/modules/client/preference/preferences_spawnpoints.dm deleted file mode 100644 index 0fd960e9ff82..000000000000 --- a/code/modules/client/preference/preferences_spawnpoints.dm +++ /dev/null @@ -1,20 +0,0 @@ -GLOBAL_LIST_EMPTY(spawntypes) - -/proc/populate_spawn_points() - // GLOB.spawntypes = list() | This is already done, is it not - for(var/type in subtypesof(/datum/spawnpoint)) - var/datum/spawnpoint/S = new type() - GLOB.spawntypes[S.display_name] = S - -/datum/spawnpoint - var/msg //Message to display on the arrivals computer. - var/list/turfs //List of turfs to spawn on. - var/display_name //Name used in preference setup. - -/datum/spawnpoint/arrivals - display_name = "Arrivals Shuttle" - msg = "has arrived on the station" - -/datum/spawnpoint/arrivals/New() - ..() - turfs = GLOB.latejoin diff --git a/code/modules/client/preference/preferences_toggles.dm b/code/modules/client/preference/preferences_toggles.dm index 688b5e7becb3..c252a2d8d1f9 100644 --- a/code/modules/client/preference/preferences_toggles.dm +++ b/code/modules/client/preference/preferences_toggles.dm @@ -226,6 +226,14 @@ to_chat(src, "You will no longer hear musical instruments.") SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Instruments") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/verb/toggle_input() + set name = "Toggle TGUI Input Lists" + set category = "Preferences" + set desc = "Switches input lists between the TGUI and the standard one" + prefs.toggles2 ^= PREFTOGGLE_2_DISABLE_TGUI_LISTS + prefs.save_preferences(src) + to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_DISABLE_TGUI_LISTS) ? "no longer" : "now"] use TGUI Input Lists.") + /client/verb/Toggle_disco() //to toggle off the disco machine locally, in case it gets too annoying set name = "Hear/Silence Dance Machine" set category = "Preferences" diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 1e31735ae2ea..9b1028c82a62 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -30,7 +30,7 @@ /datum/action/chameleon_outfit/proc/select_outfit(mob/user) if(!user || !IsAvailable()) return FALSE - var/selected = input("Select outfit to change into", "Chameleon Outfit") as null|anything in outfit_options + var/selected = tgui_input_list(user, "Select outfit to change into", "Chameleon Outfit", outfit_options) if(!IsAvailable() || QDELETED(src) || QDELETED(user)) return FALSE var/outfit_type = outfit_options[selected] @@ -110,7 +110,7 @@ /datum/action/item_action/chameleon/change/proc/select_look(mob/user) var/obj/item/picked_item var/picked_name - picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) as null|anything in chameleon_list + picked_name = tgui_input_list(user, "Select [chameleon_name] to change into", "Chameleon [chameleon_name]", chameleon_list) if(!picked_name) return picked_item = chameleon_list[picked_name] @@ -379,9 +379,10 @@ /obj/item/clothing/gloves/chameleon desc = "These gloves will protect the wearer from electric shock." name = "insulated gloves" + siemens_coefficient = 0 + permeability_coefficient = 0.05 icon_state = "yellow" item_state = "ygloves" - resistance_flags = NONE armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 50) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index ed5f8178d20a..efdaafea15ff 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -142,7 +142,9 @@ slot_flags = SLOT_FLAG_EARS resistance_flags = NONE sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/ears.dmi') //We read you loud and skree-er. + "Vox" = 'icons/mob/clothing/species/vox/ears.dmi', //We read you loud and skree-er. + "Kidan" = 'icons/mob/clothing/species/kidan/ears.dmi' + ) /obj/item/clothing/ears/attack_hand(mob/user) if(!user) @@ -312,7 +314,6 @@ var/list/modes = list("Off", "Binary sensors", "Vitals tracker", "Tracking beacon") var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes - if(!user.Adjacent(src)) to_chat(user, "You have moved too far away!") return @@ -356,7 +357,7 @@ if(H.w_uniform == src) H.update_suit_sensors() -/obj/item/clothing/under/AltShiftClick(mob/user) +/obj/item/clothing/under/AltClick(mob/user) set_sensors(user) //Head @@ -523,9 +524,6 @@ icon_state = "[icon_state]_opentoe" item_state = "[item_state]_opentoe" -/obj/item/proc/negates_gravity() - return - //Suit /obj/item/clothing/suit name = "suit" @@ -814,14 +812,14 @@ if(SUIT_SENSOR_TRACKING) . += "Its vital tracker and tracking beacon appear to be enabled." if(has_sensor == 1) - . += "Alt-shift-click to toggle the sensors mode." + . += "Alt-click to toggle the sensors mode." else . += "This suit does not have any sensors." if(length(accessories)) for(var/obj/item/clothing/accessory/A in accessories) . += "\A [A] is attached to it." - . += "Alt-click to remove an accessory." + . += "Alt-Shift-Click to remove an accessory." . += "Ctrl-Shift-Click to roll down this jumpsuit." @@ -855,7 +853,7 @@ body_parts_covered &= ~LOWER_TORSO body_parts_covered &= ~ARMS -/obj/item/clothing/under/AltClick(mob/user) +/obj/item/clothing/under/AltShiftClick(mob/user) if(user.stat || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user)) return if(!length(accessories)) diff --git a/code/modules/clothing/glasses/hudglasses.dm b/code/modules/clothing/glasses/hudglasses.dm index 784eb833ba3c..a87eedd9ea8e 100644 --- a/code/modules/clothing/glasses/hudglasses.dm +++ b/code/modules/clothing/glasses/hudglasses.dm @@ -235,3 +235,32 @@ "Vox" = 'icons/mob/clothing/species/vox/eyes.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/eyes.dmi' ) + +/obj/item/clothing/glasses/hud/janitor + name = "janitor HUD" + desc = "A heads-up display that scans for messes and alerts the user. Good for finding puddles hiding under catwalks." + icon_state = "janihud" + hud_types = DATA_HUD_JANITOR + + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/eyes.dmi', + "Drask" = 'icons/mob/clothing/species/drask/eyes.dmi', + "Grey" = 'icons/mob/clothing/species/grey/eyes.dmi', + "Kidan" = 'icons/mob/clothing/species/kidan/eyes.dmi' + ) + +/obj/item/clothing/glasses/hud/janitor/sunglasses + name = "janitor HUD sunglasses" + desc = "Sunglasses with a build-in filth scanner, scans for messes and alerts the user." + icon_state = "sunhudjani" + see_in_dark = 1 + flash_protect = FLASH_PROTECTION_FLASH + tint = FLASH_PROTECTION_FLASH + +/obj/item/clothing/glasses/hud/janitor/night + name = "night vision janitor HUD" + desc = "A janitorial filth scanner fitted with a light amplifier." + icon_state = "nvjanihud" + origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5" + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE diff --git a/code/modules/clothing/gloves/misc_gloves.dm b/code/modules/clothing/gloves/misc_gloves.dm index 48f789ba8dc8..8ccbd2546f86 100644 --- a/code/modules/clothing/gloves/misc_gloves.dm +++ b/code/modules/clothing/gloves/misc_gloves.dm @@ -80,6 +80,14 @@ resistance_flags = NONE armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 115, ACID = 20) +/obj/item/clothing/gloves/handwraps + name = "cloth handwraps" + desc = "A roll of treated canvas used for wrapping claws or paws." + icon_state = "clothwrap" + item_state = "clothwrap" + transfer_prints = TRUE + clipped = TRUE + /obj/item/clothing/gloves/batmangloves name = "batgloves" desc = "Used for handling all things bat related." diff --git a/code/modules/clothing/head/job_hats.dm b/code/modules/clothing/head/job_hats.dm index 5761dfdcbeff..3641624520c1 100644 --- a/code/modules/clothing/head/job_hats.dm +++ b/code/modules/clothing/head/job_hats.dm @@ -50,17 +50,23 @@ icon_state = "captain_beret_white" //Head of Personnel -/obj/item/clothing/head/hopcap +/obj/item/clothing/head/hop name = "head of personnel's cap" icon_state = "hopcap" desc = "The symbol of true bureaucratic micromanagement." armor = list(MELEE = 15, BULLET = 10, LASER = 15, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50) dog_fashion = /datum/dog_fashion/head/hop + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/head.dmi', + "Drask" = 'icons/mob/clothing/species/drask/head.dmi', + "Grey" = 'icons/mob/clothing/species/grey/head.dmi' + ) -/obj/item/clothing/head/hopcap/beret +/obj/item/clothing/head/hop/beret name = "head of personnel's beret" desc = "For doing paperwork with style." - icon_state = "hop_beret" + icon_state = "beret_hop" + dog_fashion = /datum/dog_fashion/head/hop sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/head.dmi', "Drask" = 'icons/mob/clothing/species/drask/head.dmi', diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index c2d32904979c..88b9be267c52 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -13,31 +13,31 @@ put_on_delay = 70 resistance_flags = FIRE_PROOF -/obj/item/clothing/shoes/magboots/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - /obj/item/clothing/shoes/magboots/water_act(volume, temperature, source, method) . = ..() if(magpulse && slowdown_active > SHOES_SLOWDOWN) slowdown = slowdown_active -/obj/item/clothing/shoes/magboots/atmos - desc = "Magnetic boots, made to withstand gusts of space wind over 500kmph." - name = "atmospheric magboots" - icon_state = "atmosmagboots0" - magboot_state = "atmosmagboots" +/obj/item/clothing/shoes/magboots/equipped(mob/user, slot, initial) + . = ..() + if(slot != SLOT_HUD_SHOES || !ishuman(user)) + return + check_mag_pulse() + +/obj/item/clothing/shoes/magboots/dropped(mob/user, silent) + . = ..() + if(!ishuman(user)) + return + check_mag_pulse() /obj/item/clothing/shoes/magboots/attack_self(mob/user, forced = FALSE) toggle_magpulse(user, forced) /obj/item/clothing/shoes/magboots/proc/toggle_magpulse(mob/user, forced) if(magpulse) - START_PROCESSING(SSobj, src) //Gravboots flags &= ~NOSLIP slowdown = slowdown_passive else - STOP_PROCESSING(SSobj, src) flags |= NOSLIP slowdown = slowdown_active magpulse = !magpulse @@ -49,14 +49,26 @@ for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() + check_mag_pulse(user) -/obj/item/clothing/shoes/magboots/negates_gravity() - return flags & NOSLIP +/obj/item/clothing/shoes/magboots/proc/check_mag_pulse(mob/user) + if(!user) + return + if(magpulse) + ADD_TRAIT(user, TRAIT_MAGPULSE, "magboots") + return + if(HAS_TRAIT(user, TRAIT_MAGPULSE)) // User has trait and the magboots were turned off, remove trait + REMOVE_TRAIT(user, TRAIT_MAGPULSE, "magboots") /obj/item/clothing/shoes/magboots/examine(mob/user) . = ..() . += "Its [magpulse_name] appears to be [magpulse ? "enabled" : "disabled"]." +/obj/item/clothing/shoes/magboots/atmos + name = "atmospheric magboots" + desc = "Magnetic boots, made to withstand gusts of space wind over 500kmph." + icon_state = "atmosmagboots0" + magboot_state = "atmosmagboots" /obj/item/clothing/shoes/magboots/advance name = "advanced magboots" diff --git a/code/modules/clothing/shoes/misc_shoes.dm b/code/modules/clothing/shoes/misc_shoes.dm index 21ff3ad54fe3..a6925603b28d 100644 --- a/code/modules/clothing/shoes/misc_shoes.dm +++ b/code/modules/clothing/shoes/misc_shoes.dm @@ -119,6 +119,10 @@ desc = "Standard-issue shoes of the wizarding class clown. Damn they're huge! And powerful! Somehow." magical = TRUE +/obj/item/clothing/shoes/clown_shoes/magical/nodrop + desc = "Standard-issue shoes of the wizarding class clown. Damn they're huge! And stuck to your feet!" + flags = NODROP + /obj/item/clothing/shoes/clown_shoes/slippers actions_types = list(/datum/action/item_action/slipping) enabled_waddle = FALSE @@ -134,6 +138,8 @@ /obj/item/clothing/shoes/clown_shoes/slippers/proc/slide_one(mob/living/user, progress, prev_dir , prev_flags) user.dir = prev_dir step(user, user.dir) + for(var/mob/living/carbon/crossed in user.loc) + crossed.slip(src, 16 SECONDS, 0, FALSE, TRUE, "trip") if(progress == slide_distance) user.stand_up() user.pass_flags = prev_flags diff --git a/code/modules/clothing/suits/job_suits.dm b/code/modules/clothing/suits/job_suits.dm index 0984dc2c3478..81da15db9d6e 100644 --- a/code/modules/clothing/suits/job_suits.dm +++ b/code/modules/clothing/suits/job_suits.dm @@ -259,13 +259,26 @@ resistance_flags = NONE //Head of Personnel -/obj/item/clothing/suit/mantle/armor/head_of_personnel +/obj/item/clothing/suit/mantle/armor/hop name = "head of personnel's shawl" desc = "An armored shawl for the head of personnel. It's remarkably well kept." icon_state = "hopmantle" item_state = "hopmantle" armor = list(MELEE = 15, BULLET = 10, LASER = 15, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50) +/obj/item/clothing/suit/hopcoat + name = "head of personnel's coat" + desc = "A big coat for the Head of Personnel who wants to make a fashion statement. Has armour woven within the fabric." + icon_state = "hopcoat" + item_state = "hopcoat" + armor = list(MELEE = 15, BULLET = 10, LASER = 15, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50) + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', + "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', + "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi' + ) + //Dignitaries /obj/item/clothing/suit/storage/ntrep name = "\improper Nanotrasen Representative jacket" diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index a4f8afdcf061..cc8c0cc27012 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -580,6 +580,14 @@ item_color = "necklace" slot_flags = SLOT_FLAG_TIE +/obj/item/clothing/accessory/necklace/long + name = "large necklace" + desc = "A large necklace." + icon_state = "necklacelong" + item_state = "necklacelong" + item_color = "necklacelong" + + /obj/item/clothing/accessory/necklace/dope name = "gold necklace" desc = "Damn, it feels good to be a gangster." @@ -608,9 +616,9 @@ /obj/item/clothing/accessory/necklace/locket name = "gold locket" desc = "A gold locket that seems to have space for a photo within." - icon_state = "locket" - item_state = "locket" - item_color = "locket" + icon_state = "locketgold" + item_state = "locketgold" + item_color = "locketgold" slot_flags = SLOT_FLAG_TIE var/base_icon var/open @@ -656,6 +664,13 @@ else return ..() +/obj/item/clothing/accessory/necklace/locket/silver + name = "silver locket" + desc = "A silver locket that seems to have space for a photo within." + icon_state = "locketsilver" + item_state = "locketsilver" + item_color = "locketsilver" + //Cowboy Shirts /obj/item/clothing/accessory/cowboyshirt name = "black cowboy shirt" diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index ad4d59225f1d..3c91205d81ec 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -5,42 +5,48 @@ "Human" = 'icons/mob/clothing/under/civilian.dmi', "Vox" = 'icons/mob/clothing/species/vox/under/civilian.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/civilian.dmi', - "Grey" = 'icons/mob/clothing/species/grey/under/civilian.dmi' + "Grey" = 'icons/mob/clothing/species/grey/under/civilian.dmi', + "Kidan" = 'icons/mob/clothing/species/kidan/under/civilian.dmi' ) -/obj/item/clothing/under/rank/civilian/head_of_personnel - desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"." +/obj/item/clothing/under/rank/civilian/hop name = "head of personnel's jumpsuit" + desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"." icon_state = "hop" - item_state = "b_suit" item_color = "hop" -/obj/item/clothing/under/rank/civilian/head_of_personnel/dress +/obj/item/clothing/under/rank/civilian/hop/skirt + name = "head of personnel's jumpskirt" + desc = "It's a jumpskirt worn by someone who works in the position of \"Head of Personnel\"." + icon_state = "hop_skirt" + item_color = "hop_skirt" + +/obj/item/clothing/under/rank/civilian/hop/dress name = "head of personnel's dress uniform" desc = "Feminine fashion for the style conscious Head of Personnel." - icon_state = "dress_hop" - item_color = "dress_hop" + icon_state = "hop_dress" + item_color = "hop_dress" -/obj/item/clothing/under/rank/civilian/head_of_personnel_whimsy - desc = "A blue jacket and red tie, with matching red cuffs! Snazzy. Wearing this makes you feel more important than your job title does." +/obj/item/clothing/under/rank/civilian/hop/formal + name = "head of personnel's formal uniform" + desc = "A stylish choice for a formal occasion." + icon_state = "hop_formal" + item_color = "hop_formal" + +/obj/item/clothing/under/rank/civilian/hop/whimsy name = "head of personnel's suit" - icon_state = "hopwhimsy" - item_state = "hopwhimsy" - item_color = "hopwhimsy" + desc = "A blue sweater and red tie, with matching red cuffs! Snazzy. Wearing this makes you feel more important than your job title does." + icon_state = "hop_whimsy" + item_state = "hop_whimsy" + item_color = "hop_whimsy" -/obj/item/clothing/under/rank/civilian/head_of_personnel/oldman +/obj/item/clothing/under/rank/civilian/hop/oldman name = "old man's suit" desc = "A classic suit for the older gentleman with built in back support." icon_state = "oldman" item_state = "oldman" item_color = "oldman" -/obj/item/clothing/under/rank/civilian/head_of_personnel/dress_hr - name = "human resources director's uniform" - desc = "Superior class for the nosy H.R. Director." - icon_state = "huresource" - item_color = "huresource" - /obj/item/clothing/under/rank/civilian/bartender desc = "It looks like it could use some more flair." name = "bartender's uniform" diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index e7f85338775e..d61c901d1e5f 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -77,6 +77,17 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON +/datum/crafting_recipe/improvised_pneumatic_cannon + name = "Pneumatic Cannon" + result = list(/obj/item/pneumatic_cannon/ghetto) + tools = list(TOOL_WELDER, TOOL_WRENCH) + reqs = list(/obj/item/stack/sheet/metal = 4, + /obj/item/stack/packageWrap = 8, + /obj/item/pipe = 2) + time = 300 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + /datum/crafting_recipe/throwing_croissant name = "Throwing croissant" reqs = list( diff --git a/code/modules/crafting/tailoring.dm b/code/modules/crafting/tailoring.dm index 5415b415c22d..5ce8299daee3 100644 --- a/code/modules/crafting/tailoring.dm +++ b/code/modules/crafting/tailoring.dm @@ -194,6 +194,24 @@ reqs = list(/obj/item/clothing/glasses/hud/diagnostic/sunglasses = 1) category = CAT_CLOTHING +/datum/crafting_recipe/hudsunjani + name = "Janitor HUD sunglasses" + result = list(/obj/item/clothing/glasses/hud/janitor/sunglasses) + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/janitor = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunjaniremoval + name = "Janitor HUD sunglasses removal" + result = list(/obj/item/clothing/glasses/sunglasses, /obj/item/clothing/glasses/hud/janitor) + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/janitor/sunglasses = 1) + category = CAT_CLOTHING + /datum/crafting_recipe/beergoggles name = "Sunscanners" result = list(/obj/item/clothing/glasses/sunglasses/reagent) diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index c72524f7638e..4cb0098abffb 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -704,7 +704,7 @@ "mask_flags" = HIDEMASK|HIDEFACE ) - var/choice = input(user, "How would you like to adjust the helmet?", "Adjust Helmet") as null|anything in options + var/choice = tgui_input_list(user, "How would you like to adjust the helmet?", "Adjust Helmet", options) if(choice && choice != state && !user.incapacitated() && Adjacent(user)) var/list/new_state = options[choice] @@ -771,7 +771,7 @@ options["lime"] ="shazjacket_lime" options["army green"] ="shazjacket_army" - var/choice = input(user, "What color do you wish your jacket to be?", "Change color") as null|anything in options + var/choice = tgui_input_list(user, "What color do you wish your jacket to be?", "Change color", options) if(choice && !user.stat && in_range(user, src)) if(suit_adjusted) @@ -1249,15 +1249,15 @@ var/list/plush_colors = list("red fox plushie" = "redfox", "black fox plushie" = "blackfox", "marble fox plushie" = "marblefox", "blue fox plushie" = "bluefox", "orange fox plushie" = "orangefox", "coffee fox plushie" = "coffeefox", "pink fox plushie" = "pinkfox", "purple fox plushie" = "purplefox", "crimson fox plushie" = "crimsonfox") -/obj/item/toy/plushie/fluff/fox/proc/change_color() +/obj/item/toy/plushie/fluff/fox/proc/change_color(mob/user) if(prompting_change) return prompting_change = TRUE - var/plushie_color = input("Select a color", "[src]") as null|anything in plush_colors + var/plushie_color = tgui_input_list(user, "Select a color", "[src]", plush_colors) prompting_change = FALSE if(!plushie_color) return - if(!Adjacent(usr)) + if(!Adjacent(user)) return name = plushie_color icon_state = plush_colors[plushie_color] @@ -1266,8 +1266,8 @@ var/datum/action/A = X A.UpdateButtonIcon() -/obj/item/toy/plushie/fluff/fox/ui_action_click() - change_color() +/obj/item/toy/plushie/fluff/fox/ui_action_click(mob/user) + change_color(user) // TheFlagbearer: Willow Walker @@ -1439,7 +1439,7 @@ options["Syndicate"] = "syndie_witch" options["Nanotrasen"] ="nt_witch" - var/choice = input(user, "To what form do you wish to Shapeshift this hat?", "Shapeshift Hat") as null|anything in options + var/choice = tgui_input_list(user, "To what form do you wish to Shapeshift this hat?", "Shapeshift Hat", options) if(choice && !user.stat && in_range(user, src)) icon_state = options[choice] diff --git a/code/modules/events/blob/blob_structures/blob_core.dm b/code/modules/events/blob/blob_structures/blob_core.dm index d31be32c6c7a..4d1f4f8a784b 100644 --- a/code/modules/events/blob/blob_structures/blob_core.dm +++ b/code/modules/events/blob/blob_structures/blob_core.dm @@ -14,7 +14,6 @@ /obj/structure/blob/core/Initialize(mapload, client/new_overmind = null, new_rate = 2, offspring) . = ..() - GLOB.blob_cores += src START_PROCESSING(SSobj, src) GLOB.poi_list |= src adjustcolors(color) //so it atleast appears @@ -38,7 +37,6 @@ /obj/structure/blob/core/Destroy() - GLOB.blob_cores -= src if(overmind) overmind.blob_core = null overmind = null diff --git a/code/modules/events/blob/theblob.dm b/code/modules/events/blob/theblob.dm index 5fa597f3d280..9b616928aef6 100644 --- a/code/modules/events/blob/theblob.dm +++ b/code/modules/events/blob/theblob.dm @@ -1,7 +1,6 @@ //I will need to recode parts of this but I am way too tired atm GLOBAL_LIST_EMPTY(blobs) -GLOBAL_LIST_EMPTY(blob_cores) GLOBAL_LIST_EMPTY(blob_nodes) /obj/structure/blob @@ -268,7 +267,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) return B.blob_reagent_datum.description return "something unknown" -/obj/structure/blob/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) +/obj/structure/blob/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) damage *= 0.25 // Lets not have sorium be too much of a blender / rapidly kill itself return ..() diff --git a/code/modules/events/event_procs.dm b/code/modules/events/event_procs.dm index 994cddf841b6..95690d946422 100644 --- a/code/modules/events/event_procs.dm +++ b/code/modules/events/event_procs.dm @@ -27,6 +27,7 @@ /area/shuttle, /area/station/maintenance, /area/station/science/toxins/test, + /area/space, /area/station/public/sleep)) //These are needed because /area/station/engineering has to be removed from the list, but we still want these areas to get fucked up. diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index cfe58e22ba6d..bcdee1f840ea 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -1,5 +1,3 @@ -GLOBAL_VAR_INIT(sent_spiders_to_station, 0) - /datum/event/spider_infestation announceWhen = 400 var/spawncount = 1 @@ -8,7 +6,6 @@ GLOBAL_VAR_INIT(sent_spiders_to_station, 0) /datum/event/spider_infestation/setup() announceWhen = rand(announceWhen, announceWhen + 50) spawncount = round(num_players() * 0.8) - GLOB.sent_spiders_to_station = 1 /datum/event/spider_infestation/announce(false_alarm) if(successSpawn || false_alarm) diff --git a/code/modules/fish/fishtank.dm b/code/modules/fish/fishtank.dm index d2cde90e0220..3b2ac70a4d8b 100644 --- a/code/modules/fish/fishtank.dm +++ b/code/modules/fish/fishtank.dm @@ -319,7 +319,7 @@ var/count = length(fish_types[key]) var/fish_description = "[initial(fish_type.fish_name)][count > 1 ? " (x[count])" : ""]" fish_types_input[fish_description] = fish_type - var/caught_fish = input("Select a fish to catch.", "Fishing") as null|anything in fish_types_input //Select a fish from the tank + var/caught_fish = tgui_input_list(user, "Select a fish to catch.", "Fishing", fish_types_input) //Select a fish from the tank if(!caught_fish) return if(!Adjacent(user)) diff --git a/code/modules/food_and_drinks/drinks/bottler/bottler.dm b/code/modules/food_and_drinks/drinks/bottler/bottler.dm index 55150c6e769f..10f1065f444f 100644 --- a/code/modules/food_and_drinks/drinks/bottler/bottler.dm +++ b/code/modules/food_and_drinks/drinks/bottler/bottler.dm @@ -375,7 +375,7 @@ if(href_list["process"]) var/list/choices = list("Glass Bottle" = 1, "Plastic Bottle" = 2, "Metal Can" = 3) - var/selection = input("Select a container for your beverage.", "Container") as null|anything in choices + var/selection = tgui_input_list(usr, "Select a container for your beverage.", "Container", choices) if(!selection) return else diff --git a/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm b/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm index 2717379ec4db..5f13f5938929 100644 --- a/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm +++ b/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm @@ -56,7 +56,7 @@ There is no excuse to do this wrong now that there is an example for you. --Fals description = "Creamy, smooth flavor, just like the bald heads of the masses. Supposedly aged for 30 years." ingredients = list(/obj/item/reagent_containers/food/drinks/cans/cola, /obj/item/reagent_containers/food/snacks/grown/sugarcane, - /obj/item/reagent_containers/food/snacks/icecream) + /obj/item/reagent_containers/food/snacks/frozen/icecream) result = "blackeye_brew" /datum/bottler_recipe/Grape_Granade diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index b618c902a400..5307f00752dc 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -372,7 +372,7 @@ new /obj/effect/hotspot(get_turf(target)) /obj/item/reagent_containers/food/drinks/bottle/molotov/attackby(obj/item/I, mob/user, params) - if(is_hot(I) && !active) + if(I.get_heat() && !active) active = TRUE var/turf/bombturf = get_turf(src) var/area/bombarea = get_area(bombturf) diff --git a/code/modules/food_and_drinks/drinks/drinks/shotglass.dm b/code/modules/food_and_drinks/drinks/drinks/shotglass.dm index 680c32c7e012..c181349498b1 100644 --- a/code/modules/food_and_drinks/drinks/drinks/shotglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/shotglass.dm @@ -98,7 +98,7 @@ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/attackby(obj/item/W) ..() - if(is_hot(W)) + if(W.get_heat()) fire_act() /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/attack_hand(mob/user, pickupfireoverride = TRUE) diff --git a/code/modules/food_and_drinks/food/foods/desserts.dm b/code/modules/food_and_drinks/food/foods/desserts.dm index efb685f45f10..692c8c06208b 100644 --- a/code/modules/food_and_drinks/food/foods/desserts.dm +++ b/code/modules/food_and_drinks/food/foods/desserts.dm @@ -1,60 +1,3 @@ - -////////////////////// -// Ice Cream // -////////////////////// - -/obj/item/reagent_containers/food/snacks/icecream - name = "ice cream" - desc = "Delicious ice cream." - icon = 'icons/obj/kitchen.dmi' - icon_state = "icecream_cone" - bitesize = 3 - list_reagents = list("nutriment" = 1, "sugar" = 1) - tastes = list("ice cream" = 1) - -/obj/item/reagent_containers/food/snacks/icecream/Initialize(mapload) - . = ..() - update_icon(UPDATE_OVERLAYS) - -/obj/item/reagent_containers/food/snacks/icecream/update_overlays() - . = ..() - var/mutable_appearance/filling = mutable_appearance('icons/obj/kitchen.dmi', "icecream_color") - var/list/reagent_colors = rgb2num(mix_color_from_reagents(reagents.reagent_list), COLORSPACE_HSV) //switching to HSV colorspace lets us easily manipulate the saturation and brightness independently - //Clamping the brightness keeps us from having greyish ice cream while still alowing for a range of colours - filling.color = rgb(reagent_colors[1], ((1.5 * reagent_colors[2]) - 10), (clamp(reagent_colors[3], 85, 100) - 10), space = COLORSPACE_HSV) - . += filling - -/obj/item/reagent_containers/food/snacks/icecream/icecreamcone - name = "ice cream cone" - desc = "Delicious ice cream." - icon_state = "icecream_cone" - volume = 50 - bitesize = 3 - list_reagents = list("nutriment" = 3, "sugar" = 7, "ice" = 2) - -/obj/item/reagent_containers/food/snacks/icecream/wafflecone - name = "ice cream in a waffle cone" - desc = "Delicious ice cream." - icon_state = "icecream_cone_waffle" - volume = 50 - bitesize = 3 - list_reagents = list("nutriment" = 3, "sugar" = 7, "ice" = 2) - -/obj/item/reagent_containers/food/snacks/icecream/icecreamcup - name = "chocolate ice cream cone" - desc = "Delicious ice cream." - icon_state = "icecream_cone_chocolate" - volume = 50 - bitesize = 3 - list_reagents = list("nutriment" = 5, "chocolate" = 8, "ice" = 2) - -/obj/item/reagent_containers/food/snacks/icecreamsandwich - name = "icecream sandwich" - desc = "Portable ice cream in its own packaging." - icon_state = "icecreamsandwich" - list_reagents = list("nutriment" = 2, "ice" = 2) - - ////////////////////// // Misc // ////////////////////// diff --git a/code/modules/food_and_drinks/food/foods/frozen.dm b/code/modules/food_and_drinks/food/foods/frozen.dm new file mode 100644 index 000000000000..d9c790827b77 --- /dev/null +++ b/code/modules/food_and_drinks/food/foods/frozen.dm @@ -0,0 +1,335 @@ + +////////////////////////////// +// Frozen Treats // +////////////////////////////// + +//Abstract item for inheritence. + +/obj/item/reagent_containers/food/snacks/frozen + name = "frozen treat" + desc = "If you got this, something broke! Contact a coder if this somehow spawns." + icon = 'icons/obj/food/frozen_treats.dmi' + icon_state = "flavorless_sc" + +/obj/item/reagent_containers/food/snacks/sliceable/clowncake + name = "clown cake" + desc = "A funny cake with a clown face on it." + icon = 'icons/obj/food/frozen_treats.dmi' + icon_state = "clowncake" + slice_path = /obj/item/reagent_containers/food/snacks/frozen/clowncakeslice + list_reagents = list("nutriment" = 20, "sugar" = 5, "vitamin" = 5, "banana" = 15) + tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/clowncakeslice + name = "clown cake slice" + desc = "A slice of bad jokes, and silly props." + icon_state = "clowncake_slice" + trash = /obj/item/trash/plate + filling_color = "#FFD675" + list_reagents = list("nutriment" = 4, "sugar" = 1, "vitamin" = 1, "banana" = 3) + tastes = list("cake" = 5, "sweetness" = 2, "sad clowns" = 1, "ice-cream" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/sundae + name = "sundae" + desc = "Portable ice cream in its own packaging." + icon_state = "sundae" + list_reagents = list("nutriment" = 2, "ice" = 2) + tastes = list("ice cream" = 1, "banana" = 1) + +/////////////////// +// Ice Cream // +////////////////// + +/obj/item/reagent_containers/food/snacks/frozen/icecream + name = "ice cream" + desc = "Delicious ice cream." + icon_state = "icecream_cone" + bitesize = 3 + list_reagents = list("nutriment" = 1, "sugar" = 1) + tastes = list("ice cream" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/icecream/Initialize(mapload) + . = ..() + update_icon(UPDATE_OVERLAYS) + +/obj/item/reagent_containers/food/snacks/frozen/icecream/update_overlays() + . = ..() + var/mutable_appearance/filling = mutable_appearance('icons/obj/food/frozen_treats.dmi', "icecream_color") + var/list/reagent_colors = rgb2num(mix_color_from_reagents(reagents.reagent_list), COLORSPACE_HSV) //switching to HSV colorspace lets us easily manipulate the saturation and brightness independently + //Clamping the brightness keeps us from having greyish ice cream while still alowing for a range of colours + filling.color = rgb(reagent_colors[1], ((1.5 * reagent_colors[2]) - 10), (clamp(reagent_colors[3], 85, 100) - 10), space = COLORSPACE_HSV) + . += filling + +/obj/item/reagent_containers/food/snacks/frozen/icecream/icecreamcone + name = "ice cream cone" + desc = "Delicious ice cream." + icon_state = "icecream_cone" + volume = 50 + bitesize = 3 + list_reagents = list("nutriment" = 3, "sugar" = 7, "ice" = 2) + +/obj/item/reagent_containers/food/snacks/frozen/icecream/wafflecone + name = "ice cream in a waffle cone" + desc = "Delicious ice cream." + icon_state = "icecream_cone_waffle" + volume = 50 + bitesize = 3 + list_reagents = list("nutriment" = 3, "sugar" = 7, "ice" = 2) + +/obj/item/reagent_containers/food/snacks/frozen/icecream/icecreamcup + name = "chocolate ice cream cone" + desc = "Delicious ice cream." + icon_state = "icecream_cone_chocolate" + volume = 50 + bitesize = 3 + list_reagents = list("nutriment" = 5, "chocolate" = 8, "ice" = 2) + +/obj/item/reagent_containers/food/snacks/wafflecone + name = "waffle cone" + desc = "Delicious waffle cone, but no ice cream." + icon = 'icons/obj/food/frozen_treats.dmi' + icon_state = "icecream_cone_waffle" + list_reagents = list("nutriment" = 5) + tastes = list("cream" = 2, "waffle" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/icecreamsandwich + name = "icecream sandwich" + desc = "Portable ice cream in its own packaging." + icon_state = "icecreamsandwich" + list_reagents = list("nutriment" = 2, "ice" = 2) + tastes = list("ice cream" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/berryicecreamsandwich + name = "strawberry icecream sandwich" + desc = "Portable ice cream in its own packaging." + icon_state = "strawberryicecreamsandwich" + list_reagents = list("nutriment" = 2, "ice" = 2) + tastes = list("ice cream" = 1, "strawberry" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/sundae + name = "sundae" + desc = "A classic dessert." + icon_state = "sundae" + list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2) + tastes = list("ice cream" = 1, "banana" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/honkdae + name = "honkdae" + desc = "The clown's favorite dessert." + icon_state = "honkdae" + list_reagents = list("nutriment" = 6, "banana" = 10, "vitamin" = 4) + tastes = list("ice cream" = 1, "banana" = 1, "a bad joke" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/cornuto + name = "cornuto" + desc = "A neapolitan vanilla and chocolate ice cream cone. It menaces with a sprinkling of caramelized nuts." + icon_state = "cornuto" + list_reagents = list("nutriment" = 6, "hot_coco" = 4, "cream" = 2, "vanilla" = 4, "sugar" = 2) + tastes = list("chopped hazelnuts" = 3, "waffle" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/peanutbuttermochi + name = "peanut butter ice cream mochi" + desc = "A classic dessert at the Arabia Street Night Market in Prospect, peanut butter ice cream mochi is made with a peanut-butter flavoured ice cream as the main filling, and coated in crushed peanuts in the Taiwanese tradition." + icon_state = "pb_ice_cream_mochi" + list_reagents = list("nutriment" = 4, "sugar" = 6, "peanutbutter" = 4, "milk" = 2) + tastes = list("peanut butter" = 1, "mochi" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/spacefreezy + name = "spacefreezy" + desc = "The best ice cream in space." + icon_state = "spacefreezy" + list_reagents = list("nutriment" = 8, "vitamin" = 5, "bluecherryjelly" = 5) + tastes = list("blue cherries" = 2, "ice cream" = 2) + +/////////////////// +// Snow Cones // +////////////////// + +/obj/item/reagent_containers/food/snacks/frozen/snowcone + name = "flavorless snowcone" + desc = "It's just shaved ice. Still fun to chew on." + icon_state = "flavorless_sc" + trash = /obj/item/reagent_containers/food/drinks/sillycup + list_reagents = list("water" = 10, "ice" = 5) + tastes = list("cold water" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/apple + name = "apple snowcone" + desc = "Apple syrup drizzled over a snowball in a paper cup." + icon_state = "amber_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "applejuice" = 5) + tastes = list("ice" = 1, "water" = 1, "apples" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/berry + name = "berry snowcone" + desc = "Berry syrup drizzled over a snowball in a paper cup." + icon_state = "berry_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "berryjuice" = 5) + tastes = list("ice" = 1, "water" = 1, "berries" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/bluecherry + name = "bluecherry snowcone" + desc = "Bluecherry syrup drizzled over a snowball in a paper cup, how rare!" + icon_state = "blue_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "bluecherryjelly" = 5) + tastes = list("ice" = 1, "water" = 1, "bluecherries" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/cherry + name = "cherry snowcone" + desc = "Cherry syrup drizzled over a snowball in a paper cup." + icon_state = "red_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "cherryjelly" = 5) + tastes = list("ice" = 1, "water" = 1, "cherries" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/fruitsalad + name = "fruit salad snowcone" + desc = "A delightful mix of citrus syrups drizzled over a snowball in a paper cup." + icon_state = "fruitsalad_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "limejuice" = 5, "lemonjuice" = 5, "orangejuice" = 5) + tastes = list("ice" = 1, "water" = 1, "oranges" = 5, "lemons" = 5, "limes" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/grape + name = "grape snowcone" + desc = "Grape syrup drizzled over a snowball in a paper cup." + icon_state = "grape_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "grapejuice" = 5) + tastes = list("ice" = 1, "water" = 1, "grapes" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/honey + name = "honey snowcone" + desc = "Honey drizzled over a snowball in a paper cup." + icon_state = "amber_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "honey" = 5) + tastes = list("ice" = 1, "water" = 1, "honey" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/lemon + name = "lemon snowcone" + desc = "Lemon syrup drizzled over a snowball in a paper cup." + icon_state = "lemon_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "lemonjuice" = 5) + tastes = list("ice" = 1, "water" = 1, "lemons" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/lime + name = "lime snowcone" + desc = "Lime syrup drizzled over a snowball in a paper cup." + icon_state = "lime_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "limejuice" = 5) + tastes = list("ice" = 1, "water" = 1, "limes" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/mime + name = "mime snowcone" + desc = "..." + icon_state = "mime_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "nothing" = 5) + tastes = list("ice" = 1, "water" = 1, "silence" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/orange + name = "orange snowcone" + desc = "Orange syrup drizzled over a snowball in a paper cup." + icon_state = "orange_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "orangejuice" = 5) + tastes = list("ice" = 1, "water" = 1, "oranges" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/pineapple + name = "pineapple snowcone" + desc = "Pineapple syrup drizzled over a snowball in a paper cup." + icon_state = "pineapple_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "pineapplejuice" = 5) + tastes = list("ice" = 1, "water" = 1, "pineapple" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/rainbow + name = "rainbow snowcone" + desc = "A very colorful snowball in a paper cup." + icon_state = "rainbow_sc" + list_reagents = list("water" = 10, "ice" = 5, "colorful_reagent" = 5) + tastes = list("ice" = 1, "water" = 1, "rainbows" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/cola + name = "space cola snowcone" + desc = "Space Cola drizzled over a snowball in a paper cup." + icon_state = "soda_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "cola" = 5) + tastes = list("ice" = 1, "water" = 1, "soda" = 5) + +/obj/item/reagent_containers/food/snacks/frozen/snowcone/spacemountain + name = "space mountain wind snowcone" + desc = "Space Mountain Wind drizzled over a snowball in a paper cup." + icon_state = "mountainwind_sc" + list_reagents = list("water" = 10, "ice" = 5, "nutriment" = 1, "spacemountainwind" = 5) + tastes = list("ice" = 1, "water" = 1, "mountain wind" = 5) + +/////////////////// +// Popsicles // +///////////////// + +/obj/item/reagent_containers/food/snacks/frozen/popsicle + name = "jumbo icecream" + desc = "A luxurious ice cream covered in rich chocolate. It seems smaller than you remember it being." + icon_state = "jumbo" + trash = /obj/item/trash/popsicle_stick + list_reagents = list("nutriment" = 4, "sugar" = 4, "chocolate" = 3) + tastes = list("ice cream" = 1, "chocolate" = 1, "vanilla" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/popsicle/bananatop + name = "banana topsicle" + desc = "A frozen treat made from tofu and banana juice blended smooth, then frozen. Popular in rural Japan in the summer." + icon_state = "topsicle_banana" + list_reagents = list("vitamin" = 4, "sugar" = 6, "banana" = 4) + tastes = list("bananas" = 1, "tofu" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/popsicle/berrytop + name = "berry topsicle" + desc = "A frozen treat made from tofu and berry juice blended smooth, then frozen. Supposedly a favourite of bears, but that makes no sense..." + icon_state = "topsicle_berry" + list_reagents = list("vitamin" = 4, "sugar" = 6, "berryjuice" = 4) + tastes = list("berries" = 1, "tofu" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/popsicle/pineappletop + name = "pineapple topsicle" + desc = "A frozen treat made from tofu and pineapple juice blended smooth, then frozen. As seen on TV." + icon_state = "topsicle_pineapple" + list_reagents = list("vitamin" = 4, "sugar" = 6, "pineapplejuice" = 4) + tastes = list("pineapples" = 1, "tofu" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/popsicle/licoricecream + name = "licorice creamsicle" + desc = "A salty licorice ice cream. A salty frozen treat." + icon_state = "licorice_creamsicle" + list_reagents = list("nutriment" = 4, "cream" = 2, "vanilla" = 1, "sugar" = 4, "salt" = 1) + tastes = list("salty licorice" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/popsicle/orangecream + name = "orange creamsicle" + desc = "A classic orange creamsicle. A sunny frozen treat." + icon_state = "creamsicle_o" + list_reagents = list("orangejuice" = 4, "cream" = 2, "vanilla" = 2, "sugar" = 4) + tastes = list("ice cream" = 1, "oranges" = 1, "vanilla" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/popsicle/berrycream + name = "berry creamsicle" + desc = "A vibrant berry creamsicle. A berry good frozen treat." + icon_state = "creamsicle_m" + list_reagents = list("berryjuice" = 4, "cream" = 2, "vanilla" = 2, "sugar" = 4) + tastes = list("ice cream" = 1, "berries" = 1, "vanilla" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/popsicle/frozenpineapple + name = "frozen pineapple pop" + desc = "Few cultures love pineapple as much as the Martians, and this dessert proves that- frozen pineapple, on a stick, with just a little dunk of dark chocolate." + icon_state = "pineapple_pop" + list_reagents = list("pineapplejuice" = 4, "sugar" = 4, "nutriment" = 2, "vitamin" = 2) + tastes = list("cold pineapple" = 1, "chocolate" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/popsicle/sea_salt + name = "sea salt ice-cream bar" + desc = "This sky-blue ice-cream bar is flavoured with only the finest imported sea salt. Salty... no, sweet!" + icon_state = "sea_salt_pop" + list_reagents = list("salt" = 1, "nutriment" = 2, "cream" = 2, "vanilla" = 2, "sugar"= 4,) + tastes = list("salt" = 1, "sweet" = 1) + +/obj/item/reagent_containers/food/snacks/frozen/popsicle/ant + name = "ant popsicle" + desc = "A colony of ants suspended in hardened sugar. Those things are dead, right?" + icon_state = "ant_pop" + trash = /obj/item/stack/rods + list_reagents = list("nutriment" = 1, "vitamin" = 1, "sugar" = 5, "ants" = 3,) + tastes = list("candy" = 1, "ants" = 2) diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index d66fcbac0f23..f28d4f13e509 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -40,7 +40,7 @@ to_chat(user, "You add [I] to [src]") updateUsrDialog() return - if(istype(I, /obj/item/reagent_containers/food/snacks/icecream)) + if(istype(I, /obj/item/reagent_containers/food/snacks/frozen/icecream)) if(!I.reagents.has_reagent("sprinkles")) if(I.reagents.total_volume > 29) I.reagents.remove_any(1) @@ -147,7 +147,7 @@ else if(href_list["createchoco"]) var/name = generate_name(reagents.get_master_reagent_name()) name += " Chocolate Cone" - var/obj/item/reagent_containers/food/snacks/icecream/icecreamcup/C = new(loc) + var/obj/item/reagent_containers/food/snacks/frozen/icecream/icecreamcup/C = new(loc) C.name = "[name]" C.pixel_x = rand(-8, 8) C.pixel_y = -16 @@ -159,7 +159,7 @@ else if(href_list["createcone"]) var/name = generate_name(reagents.get_master_reagent_name()) name += " Cone" - var/obj/item/reagent_containers/food/snacks/icecream/icecreamcone/C = new(loc) + var/obj/item/reagent_containers/food/snacks/frozen/icecream/icecreamcone/C = new(loc) C.name = "[name]" C.pixel_x = rand(-8, 8) C.pixel_y = -16 @@ -171,7 +171,7 @@ else if(href_list["createwaffle"]) var/name = generate_name(reagents.get_master_reagent_name()) name += " Waffle Cone" - var/obj/item/reagent_containers/food/snacks/icecream/wafflecone/C = new(loc) + var/obj/item/reagent_containers/food/snacks/frozen/icecream/wafflecone/C = new(loc) C.name = "[name]" C.pixel_x = rand(-8, 8) C.pixel_y = -16 diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index f268d02f21ee..6c6224bf572b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -119,6 +119,10 @@ input = /obj/item/reagent_containers/food/snacks/grown/carrot output = /obj/item/reagent_containers/food/snacks/grown/carrot/wedges +/datum/food_processor_process/towercap + input = /obj/item/grown/log + output = /obj/item/popsicle_stick + ///////////////////////// ///END OBJECT RECIPIES/// ///////////////////////// diff --git a/code/modules/food_and_drinks/recipes/recipes_candy.dm b/code/modules/food_and_drinks/recipes/recipes_candy.dm index 0c6f3c67007e..2339acd3ffaa 100644 --- a/code/modules/food_and_drinks/recipes/recipes_candy.dm +++ b/code/modules/food_and_drinks/recipes/recipes_candy.dm @@ -83,6 +83,10 @@ being_cooked.reagents.del_reagent("egg") return being_cooked +/datum/recipe/candy/wafflecone + reagents = list("milk" = 1, "sugar" = 1) + result = /obj/item/reagent_containers/food/snacks/wafflecone + // *********************************************************** // Base Candy Recipes (unflavored / plain) // *********************************************************** diff --git a/code/modules/food_and_drinks/recipes/recipes_microwave.dm b/code/modules/food_and_drinks/recipes/recipes_microwave.dm index 48ff01389ba5..112dcc6ca87a 100644 --- a/code/modules/food_and_drinks/recipes/recipes_microwave.dm +++ b/code/modules/food_and_drinks/recipes/recipes_microwave.dm @@ -1045,9 +1045,246 @@ /datum/recipe/microwave/icecreamsandwich reagents = list("ice" = 5, "cream" = 5) items = list( - /obj/item/reagent_containers/food/snacks/icecream, + /obj/item/reagent_containers/food/snacks/frozen/icecream, ) - result = /obj/item/reagent_containers/food/snacks/icecreamsandwich + result = /obj/item/reagent_containers/food/snacks/frozen/icecreamsandwich + +/datum/recipe/microwave/berryicecreamsandwich + reagents = list("ice" = 5, "cream" = 5) + items = list( + /obj/item/reagent_containers/food/snacks/grown/cherries, + /obj/item/reagent_containers/food/snacks/grown/cherries, + /obj/item/reagent_containers/food/snacks/wafflecone + ) + result = /obj/item/reagent_containers/food/snacks/frozen/berryicecreamsandwich + +/datum/recipe/microwave/sundae + reagents = list("cream" = 5) + items = list( + /obj/item/reagent_containers/food/snacks/wafflecone, + /obj/item/reagent_containers/food/snacks/grown/cherries, + /obj/item/reagent_containers/food/snacks/grown/banana + ) + result = /obj/item/reagent_containers/food/snacks/frozen/sundae + +/datum/recipe/microwave/bananatopsicle + reagents = list("sugar" = 5, "banana" = 5) + items = list( + /obj/item/popsicle_stick, + /obj/item/reagent_containers/food/snacks/tofu + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle/bananatop + +/datum/recipe/microwave/berrytopsicle + reagents = list("sugar" = 5, "berryjuice" = 5) + items = list( + /obj/item/popsicle_stick, + /obj/item/reagent_containers/food/snacks/tofu + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle/berrytop + +/datum/recipe/microwave/pineappletopsicle + reagents = list("sugar" = 5, "pineapplejuice" = 5) + items = list( + /obj/item/popsicle_stick, + /obj/item/reagent_containers/food/snacks/tofu + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle/pineappletop + +/datum/recipe/microwave/licoricecreamsicle + reagents = list("sugar" = 2, "blumpkinjuice" = 4, "ice" = 2, "vanilla" = 2, "cream" = 2) + items = list( + /obj/item/popsicle_stick + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle/licoricecream + +/datum/recipe/microwave/orangecreamsicle + reagents = list("sugar" = 2, "orangejuice" = 4, "ice" = 2, "vanilla" = 2, "cream" = 2) + items = list( + /obj/item/popsicle_stick + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle/orangecream + +/datum/recipe/microwave/berrycreamsicle + reagents = list("sugar" = 2, "berryjuice" = 4, "ice" = 2, "vanilla" = 2, "cream" = 2) + items = list( + /obj/item/popsicle_stick + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle/berrycream + +/datum/recipe/microwave/frozenpineapplepop + items = list( + /obj/item/popsicle_stick, + /obj/item/reagent_containers/food/snacks/pineappleslice, + /obj/item/reagent_containers/food/snacks/chocolatebar + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle/frozenpineapple + +/datum/recipe/microwave/jumboicecream + reagents = list("sugar" = 2, "ice" = 2, "vanilla" = 3, "cream" = 2) + items = list( + /obj/item/popsicle_stick, + /obj/item/reagent_containers/food/snacks/chocolatebar + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle + +/datum/recipe/microwave/seasalticecream + reagents = list("sugar" = 5, "sodiumchloride" = 3, "cream" = 5) + items = list( + /obj/item/popsicle_stick + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle/sea_salt + +/datum/recipe/microwave/cornuto + reagents = list("ice" = 2, "sugar" = 4, "cream" = 4) + items = list( + /obj/item/reagent_containers/food/snacks/sliceable/flatdough, + /obj/item/reagent_containers/food/snacks/chocolatebar + ) + result = /obj/item/reagent_containers/food/snacks/frozen/cornuto + +/datum/recipe/microwave/honkdae + reagents = list("cream" = 5, "ice" = 5) + items = list( + /obj/item/reagent_containers/food/snacks/wafflecone, + /obj/item/reagent_containers/food/snacks/grown/cherries, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/clothing/mask/gas/clown_hat + ) + result = /obj/item/reagent_containers/food/snacks/frozen/honkdae + +/datum/recipe/microwave/peanutbuttermochi + reagents = list("cream" = 5, "rice" = 5, "sugar" = 5, "peanutbutter" = 2) + items = list( + /obj/item/reagent_containers/food/snacks/wafflecone + ) + result = /obj/item/reagent_containers/food/snacks/frozen/peanutbuttermochi + +/datum/recipe/microwave/spacefreezy + reagents = list("bluecherryjelly" = 5,"spacemountainwind" = 15) + items = list( + /obj/item/reagent_containers/food/snacks/frozen/icecream + ) + result = /obj/item/reagent_containers/food/snacks/frozen/spacefreezy + +/datum/recipe/microwave/snowcone/apple + reagents = list("ice" = 15, "applejuice" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/apple + +/datum/recipe/microwave/snowcone/berry + reagents = list("ice" = 15, "berryjuice" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/berry + +/datum/recipe/microwave/snowcone/bluecherry + reagents = list("ice" = 15, "bluecherryjelly" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/bluecherry +/datum/recipe/microwave/snowcone/cherry + reagents = list("ice" = 15, "cherryjelly" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/cherry + +/datum/recipe/microwave/snowcone/flavorless + reagents = list("ice" = 15) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone + +/datum/recipe/microwave/snowcone/fruitsalad + reagents = list("ice" = 15, "orangejuice" = 5, "limejuice" = 5, "lemonjuice" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/fruitsalad + +/datum/recipe/microwave/snowcone/grape + reagents = list("ice" = 15, "grapejuice" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/grape + +/datum/recipe/microwave/snowcone/honey + reagents = list("ice" = 15, "honey" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/honey + +/datum/recipe/microwave/snowcone/lemon + reagents = list("ice" = 15, "lemonjuice" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/lemon + +/datum/recipe/microwave/snowcone/lime + reagents = list("ice" = 15, "limejuice" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/lime + +/datum/recipe/microwave/snowcone/mime + reagents = list("ice" = 15, "nothing" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/mime + +/datum/recipe/microwave/snowcone/orange + reagents = list("ice" = 15, "orangejuice" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/orange + +/datum/recipe/microwave/snowcone/pineapple + reagents = list("ice" = 15, "pineapplejuice" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/pineapple + +/datum/recipe/microwave/snowcone/rainbow + reagents = list("ice" = 15, "colorful_reagent" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/rainbow + +/datum/recipe/microwave/snowcone/cola + reagents = list("ice" = 15, "cola" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/cola + +/datum/recipe/microwave/snowcone/spacemountainwind + reagents = list("ice" = 15, "spacemountainwind" = 5) + items = list( + /obj/item/reagent_containers/food/drinks/sillycup + ) + result = /obj/item/reagent_containers/food/snacks/frozen/snowcone/spacemountain + +/datum/recipe/microwave/antpopsicle + reagents = list("sugar" = 5, "water" = 5, "ants" = 10) + items = list( + /obj/item/popsicle_stick + ) + result = /obj/item/reagent_containers/food/snacks/frozen/popsicle/ant /datum/recipe/microwave/notasandwich items = list( diff --git a/code/modules/food_and_drinks/recipes/recipes_oven.dm b/code/modules/food_and_drinks/recipes/recipes_oven.dm index a95a6071b225..a06b87d8883c 100644 --- a/code/modules/food_and_drinks/recipes/recipes_oven.dm +++ b/code/modules/food_and_drinks/recipes/recipes_oven.dm @@ -109,6 +109,22 @@ ) result = /obj/item/reagent_containers/food/snacks/sliceable/plaincake +/datum/recipe/oven/clowncake + reagents = list("milk" = 5, "sugar" = 15) + items = list( + /obj/item/reagent_containers/food/snacks/dough, + /obj/item/reagent_containers/food/snacks/dough, + /obj/item/reagent_containers/food/snacks/dough, + /obj/item/reagent_containers/food/snacks/frozen/sundae, + /obj/item/reagent_containers/food/snacks/frozen/sundae, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/banana, + /obj/item/reagent_containers/food/snacks/grown/banana + ) + result = /obj/item/reagent_containers/food/snacks/sliceable/clowncake + /datum/recipe/oven/meatpie items = list( /obj/item/reagent_containers/food/snacks/sliceable/flatdough, diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index b6a3a29835ec..9a64098491b4 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -174,7 +174,7 @@ players += player //players -= usr - var/mob/living/M = input("Who do you wish to deal a card to?") as null|anything in players + var/mob/living/M = tgui_input_list(usr, "Who do you wish to deal a card to?", "Deal Card", players) if(!usr || !src || !M) return deal_at(usr, M, 1) @@ -195,7 +195,7 @@ var/dcard = input("How many card(s) do you wish to deal? You may deal up to [maxcards] cards.") as num if(dcard > maxcards) return - var/mob/living/M = input("Who do you wish to deal [dcard] card(s)?") as null|anything in players + var/mob/living/M = tgui_input_list(usr, "Who do you wish to deal [dcard] card(s)?", "Deal Card", players) if(!usr || !src || !M || !Adjacent(usr)) return @@ -424,7 +424,7 @@ for(var/datum/playingcard/P in cards) pickablecards[P.name] = P if(!pickedcard) - pickedcard = input("Which card do you want to remove from the hand?") as null|anything in pickablecards + pickedcard = tgui_input_list(usr, "Which card do you want to remove from the hand?", "Remove Card", pickablecards) if(!pickedcard) return @@ -461,7 +461,7 @@ var/list/to_discard = list() for(var/datum/playingcard/P in cards) to_discard[P.name] = P - var/discarding = input("Which card do you wish to put down?") as null|anything in to_discard + var/discarding = tgui_input_list(usr, "Which card do you wish to put down?", "Discard", to_discard) if(!discarding) continue diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index f1f91d5a8e67..57a5eb504ed5 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -222,7 +222,7 @@ if(bees) visible_message("[user] disturbs the bees!") else - var/option = input(user, "What Action do you wish to perform?", "Apiary") as null|anything in list("Remove a Honey Frame","Remove the Queen Bee") + var/option = tgui_input_list(user, "What Action do you wish to perform?", "Apiary", list("Remove a Honey Frame", "Remove the Queen Bee")) if(!Adjacent(user) || !option) return switch(option) diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index eeaf68253ef7..67b3df02b901 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -26,6 +26,10 @@ distill_reagent = "bananahonk" tastes = list("banana" = 1) +/obj/item/reagent_containers/food/snacks/grown/banana/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CAN_POINT_WITH, ROUNDSTART_TRAIT) + /obj/item/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user) user.visible_message("[user] is aiming [src] at [user.p_themselves()]! It looks like [user.p_theyre()] trying to commit suicide.") playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1) diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 9303991005a4..43525465b328 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -137,7 +137,7 @@ to_chat(user, "You add a rod to [src].") var/image/U = image(icon='icons/obj/hydroponics/equipment.dmi',icon_state="bonfire_rod",pixel_y=16) underlays += U - if(is_hot(W)) + if(W.get_heat()) lighter = user.ckey user.create_log(MISC_LOG, "lit a bonfire", src) StartBurning() diff --git a/code/modules/input/keybindings_procs.dm b/code/modules/input/keybindings_procs.dm index 1d231127996e..8ae07693672c 100644 --- a/code/modules/input/keybindings_procs.dm +++ b/code/modules/input/keybindings_procs.dm @@ -12,5 +12,11 @@ movement_kb_dirs[key] = KBM.move_dir else active_keybindings[key] += list(KB) + if(!mob) // Clients can join before world/new is setup, so we gotta mob check em + return active_keybindings + for(var/datum/action/action as anything in mob.actions) + if(action.button?.linked_keybind?.binded_to) + var/datum/keybinding/mob/trigger_action_button/linked_bind = action.button.linked_keybind + active_keybindings[linked_bind.binded_to] += list(linked_bind) return active_keybindings diff --git a/code/modules/library/book.dm b/code/modules/library/book.dm index 09dbb7de3323..5a1e9de918ac 100644 --- a/code/modules/library/book.dm +++ b/code/modules/library/book.dm @@ -210,7 +210,7 @@ if(protected) //we don't want people touching "special" books, especially ones that use iframes to_chat(user, "These pages don't seem to take the ink well. Looks like you can't modify it.") return - var/choice = input(user, "What would you like to edit?") as null|anything in list("Title", "Edit Current Page", "Author", "Summary", "Add Page", "Remove Page") + var/choice = tgui_input_list(user, "What would you like to edit?", "Book Edit", list("Title", "Edit Current Page", "Author", "Summary", "Add Page", "Remove Page")) switch(choice) if("Title") var/newtitle = reject_bad_text(stripped_input(user, "Write a new title:")) diff --git a/code/modules/library/library_equipment.dm b/code/modules/library/library_equipment.dm index b2ff2ce8493e..42a13d63fde1 100644 --- a/code/modules/library/library_equipment.dm +++ b/code/modules/library/library_equipment.dm @@ -56,7 +56,7 @@ if(!length(contents)) return - var/obj/item/book/choice = input(user, "Which book would you like to remove from [src]?") as null|anything in contents + var/obj/item/book/choice = tgui_input_list(user, "Which book would you like to remove from [src]?", "Bookcase", contents) if(!choice) return if(user.incapacitated() || !Adjacent(user)) diff --git a/code/modules/mapping/base_map_datum.dm b/code/modules/mapping/base_map_datum.dm index 8b04d0ac1561..0fff760c7c05 100644 --- a/code/modules/mapping/base_map_datum.dm +++ b/code/modules/mapping/base_map_datum.dm @@ -16,3 +16,5 @@ var/webmap_url /// Is this map voteable? var/voteable = TRUE + /// Minimum amount of players required for this map to be eligible in random map picks. + var/min_players_random = 0 diff --git a/code/modules/mapping/cerestation.dm b/code/modules/mapping/cerestation.dm index 333378626b2e..684fa449547e 100644 --- a/code/modules/mapping/cerestation.dm +++ b/code/modules/mapping/cerestation.dm @@ -3,3 +3,4 @@ technical_name = "CereStation" map_path = "_maps/map_files/cerestation/cerestation.dmm" webmap_url = "https://affectedarc07.github.io/SS13WebMap/Paradise/CereStation/" + min_players_random = 60 diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index fb2902e1ba99..5851382e0b12 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -115,6 +115,7 @@ log_world("[src] at [AREACOORD(src)] tried to bolt [airlock] but it's already locked!") else airlock.locked = TRUE + airlock.update_icon() /obj/effect/mapping_helpers/airlock/unres name = "airlock unresctricted side helper" diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm index bf2709de325f..b9c3b8e5acd8 100644 --- a/code/modules/mining/equipment/marker_beacons.dm +++ b/code/modules/mining/equipment/marker_beacons.dm @@ -61,7 +61,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list( /obj/item/stack/marker_beacon/AltClick(mob/living/user) if(!istype(user) || ui_status(user, GLOB.physical_state) != STATUS_INTERACTIVE) return - var/input_color = input(user, "Choose a color.", "Beacon Color") as null|anything in GLOB.marker_beacon_colors + var/input_color = tgui_input_list(user, "Choose a color.", "Beacon Color", GLOB.marker_beacon_colors) if(!istype(user) || ui_status(user, GLOB.physical_state) != STATUS_INTERACTIVE) return if(input_color) @@ -137,7 +137,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list( ..() if(!istype(user) || ui_status(user, GLOB.physical_state) != STATUS_INTERACTIVE) return - var/input_color = input(user, "Choose a color.", "Beacon Color") as null|anything in GLOB.marker_beacon_colors + var/input_color = tgui_input_list(user, "Choose a color.", "Beacon Color", GLOB.marker_beacon_colors) if(!istype(user) || ui_status(user, GLOB.physical_state) != STATUS_INTERACTIVE) return if(input_color) diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/fulton.dm index d4eee00156de..50b383571ce4 100644 --- a/code/modules/mining/fulton.dm +++ b/code/modules/mining/fulton.dm @@ -31,7 +31,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons) else var/A - A = input("Select a beacon to connect to", "Balloon Extraction Pack", A) as null|anything in possible_beacons + A = tgui_input_list(user, "Select a beacon to connect to", "Balloon Extraction Pack", possible_beacons) if(!A) return diff --git a/code/modules/mining/lavaland/loot/bubblegum_loot.dm b/code/modules/mining/lavaland/loot/bubblegum_loot.dm index 5ce83a191e53..6bd2a3e7ac03 100644 --- a/code/modules/mining/lavaland/loot/bubblegum_loot.dm +++ b/code/modules/mining/lavaland/loot/bubblegum_loot.dm @@ -109,7 +109,7 @@ return used = TRUE - var/choice = input(user,"Who do you want dead?","Choose Your Victim") as null|anything in GLOB.player_list + var/choice = tgui_input_list(user, "Who do you want dead?", "Choose Your Victim", GLOB.player_list) if(!choice) used = FALSE diff --git a/code/modules/mining/lavaland/loot/tendril_loot.dm b/code/modules/mining/lavaland/loot/tendril_loot.dm index 677194ab60f6..f86ae0347843 100644 --- a/code/modules/mining/lavaland/loot/tendril_loot.dm +++ b/code/modules/mining/lavaland/loot/tendril_loot.dm @@ -390,6 +390,7 @@ desc = "A dread talisman that can render you completely invulnerable." icon = 'icons/obj/lavaland/artefacts.dmi' icon_state = "talisman" + w_class = WEIGHT_CLASS_SMALL resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF actions_types = list(/datum/action/item_action/immortality) var/cooldown = 0 diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 0616f5e8d72f..8e03c2e1e749 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -242,7 +242,7 @@ /obj/machinery/mineral/equipment_vendor/proc/redeem_voucher(obj/item/mining_voucher/voucher, mob/redeemer) var/items = list("Survival Capsule and Explorer's Webbing", "Resonator Kit", "Minebot Kit", "Extraction and Rescue Kit", "Crusher Kit", "Plasma Cutter", "Jaunter Kit", "Mining Conscription Kit") - var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in items + var/selection = tgui_input_list(redeemer, "Pick your equipment", "Mining Voucher Redemption", items) if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer) return diff --git a/code/modules/mob/dead/observer/observer_base.dm b/code/modules/mob/dead/observer/observer_base.dm index 91200ba4e13c..e0970661ce3a 100644 --- a/code/modules/mob/dead/observer/observer_base.dm +++ b/code/modules/mob/dead/observer/observer_base.dm @@ -401,7 +401,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!QDELETED(mind.current)) // Could change while they're choosing mind.current.remove_status_effect(STATUS_EFFECT_REVIVABLE) SEND_SIGNAL(mind.current, COMSIG_LIVING_SET_DNR) - /mob/dead/observer/proc/dead_tele() set category = "Ghost" @@ -438,7 +437,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp names[name] = ruin_landmark - var/ruinname = input("Select ruin", "Jump to Ruin") as null|anything in names + var/ruinname = tgui_input_list(usr, "Select ruin", "Jump to Ruin", names) var/obj/effect/landmark/ruin/landmark = names[ruinname] diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index 4eee0af4a04c..dfa2ca1b2144 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -608,23 +608,31 @@ log_say(log_message, speaker) speaker.create_log(SAY_LOG, log_message) - var/message_start = "[name], [speaker.name]" - var/message_body = "[speaker.say_quote(message)],\"[message]\"
" + var/list/message_start = list("[name], [speaker.name]") //Strings as lists lets you add blocks of text much easier + var/list/message_body = list("[speaker.say_quote(message)],\"[message]\"
") for(var/mob/M in GLOB.dead_mob_list) if(!isnewplayer(M) && !isbrain(M)) - var/message_start_dead = "[name], [speaker.name] ([ghost_follow_link(speaker, ghost=M)])" - M.show_message("[message_start_dead] [message_body]", 2) + var/list/message_start_dead = list("[name], [speaker.name] ([ghost_follow_link(speaker, ghost=M)])") + var/list/dead_message = message_start_dead + message_body + M.show_message(dead_message.Join(" "), 2) for(var/mob/living/S in GLOB.alive_mob_list) - if(drone_only && !isdrone(S)) + if(!S.binarycheck()) continue - else if(isAI(S)) - message_start = "[name], [speaker.name]" - else if(!S.binarycheck()) + else if(drone_only && !isdrone(S)) continue - - S.show_message("[message_start] [message_body]", 2) + else if(isAI(S)) + message_start = list("[name], [speaker.name]") + else if(isrobot(S)) + var/mob/living/silicon/robot/borg = S + if(borg.connected_ai?.name == speaker.name) + var/list/big_font_prefix = list("") + var/list/big_font_suffix = list("") + message_start = big_font_prefix + message_start + message_body = message_body + big_font_suffix + var/list/final_message = message_start + message_body + S.show_message(final_message.Join(" "), 2) var/list/listening = hearers(1, src) listening -= src diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm similarity index 99% rename from code/modules/mob/living/carbon/brain/MMI.dm rename to code/modules/mob/living/brain/MMI.dm index 815821757ad6..9ed5f563c1e0 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -11,7 +11,7 @@ var/alien = 0 var/syndiemmi = FALSE //Whether or not this is a Syndicate MMI var/mmi_item_name = "Man-Machine Interface" //Used to name the item when installing a brain - var/mob/living/carbon/brain/brainmob = null//The current occupant. + var/mob/living/brain/brainmob = null//The current occupant. var/obj/item/organ/internal/brain/held_brain = null // This is so MMI's aren't brainscrubber 9000's var/mob/living/silicon/robot/robot = null//Appears unused. var/obj/mecha/mecha = null//This does not appear to be used outside of reference in mecha.dm. diff --git a/code/modules/mob/living/carbon/brain/MMI_radio.dm b/code/modules/mob/living/brain/MMI_radio.dm similarity index 100% rename from code/modules/mob/living/carbon/brain/MMI_radio.dm rename to code/modules/mob/living/brain/MMI_radio.dm diff --git a/code/modules/mob/living/carbon/brain/brain_death.dm b/code/modules/mob/living/brain/brain_death.dm similarity index 91% rename from code/modules/mob/living/carbon/brain/brain_death.dm rename to code/modules/mob/living/brain/brain_death.dm index 7aec0a713ee6..846425134c42 100644 --- a/code/modules/mob/living/carbon/brain/brain_death.dm +++ b/code/modules/mob/living/brain/brain_death.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/brain/death(gibbed) +/mob/living/brain/death(gibbed) // Only execute the below if we successfully died . = ..() if(!.) @@ -8,7 +8,7 @@ visible_message("[src]'s MMI flatlines!", "You hear something flatline.") mmi.icon_state = mmi.dead_icon -/mob/living/carbon/brain/gib() +/mob/living/brain/gib() // can we muster a parent call here? if(!death(TRUE) && stat != DEAD) return FALSE diff --git a/code/modules/mob/living/carbon/brain/brain_emote.dm b/code/modules/mob/living/brain/brain_emote.dm similarity index 67% rename from code/modules/mob/living/carbon/brain/brain_emote.dm rename to code/modules/mob/living/brain/brain_emote.dm index b9f1d720e0c9..13fcf0c4104e 100644 --- a/code/modules/mob/living/carbon/brain/brain_emote.dm +++ b/code/modules/mob/living/brain/brain_emote.dm @@ -1,13 +1,13 @@ /** * Emotes usable by brains, but only while they're in MMIs. */ -/datum/emote/living/carbon/brain - mob_type_allowed_typecache = list(/mob/living/carbon/brain) +/datum/emote/living/brain + mob_type_allowed_typecache = list(/mob/living/brain) mob_type_blacklist_typecache = null /// The message that will be displayed to themselves, since brains can't really see their own emotes var/self_message -/datum/emote/living/carbon/brain/run_emote(mob/user, params, type_override, intentional) +/datum/emote/living/brain/run_emote(mob/user, params, type_override, intentional) . = ..() if(!.) return FALSE @@ -15,52 +15,52 @@ if(self_message) to_chat(user, self_message) -/datum/emote/living/carbon/brain/can_run_emote(mob/user, status_check, intentional) +/datum/emote/living/brain/can_run_emote(mob/user, status_check, intentional) . = ..() if(!.) return FALSE - var/mob/living/carbon/brain/B = user + var/mob/living/brain/B = user if(!(B.container && istype(B.container, /obj/item/mmi))) // No MMI, no emotes return FALSE // So, brains can't really see their own emotes so we'll probably just want to send an extra message -/datum/emote/living/carbon/brain/alarm +/datum/emote/living/brain/alarm key = "alarm" key_third_person = "alarms" message = "sounds an alarm." self_message = "You sound an alarm." -/datum/emote/living/carbon/brain/alert +/datum/emote/living/brain/alert key = "alert" key_third_person = "alerts" message = "lets out a distressed noise." self_message = "You let out a distressed noise." -/datum/emote/living/carbon/brain/notice +/datum/emote/living/brain/notice key = "notice" message = "plays a loud tone." self_message = "You play a loud tone." -/datum/emote/living/carbon/brain/flash +/datum/emote/living/brain/flash key = "flash" message = "starts flashing its lights quickly!" -/datum/emote/living/carbon/brain/whistle +/datum/emote/living/brain/whistle key = "whistle" key_third_person = "whistles" message = "whistles." self_message = "You whistle." -/datum/emote/living/carbon/brain/beep +/datum/emote/living/brain/beep key = "beep" key_third_person = "beeps" message = "beeps." self_message = "You beep." -/datum/emote/living/carbon/brain/boop +/datum/emote/living/brain/boop key = "boop" key_third_person = "boops" message = "boops." diff --git a/code/modules/mob/living/brain/brain_life.dm b/code/modules/mob/living/brain/brain_life.dm new file mode 100644 index 000000000000..456e025f9d14 --- /dev/null +++ b/code/modules/mob/living/brain/brain_life.dm @@ -0,0 +1,5 @@ +/mob/living/brain/Life() + . = ..() + if(.) + if(!container && (world.time - timeofhostdeath) > GLOB.configuration.general.revival_brain_life) + death() diff --git a/code/modules/mob/living/brain/brain_login.dm b/code/modules/mob/living/brain/brain_login.dm new file mode 100644 index 000000000000..fc4c40c93ff7 --- /dev/null +++ b/code/modules/mob/living/brain/brain_login.dm @@ -0,0 +1,3 @@ +/mob/living/brain/Login() + ..() + SetSleeping(0) diff --git a/code/modules/mob/living/carbon/brain/brain_say.dm b/code/modules/mob/living/brain/brain_say.dm similarity index 84% rename from code/modules/mob/living/carbon/brain/brain_say.dm rename to code/modules/mob/living/brain/brain_say.dm index 40535dde96b7..d287a7360080 100644 --- a/code/modules/mob/living/carbon/brain/brain_say.dm +++ b/code/modules/mob/living/brain/brain_say.dm @@ -1,5 +1,5 @@ //TODO: Convert this over for languages. -/mob/living/carbon/brain/say(message, datum/language/speaking = null) +/mob/living/brain/say(message, datum/language/speaking = null) if(stat == DEAD) return ..() if(!can_speak(warning = TRUE)) @@ -13,13 +13,13 @@ ..(message) -/mob/living/carbon/brain/whisper(message as text) +/mob/living/brain/whisper(message as text) if(!can_speak(warning = TRUE)) return ..() -/mob/living/carbon/brain/can_speak(warning = FALSE) +/mob/living/brain/can_speak(warning = FALSE) . = ..() if(!istype(container, /obj/item/mmi)) @@ -31,7 +31,7 @@ to_chat(usr, "You cannot speak, as your internal speaker is turned off.") . = FALSE -/mob/living/carbon/brain/handle_message_mode(message_mode, list/message_pieces, verb, used_radios) +/mob/living/brain/handle_message_mode(message_mode, list/message_pieces, verb, used_radios) switch(message_mode) if("headset") var/radio_worked = 0 // If any of the radios our brainmob could use functioned, this is set true so that we don't use any others diff --git a/code/modules/mob/living/carbon/brain/brain_update_status.dm b/code/modules/mob/living/brain/brain_update_status.dm similarity index 89% rename from code/modules/mob/living/carbon/brain/brain_update_status.dm rename to code/modules/mob/living/brain/brain_update_status.dm index ec4edb77fc7b..269380e39529 100644 --- a/code/modules/mob/living/carbon/brain/brain_update_status.dm +++ b/code/modules/mob/living/brain/brain_update_status.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/brain/update_stat(reason = "none given") +/mob/living/brain/update_stat(reason = "none given") if(status_flags & GODMODE) return // if(health <= min_health) diff --git a/code/modules/mob/living/carbon/brain/carbon_brain.dm b/code/modules/mob/living/brain/living_brain.dm similarity index 75% rename from code/modules/mob/living/carbon/brain/carbon_brain.dm rename to code/modules/mob/living/brain/living_brain.dm index f216b88239eb..323309f0b372 100644 --- a/code/modules/mob/living/carbon/brain/carbon_brain.dm +++ b/code/modules/mob/living/brain/living_brain.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/brain +/mob/living/brain var/obj/item/container = null var/timeofhostdeath = 0 var/emp_damage = 0//Handles a type of MMI damage @@ -6,18 +6,18 @@ icon = 'icons/obj/surgery.dmi' icon_state = "brain1" -/mob/living/carbon/brain/New() +/mob/living/brain/New() ..() add_language("Galactic Common") -/mob/living/carbon/brain/Destroy() +/mob/living/brain/Destroy() if(key) //If there is a mob connected to this thing. Have to check key twice to avoid false death reporting. if(stat!=DEAD) //If not dead. death(1) //Brains can die again. AND THEY SHOULD AHA HA HA HA HA HA ghostize() //Ghostize checks for key so nothing else is necessary. return ..() -/mob/living/carbon/brain/say_understands(other)//Goddamn is this hackish, but this say code is so odd +/mob/living/brain/say_understands(other)//Goddamn is this hackish, but this say code is so odd if(isAI(other)) if(!(container && istype(container, /obj/item/mmi))) return 0 @@ -44,16 +44,16 @@ return 1 return ..() -/mob/living/carbon/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up. +/mob/living/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up. return -/mob/living/carbon/brain/blob_act(obj/structure/blob/B) +/mob/living/brain/blob_act(obj/structure/blob/B) return -/mob/living/carbon/brain/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE) +/mob/living/brain/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE) return FALSE -/mob/living/carbon/brain/on_forcemove(atom/newloc) +/mob/living/brain/on_forcemove(atom/newloc) if(container) container.forceMove(newloc) else //something went very wrong. @@ -65,10 +65,10 @@ This will return true if the brain has a container that leaves it less helpless I'm using this for Stat to give it a more nifty interface to work with */ -/mob/living/carbon/brain/proc/has_synthetic_assistance() +/mob/living/brain/proc/has_synthetic_assistance() return (container && istype(container, /obj/item/mmi)) || in_contents_of(/obj/mecha) -/mob/living/carbon/brain/proc/get_race() +/mob/living/brain/proc/get_race() if(container) var/obj/item/mmi/M = container if(istype(M) && M.held_brain) @@ -79,7 +79,7 @@ I'm using this for Stat to give it a more nifty interface to work with var/obj/item/organ/internal/brain/B = loc return B.dna.species.name -/mob/living/carbon/brain/Stat() +/mob/living/brain/Stat() ..() if(has_synthetic_assistance() && statpanel("Status")) show_stat_emergency_shuttle_eta() @@ -88,13 +88,13 @@ I'm using this for Stat to give it a more nifty interface to work with stat("Exosuit Charge:", "[istype(M.cell) ? "[M.cell.charge] / [M.cell.maxcharge]" : "No cell detected"]") stat("Exosuit Integrity", "[!M.obj_integrity ? "0" : "[(M.obj_integrity / M.max_integrity) * 100]"]%") -/mob/living/carbon/brain/can_safely_leave_loc() +/mob/living/brain/can_safely_leave_loc() return 0 //You're not supposed to be ethereal jaunting, brains -/mob/living/carbon/brain/can_hear() +/mob/living/brain/can_hear() . = TRUE -/mob/living/carbon/brain/update_runechat_msg_location() +/mob/living/brain/update_runechat_msg_location() if(ismecha(loc)) runechat_msg_location = loc.UID() else if(container) diff --git a/code/modules/mob/living/carbon/brain/robotic_brain.dm b/code/modules/mob/living/brain/robotic_brain.dm similarity index 93% rename from code/modules/mob/living/carbon/brain/robotic_brain.dm rename to code/modules/mob/living/brain/robotic_brain.dm index c4fb75669173..507af8e32417 100644 --- a/code/modules/mob/living/carbon/brain/robotic_brain.dm +++ b/code/modules/mob/living/brain/robotic_brain.dm @@ -11,7 +11,7 @@ var/searching = FALSE var/askDelay = 10 * 60 * 1 - //var/mob/living/carbon/brain/brainmob = null + //var/mob/living/brain/brainmob = null var/list/ghost_volunteers[0] req_access = list(ACCESS_ROBOTICS) mecha = null//This does not appear to be used outside of reference in mecha.dm. @@ -72,18 +72,6 @@ return TRUE return FALSE -/obj/item/mmi/robotic_brain/proc/question(client/C) - spawn(0) - if(!C) - return - var/response = alert(C, "Someone is requesting a personality for a [src]. Would you like to play as one?", "[src] request", "Yes", "No", "Never for this round") - if(!C || brainmob.key || !searching) - return //handle logouts that happen whilst the alert is waiting for a response, and responses issued after a brain has been located. - if(response == "Yes") - transfer_personality(C.mob) - else if(response == "Never for this round") - C.prefs.be_special -= ROLE_POSIBRAIN - // This should not ever happen, but let's be safe /obj/item/mmi/robotic_brain/dropbrain(turf/dropspot) CRASH("[src] at [loc] attempted to drop brain without a contained brain.") diff --git a/code/modules/mob/living/carbon/alien/alien_base.dm b/code/modules/mob/living/carbon/alien/alien_base.dm index d6556bf1b9b2..5ff5e60a581f 100644 --- a/code/modules/mob/living/carbon/alien/alien_base.dm +++ b/code/modules/mob/living/carbon/alien/alien_base.dm @@ -290,3 +290,22 @@ and carry the owner just to make sure*/ /mob/living/carbon/alien/on_lying_down(new_lying_angle) . = ..() ADD_TRAIT(src, TRAIT_IMMOBILIZED, LYING_DOWN_TRAIT) //Xenos can't crawl + +/mob/living/carbon/alien/consume_patch_or_pill(obj/item/reagent_containers/medicine, mob/user) + var/apply_method = "swallow" + var/how_many_reagents = medicine.reagents.total_volume + var/reagent_application = REAGENT_INGEST + if(ispatch(medicine)) + apply_method = "apply" + how_many_reagents = clamp(medicine.reagents.total_volume, 0.1, 2) + reagent_application = REAGENT_TOUCH + + visible_message("[user] attempts to force [src] to [apply_method] [medicine].") + if(!do_after(user, 5 SECONDS, TRUE, src)) // You try feeding a xenomorph a pill + return + + visible_message("[user] forces [src] to [apply_method] [medicine].") + var/fraction = min(1 / medicine.reagents.total_volume, 1) + medicine.reagents.reaction(src, reagent_application, fraction) + medicine.reagents.trans_to(src, how_many_reagents) + return TRUE diff --git a/code/modules/mob/living/carbon/alien/alien_life.dm b/code/modules/mob/living/carbon/alien/alien_life.dm index 4c25a4eadc80..4c13daa7af00 100644 --- a/code/modules/mob/living/carbon/alien/alien_life.dm +++ b/code/modules/mob/living/carbon/alien/alien_life.dm @@ -26,9 +26,6 @@ breath.toxins -= toxins_used breath.oxygen += toxins_used - //BREATH TEMPERATURE - handle_breath_temperature(breath) - /mob/living/carbon/alien/handle_status_effects() ..() //natural reduction of movement delay due to stun. diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_emote.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_emote.dm index 86182cae1e21..7e458de03620 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_emote.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_emote.dm @@ -9,7 +9,7 @@ key_third_person = "roars" message = "roars!" message_param = "roars at %t!" - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH sound = "sound/voice/hiss5.ogg" volume = 80 @@ -18,7 +18,7 @@ key_third_person = "hisses" message = "hisses!" message_param = "hisses at %t!" - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH sound = "sound/voice/hiss1.ogg" volume = 30 @@ -28,5 +28,5 @@ message = "gnarls and shows its teeth." message_param = "gnarls and flashes its teeth at %t." sound = "sound/voice/hiss4.ogg" - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH volume = 30 diff --git a/code/modules/mob/living/carbon/brain/brain_life.dm b/code/modules/mob/living/carbon/brain/brain_life.dm deleted file mode 100644 index 271524ad61d1..000000000000 --- a/code/modules/mob/living/carbon/brain/brain_life.dm +++ /dev/null @@ -1,20 +0,0 @@ -/mob/living/carbon/brain/proc/handle_temperature_damage(body_part, exposed_temperature, exposed_intensity) - if(status_flags & GODMODE) - return - - if(exposed_temperature > bodytemperature) - var/discomfort = min( abs(exposed_temperature - bodytemperature)*(exposed_intensity)/2000000, 1.0) - adjustFireLoss(20.0*discomfort) - - else - var/discomfort = min( abs(exposed_temperature - bodytemperature)*(exposed_intensity)/2000000, 1.0) - adjustFireLoss(5.0*discomfort) - -/mob/living/carbon/brain/Life() - . = ..() - if(.) - if(!container && (world.time - timeofhostdeath) > GLOB.configuration.general.revival_brain_life) - death() - -/mob/living/carbon/brain/breathe() - return diff --git a/code/modules/mob/living/carbon/brain/brain_login.dm b/code/modules/mob/living/carbon/brain/brain_login.dm deleted file mode 100644 index 3e5f0e48365a..000000000000 --- a/code/modules/mob/living/carbon/brain/brain_login.dm +++ /dev/null @@ -1,3 +0,0 @@ -/mob/living/carbon/brain/Login() - ..() - SetSleeping(0) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 1f4afda83b90..3e7b91df663b 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -617,9 +617,9 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven var/damage = 10 + 1.5 * speed // speed while thrower is standing still is 2, while walking with an aggressive grab is 2.4, highest speed is 14 - hit_atom.hit_by_thrown_carbon(src, throwingdatum, damage, FALSE, FALSE) + hit_atom.hit_by_thrown_mob(src, throwingdatum, damage, FALSE, FALSE) -/mob/living/carbon/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) +/mob/living/carbon/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) for(var/obj/item/dualsaber/D in contents) if(HAS_TRAIT(D, TRAIT_WIELDED) && D.force) visible_message("[src] impales [C] with [D], before dropping them on the ground!") @@ -893,6 +893,10 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven buckled.user_unbuckle_mob(src, src) return + if(has_status_effect(STATUS_EFFECT_UNBUCKLE)) + to_chat(src, "You are already trying to unbuckle!") + return + apply_status_effect(STATUS_EFFECT_UNBUCKLE) var/time = I.breakouttime visible_message("[src] attempts to unbuckle [p_themselves()]!", "You attempt to unbuckle yourself... (This will take around [time / 10] seconds and you need to stay still.)") @@ -904,6 +908,8 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven return buckled.user_unbuckle_mob(src, src) + remove_status_effect(STATUS_EFFECT_UNBUCKLE) + /mob/living/carbon/proc/buckle_check() if(!buckled) // No longer buckled return TRUE @@ -947,15 +953,20 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven var/time = I.resist_time if(I.resist_time == 0)//if it's 0, you can't get out of it to_chat(src, "[I] is too well made, you'll need hands for this one!") - else - visible_message("[src] gnaws on [I], trying to remove it!") - to_chat(src, "You attempt to remove [I]... (This will take around [time/10] seconds and you need to stand still.)") - if(do_after(src, time, FALSE, src, extra_checks = list(CALLBACK(src, PROC_REF(muzzle_check))))) - visible_message("[src] removes [I]!") - to_chat(src, "You get rid of [I]!") - if(I.security_lock) - I.do_break() - unEquip(I) + return + if(has_status_effect(STATUS_EFFECT_REMOVE_MUZZLE)) + to_chat(src, "You are already trying to remove [I]!") + return + apply_status_effect(STATUS_EFFECT_REMOVE_MUZZLE) + visible_message("[src] gnaws on [I], trying to remove it!") + to_chat(src, "You attempt to remove [I]... (This will take around [time/10] seconds and you need to stand still.)") + if(do_after(src, time, FALSE, src, extra_checks = list(CALLBACK(src, PROC_REF(muzzle_check))))) + visible_message("[src] removes [I]!") + to_chat(src, "You get rid of [I]!") + if(I.security_lock) + I.do_break() + unEquip(I) + remove_status_effect(STATUS_EFFECT_REMOVE_MUZZLE) /mob/living/carbon/proc/cuff_resist(obj/item/I, breakouttime = 600, cuff_break = 0) @@ -963,9 +974,14 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven var/displaytime = breakouttime / 10 if(!cuff_break) + if(has_status_effect(STATUS_EFFECT_REMOVE_CUFFS)) + to_chat(src, "You are already trying to remove [I].") + return + apply_status_effect(STATUS_EFFECT_REMOVE_CUFFS) visible_message("[src] attempts to remove [I]!") to_chat(src, "You attempt to remove [I]... (This will take around [displaytime] seconds and you need to stand still.)") if(do_after(src, breakouttime, 0, target = src)) + remove_status_effect(STATUS_EFFECT_REMOVE_CUFFS) if(I.loc != src || buckled) return if(istype(I, /obj/item/restraints/handcuffs/twimsts)) @@ -1001,13 +1017,19 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven I.dropped(src) return else + remove_status_effect(STATUS_EFFECT_REMOVE_CUFFS) to_chat(src, "You fail to remove [I]!") else breakouttime = 50 + if(has_status_effect(STATUS_EFFECT_BREAK_CUFFS)) + to_chat(src, "You are already trying to break [I].") + return + apply_status_effect(STATUS_EFFECT_BREAK_CUFFS) visible_message("[src] is trying to break [I]!") to_chat(src, "You attempt to break [I]... (This will take around 5 seconds and you need to stand still.)") if(do_after(src, breakouttime, 0, target = src)) + remove_status_effect(STATUS_EFFECT_BREAK_CUFFS) if(!I.loc || buckled) return visible_message("[src] manages to break [I]!") @@ -1025,6 +1047,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven return return 1 else + remove_status_effect(STATUS_EFFECT_BREAK_CUFFS) to_chat(src, "You fail to break [I]!") //called when we get cuffed/uncuffed @@ -1221,11 +1244,10 @@ so that different stomachs can handle things in different ways VB*/ if(to_eat.reagents.total_volume) taste(to_eat.reagents) var/fraction = min(this_bite / to_eat.reagents.total_volume, 1) - if(fraction) - to_eat.reagents.reaction(src, REAGENT_INGEST, fraction) - to_eat.reagents.trans_to(src, this_bite) + to_eat.reagents.reaction(src, REAGENT_INGEST, fraction) + to_eat.reagents.trans_to(src, this_bite) -/mob/living/carbon/proc/consume_patch_or_pill(obj/item/reagent_containers/medicine, user) // medicine = patch or pill +/mob/living/carbon/proc/consume_patch_or_pill(obj/item/reagent_containers/medicine, mob/user) // medicine = patch or pill // The reason why this is bundled up is to avoid 2 procs that will be practically identical if(!medicine.reagents.total_volume) return TRUE // Doesn't have reagents, would be fine to use up @@ -1238,13 +1260,13 @@ so that different stomachs can handle things in different ways VB*/ var/reagent_application = REAGENT_INGEST var/requires_mouth = TRUE var/instant = FALSE - var/efficiency = 1 + var/how_many_reagents = medicine.reagents.total_volume if(ispatch(medicine)) apply_method = "apply" reagent_application = REAGENT_TOUCH requires_mouth = FALSE - efficiency = 0.5 // Patches aren't that good at transporting reagents into the bloodstream + how_many_reagents = clamp(medicine.reagents.total_volume, 0.1, 2) // Patches aren't that good at transporting reagents into the bloodstream var/obj/item/reagent_containers/patch/patch = medicine if(patch.instant_application) instant = TRUE @@ -1263,7 +1285,7 @@ so that different stomachs can handle things in different ways VB*/ var/fraction = min(1 / medicine.reagents.total_volume, 1) medicine.reagents.reaction(src, reagent_application, fraction) - medicine.reagents.trans_to(src, medicine.reagents.total_volume * efficiency) + medicine.reagents.trans_to(src, how_many_reagents) return TRUE /mob/living/carbon/get_access() diff --git a/code/modules/mob/living/carbon/carbon_emote.dm b/code/modules/mob/living/carbon/carbon_emote.dm index 3fcba428c13d..64fb51f2abb2 100644 --- a/code/modules/mob/living/carbon/carbon_emote.dm +++ b/code/modules/mob/living/carbon/carbon_emote.dm @@ -1,6 +1,5 @@ /datum/emote/living/carbon mob_type_allowed_typecache = list(/mob/living/carbon) - mob_type_blacklist_typecache = list(/mob/living/carbon/brain) /datum/emote/living/carbon/blink key = "blink" @@ -30,7 +29,7 @@ key_third_person = "coughs" message = "coughs!" message_mime = "appears to cough!" - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH vary = TRUE age_based = TRUE volume = 120 diff --git a/code/modules/mob/living/carbon/carbon_life.dm b/code/modules/mob/living/carbon/carbon_life.dm index 176ac3043106..0a59c7b113b9 100644 --- a/code/modules/mob/living/carbon/carbon_life.dm +++ b/code/modules/mob/living/carbon/carbon_life.dm @@ -100,7 +100,7 @@ if(ishuman(src) && !internal && environment.temperature < 273 && environment.return_pressure() > 20) //foggy breath :^) new /obj/effect/frosty_breath(loc, src) -//Third link in a breath chain, calls handle_breath_temperature() +//Third and last link in a breath chain /mob/living/carbon/proc/check_breath(datum/gas_mixture/breath) if(status_flags & GODMODE) return FALSE @@ -181,15 +181,8 @@ if(prob(20)) emote(pick("giggle","laugh")) - //BREATH TEMPERATURE - handle_breath_temperature(breath) - return TRUE -//Fourth and final link in a breath chain -/mob/living/carbon/proc/handle_breath_temperature(datum/gas_mixture/breath) - return - /mob/living/carbon/proc/get_breath_from_internal(volume_needed) if(internal) if(internal.loc != src) diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index af45e81a29f9..12c3d77b9c77 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -119,13 +119,13 @@ msg += "[name]" // Show what you are - msg += examine_what_am_i() + msg += examine_what_am_i(skipgloves, skipsuitstorage, skipjumpsuit, skipshoes, skipmask, skipears, skipeyes, skipface) msg += "\n" // All the things wielded/worn that can be reasonably described with a common template: var/list/message_parts = examine_visible_clothing(skipgloves, skipsuitstorage, skipjumpsuit, skipshoes, skipmask, skipears, skipeyes, skipface) - var/list/abstract_items = list() + var/list/grab_items = list() for(var/parts in message_parts) var/action = parts[1] @@ -137,6 +137,8 @@ accessories = parts[5] if(item) + if(istype(item, /obj/item/grab)) + grab_items |= item if(item.flags & ABSTRACT) abstract_items |= item else @@ -181,6 +183,15 @@ continue msg += "[text]\n" + for(var/obj/item/grab/grab in grab_items) + switch(grab.state) + if(GRAB_AGGRESSIVE) + msg += "[p_they(TRUE)] [p_are()] holding [grab.affecting]'s hands!\n" + if(GRAB_NECK) + msg += "[p_they(TRUE)] [p_are()] holding [grab.affecting]'s neck!\n" + if(GRAB_KILL) + msg += "[p_they(TRUE)] [p_are()] strangling [grab.affecting]!\n" + //Jitters switch(AmountJitter()) if(600 SECONDS to INFINITY) diff --git a/code/modules/mob/living/carbon/human/body_accessories.dm b/code/modules/mob/living/carbon/human/body_accessories.dm index b2cbd07943f7..fbbfdba9a7cf 100644 --- a/code/modules/mob/living/carbon/human/body_accessories.dm +++ b/code/modules/mob/living/carbon/human/body_accessories.dm @@ -1,6 +1,6 @@ GLOBAL_LIST_INIT(body_accessory_by_name, list("None" = null)) -GLOBAL_LIST_INIT(body_accessory_by_species, list()) +GLOBAL_LIST_EMPTY(body_accessory_by_species) /proc/initialize_body_accessory_by_species() for(var/B in GLOB.body_accessory_by_name) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 30cd59debc07..705ae6ee6560 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -759,11 +759,11 @@ emp_act return for(var/obj/O in list(head, wear_suit, back, l_hand, r_hand)) - O.water_act(src, volume, temperature, source, method) + O.water_act(volume, temperature, source, method) if((head?.flags & THICKMATERIAL) && (wear_suit?.flags & THICKMATERIAL)) // fully pierce proof clothing is also water proof! return for(var/obj/O in list(w_uniform, shoes, belt, gloves, glasses, l_ear, r_ear, wear_id, wear_pda, r_store, l_store, s_store)) - O.water_act(src, volume, temperature, source, method) + O.water_act(volume, temperature, source, method) diff --git a/code/modules/mob/living/carbon/human/human_emote.dm b/code/modules/mob/living/carbon/human/human_emote.dm index 69a3bd4f15a4..39712e24151b 100644 --- a/code/modules/mob/living/carbon/human/human_emote.dm +++ b/code/modules/mob/living/carbon/human/human_emote.dm @@ -44,7 +44,7 @@ message = "claps." message_mime = "claps silently." message_param = "claps at %t." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE vary = TRUE /datum/emote/living/carbon/human/clap/run_emote(mob/user, params, type_override, intentional) @@ -79,7 +79,7 @@ key = "crack" key_third_person = "cracks" message = "cracks their knuckles." - emote_type = EMOTE_AUDIBLE | EMOTE_SOUND + emote_type = EMOTE_AUDIBLE // knuckles.ogg by CGEffex. Shortened and cut. // https://freesound.org/people/CGEffex/sounds/93981/ sound = "sound/effects/mob_effects/knuckles.ogg" @@ -116,7 +116,7 @@ message = "facepalms." hands_use_check = TRUE sound = 'sound/weapons/slap.ogg' - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE volume = 50 /datum/emote/living/carbon/human/palm @@ -161,7 +161,7 @@ message_mime = "acts out a scream!" message_postfix = "at %t!" muzzled_noises = list("very loud") - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH only_forced_audio = FALSE vary = TRUE age_based = TRUE @@ -195,7 +195,7 @@ key_third_person = "gasps" message = "gasps!" message_mime = "appears to be gasping!" - emote_type = EMOTE_SOUND // Don't make this one a mouth emote since we don't want it to be caught by nobreath + emote_type = EMOTE_AUDIBLE // Don't make this one a mouth emote since we don't want it to be caught by nobreath age_based = TRUE unintentional_stat_allowed = UNCONSCIOUS volume = 100 @@ -333,7 +333,7 @@ key_third_person = "sneezes" message = "sneezes." muzzled_noises = list("strange", "sharp") - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH volume = 70 /datum/emote/living/carbon/human/sneeze/get_sound(mob/user) @@ -407,7 +407,7 @@ message = "snaps their fingers." message_param = "snaps their fingers at %t." sound = "sound/effects/fingersnap.ogg" - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE /datum/emote/living/carbon/human/snap/run_emote(mob/user, params, type_override, intentional) @@ -589,7 +589,7 @@ key_third_person = "quills" message = "rustles their quills." message_param = "rustles their quills at %t." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE age_based = TRUE // Credit to sound-ideas (freesfx.co.uk) for the sound. sound = "sound/effects/voxrustle.ogg" @@ -600,7 +600,7 @@ key_third_person = "warbles" message = "warbles." message_param = "warbles at %t." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE age_based = TRUE // Copyright CC BY 3.0 alienistcog (freesound.org) for the sound. sound = "sound/effects/warble.ogg" @@ -612,7 +612,7 @@ message = "clacks their mandibles." message_param = "clacks their mandibles at %t." species_type_whitelist_typecache = list(/datum/species/kidan) - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE audio_cooldown = 3 SECONDS age_based = TRUE // Credit to DrMinky (freesound.org) for the sound. @@ -634,7 +634,7 @@ /datum/emote/living/carbon/human/drask_talk species_type_whitelist_typecache = list(/datum/species/drask) - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE age_based = TRUE sound = "sound/voice/drasktalk.ogg" @@ -662,7 +662,7 @@ message = "hisses." message_param = "hisses at %t." species_type_whitelist_typecache = list(/datum/species/unathi) - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH age_based = TRUE // Credit to Jamius (freesound.org) for the sound. sound = "sound/effects/unathihiss.ogg" @@ -673,7 +673,7 @@ key_third_person = "creaks" message = "creaks." message_param = "creaks at %t." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE age_based = TRUE species_type_whitelist_typecache = list(/datum/species/diona) sound = "sound/voice/dionatalk1.ogg" @@ -699,7 +699,7 @@ key_third_person = "squishes" message = "squishes." message_param = "squishes at %t." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE age_based = TRUE // Credit to DrMinky (freesound.org) for the sound. sound = "sound/effects/slime_squish.ogg" @@ -709,7 +709,7 @@ key_third_person = "bubbles" message = "bubbles." message_param = "bubbles at %t." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE age_based = TRUE // Sound is CC-4.0 by Audiolarx // Effect is cut out of original clip @@ -722,7 +722,7 @@ message = "makes a popping sound." message_param = "makes a popping sound at %t." message_mime = "makes a silent pop." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE age_based = TRUE // CC0 // https://freesound.org/people/greenvwbeetle/sounds/244653/ @@ -736,7 +736,7 @@ message_mime = "acts out a howl." message_param = "howls at %t." species_type_whitelist_typecache = list(/datum/species/vulpkanin) - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH age_based = TRUE sound = "sound/goonstation/voice/howl.ogg" muzzled_noises = list("very loud") @@ -753,7 +753,7 @@ sound = "growls" // what the fuck why is this just top level volume = 80 muzzled_noises = list("annoyed") - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH /datum/emote/living/carbon/human/hiss/tajaran message_mime = "hisses silently." diff --git a/code/modules/mob/living/carbon/human/human_inventory.dm b/code/modules/mob/living/carbon/human/human_inventory.dm index 8e482ef37df9..d8bda565092f 100644 --- a/code/modules/mob/living/carbon/human/human_inventory.dm +++ b/code/modules/mob/living/carbon/human/human_inventory.dm @@ -168,9 +168,6 @@ update_inv_l_hand() update_action_buttons_icon() - - - //This is an UNSAFE proc. Use mob_can_equip() before calling this one! Or rather use equip_to_slot_if_possible() or advanced_equip_to_slot_if_possible() // Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it /mob/living/carbon/human/equip_to_slot(obj/item/I, slot, initial = FALSE) diff --git a/code/modules/mob/living/carbon/human/human_mob.dm b/code/modules/mob/living/carbon/human/human_mob.dm index 645fffbefcb4..d5ba70c8bda6 100644 --- a/code/modules/mob/living/carbon/human/human_mob.dm +++ b/code/modules/mob/living/carbon/human/human_mob.dm @@ -302,127 +302,131 @@ var/list/obscured = check_obscured_slots() var/dat = {" - - + + "} - dat += "" - dat += "" + dat += "" var/obj/item/organ/internal/headpocket/C = get_int_organ(/obj/item/organ/internal/headpocket) if(C) if(SLOT_HUD_WEAR_MASK in obscured) - dat += "" + dat += "" else if(C.held_item) - dat += "" + dat += "" else - dat += "" + dat += "" if(SLOT_HUD_WEAR_MASK in obscured) - dat += "" + dat += "" else - dat += "" if(!issmall(src)) if(SLOT_HUD_GLASSES in obscured) - dat += "" + dat += "" else - dat += "" + dat += "" if(SLOT_HUD_LEFT_EAR in obscured) - dat += "" + dat += "" else - dat += "" + dat += "" if(SLOT_HUD_RIGHT_EAR in obscured) - dat += "" + dat += "" else - dat += "" + dat += "" dat += "" - dat += "" + dat += "" if(wear_suit) - dat += "" else - dat += "" + dat += "" if(SLOT_HUD_SHOES in obscured) - dat += "" + dat += "" else - dat += "" + dat += "" if(SLOT_HUD_GLOVES in obscured) - dat += "" + dat += "" else - dat += "" + dat += "" + + if(SLOT_HUD_BELT in obscured) + dat += "" + else + dat += "" if(SLOT_HUD_JUMPSUIT in obscured) - dat += "" + dat += "" else - dat += "" + dat += "" if((w_uniform == null && !(dna && dna.species.nojumpsuit)) || (SLOT_HUD_JUMPSUIT in obscured)) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" + dat += "" + dat += "" + dat += "" + dat += "" else - dat += "" // Pockets - dat += "" - dat += "" - dat += "" + dat += "" + dat += "" + dat += "" if(istype(w_uniform, /obj/item/clothing/under)) var/obj/item/clothing/under/U = w_uniform - dat += "" + dat += "" if(U.accessories.len) - dat += "" + dat += "" if(handcuffed) - dat += "" + dat += "" if(legcuffed) dat += "" dat += {"
Left Hand:[(l_hand && !(l_hand.flags&ABSTRACT)) ? html_encode(l_hand) : "Empty"]
Right Hand:[(r_hand && !(r_hand.flags&ABSTRACT)) ? html_encode(r_hand) : "Empty"]
Left Hand:[(l_hand && !(l_hand.flags&ABSTRACT)) ? html_encode(l_hand) : "Empty"]
Right Hand:[(r_hand && !(r_hand.flags&ABSTRACT)) ? html_encode(r_hand) : "Empty"]
 
Back:[(back && !(back.flags&ABSTRACT)) ? html_encode(back) : "Empty"]" + dat += "
Back:[(back && !(back.flags&ABSTRACT)) ? html_encode(back) : "Empty"]" if(has_breathable_mask && istype(back, /obj/item/tank)) - dat += " [internal ? "Disable Internals" : "Set Internals"]" + dat += " [internal ? "Disable Internals" : "Set Internals"]" dat += "
 
Head:[(head && !(head.flags&ABSTRACT)) ? html_encode(head) : "Empty"]
Head:[(head && !(head.flags&ABSTRACT)) ? html_encode(head) : "Empty"]
 ↳Headpocket:Obscured
 ↳Headpocket:Obscured
 ↳Headpocket:Dislodge Items
 ↳Headpocket:Dislodge Items
 ↳Headpocket:Empty
 ↳Headpocket:Empty
Mask:Obscured
Mask:Obscured
Mask:[(wear_mask && !(wear_mask.flags&ABSTRACT)) ? html_encode(wear_mask) : "Empty"]" + dat += "
Mask:[(wear_mask && !(wear_mask.flags&ABSTRACT)) ? html_encode(wear_mask) : "Empty"]" if(istype(wear_mask, /obj/item/clothing/mask/muzzle)) var/obj/item/clothing/mask/muzzle/M = wear_mask if(M.security_lock) - dat += " [M.locked ? "Disable Lock" : "Set Lock"]" + dat += " [M.locked ? "Disable Lock" : "Set Lock"]" dat += "
 
Eyes:Obscured
Eyes:Obscured
Eyes:[(glasses && !(glasses.flags&ABSTRACT)) ? html_encode(glasses) : "Empty"]
Eyes:[(glasses && !(glasses.flags&ABSTRACT)) ? html_encode(glasses) : "Empty"]
Left Ear:Obscured
Left Ear:Obscured
Left Ear:[(l_ear && !(l_ear.flags&ABSTRACT)) ? html_encode(l_ear) : "Empty"]
Left Ear:[(l_ear && !(l_ear.flags&ABSTRACT)) ? html_encode(l_ear) : "Empty"]
Right Ear:Obscured
Right Ear:Obscured
Right Ear:[(r_ear && !(r_ear.flags&ABSTRACT)) ? html_encode(r_ear) : "Empty"]
Right Ear:[(r_ear && !(r_ear.flags&ABSTRACT)) ? html_encode(r_ear) : "Empty"]
 
Exosuit:[(wear_suit && !(wear_suit.flags&ABSTRACT)) ? html_encode(wear_suit) : "Empty"]
Exosuit:[(wear_suit && !(wear_suit.flags&ABSTRACT)) ? html_encode(wear_suit) : "Empty"]
 ↳Suit Storage:[(s_store && !(s_store.flags&ABSTRACT)) ? html_encode(s_store) : "Empty"]" + dat += "
 ↳Suit Storage:[(s_store && !(s_store.flags&ABSTRACT)) ? html_encode(s_store) : "Empty"]" if(has_breathable_mask && istype(s_store, /obj/item/tank)) - dat += " [internal ? "Disable Internals" : "Set Internals"]" + dat += " [internal ? "Disable Internals" : "Set Internals"]" dat += "
 ↳Suit Storage:
 ↳Suit Storage:
Shoes:Obscured
Shoes:Obscured
Shoes:[(shoes && !(shoes.flags&ABSTRACT)) ? html_encode(shoes) : "Empty"]
Shoes:[(shoes && !(shoes.flags&ABSTRACT)) ? html_encode(shoes) : "Empty"]
Gloves:Obscured
Gloves:Obscured
Gloves:[(gloves && !(gloves.flags&ABSTRACT)) ? html_encode(gloves) : "Empty"]
Gloves:[(gloves && !(gloves.flags&ABSTRACT)) ? html_encode(gloves) : "Empty"]
Belt:Obscured
Belt:[(belt && !(belt.flags&ABSTRACT)) ? html_encode(belt) : "Empty"]" + + if(has_breathable_mask && istype(belt, /obj/item/tank)) + dat += " [internal ? "Disable Internals" : "Set Internals"]" + dat += "
Uniform:Obscured
Uniform:Obscured
Uniform:[(w_uniform && !(w_uniform.flags&ABSTRACT)) ? html_encode(w_uniform) : "Empty"]
Uniform:[(w_uniform && !(w_uniform.flags&ABSTRACT)) ? html_encode(w_uniform) : "Empty"]
 ↳Pockets:
 ↳ID:
 ↳Belt:
 ↳Suit Sensors:
 ↳PDA:
 ↳Pockets:
 ↳ID:
 ↳Suit Sensors:
 ↳PDA:
 ↳Belt:[(belt && !(belt.flags&ABSTRACT)) ? html_encode(belt) : "Empty"]" - if(has_breathable_mask && istype(belt, /obj/item/tank)) - dat += " [internal ? "Disable Internals" : "Set Internals"]" - dat += "
 ↳Pockets:" + dat += "
 ↳Pockets:" if(l_store && internal && l_store == internal) dat += "[l_store]" else if(l_store && !(l_store.flags&ABSTRACT)) dat += "Left (Full)" else dat += "Left (Empty)" - dat += " " + dat += " " if(r_store && internal && r_store == internal) dat += "[r_store]" else if(r_store && !(r_store.flags&ABSTRACT)) dat += "Right (Full)" else dat += "Right (Empty)" - dat += "
 ↳ID:[(wear_id && !(wear_id.flags&ABSTRACT)) ? html_encode(wear_id) : "Empty"]
 ↳PDA:[(wear_pda && !(wear_pda.flags&ABSTRACT)) ? "Full" : "Empty"]
 ↳ID:[(wear_id && !(wear_id.flags&ABSTRACT)) ? html_encode(wear_id) : "Empty"]
 ↳PDA:[(wear_pda && !(wear_pda.flags&ABSTRACT)) ? "Full" : "Empty"]
 ↳Suit Sensors:[U.has_sensor >= 2 ? "--SENSORS LOCKED--" : "Set Sensors"]
 ↳Suit Sensors:[U.has_sensor >= 2 ? "--SENSORS LOCKED--" : "Set Sensors"]
 ↳Remove Accessory
 ↳Remove Accessory
Handcuffed: Remove
Handcuffed: Remove
Legcuffed: Remove
- Close + Close "} var/datum/browser/popup = new(user, "mob\ref[src]", "[src]", 440, 540) @@ -933,7 +937,7 @@ SEC_RECORD_STATUS_RELEASED, ) - var/new_status = input(user, "Set the new criminal status for [perpname].", "Security HUD", found_record.fields["criminal"]) as null|anything in possible_status + var/new_status = tgui_input_list(user, "Set the new criminal status for [perpname]", "Security HUD", possible_status) if(!new_status) return diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 74c15e48f1c1..dd035515c2e2 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -33,7 +33,7 @@ . = 1 /mob/living/carbon/human/mob_negates_gravity() - return shoes && shoes.negates_gravity() + return HAS_TRAIT(src, TRAIT_MAGPULSE) /mob/living/carbon/human/Move(NewLoc, direct) . = ..() diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index b4a36695805e..33f874ff10b7 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -401,6 +401,7 @@ // For special snowflake species effects // (Slime People changing color based on the reagents they consume) /datum/species/proc/handle_life(mob/living/carbon/human/H) + SHOULD_CALL_PARENT(TRUE) if(HAS_TRAIT(H, TRAIT_NOBREATH)) var/takes_crit_damage = (!HAS_TRAIT(H, TRAIT_NOCRITDAMAGE)) if((H.health <= HEALTH_THRESHOLD_CRIT) && takes_crit_damage) @@ -641,7 +642,7 @@ target.Stun(0.5 SECONDS) else var/obj/item/active_hand = target.get_active_hand() - if(target.IsSlowed() && active_hand && !IS_HORIZONTAL(user) && !HAS_TRAIT(active_hand, TRAIT_WIELDED)) + if(target.IsSlowed() && active_hand && !IS_HORIZONTAL(user) && !HAS_TRAIT(active_hand, TRAIT_WIELDED) && !istype(active_hand, /obj/item/grab)) target.drop_item() add_attack_logs(user, target, "Disarmed object out of hand", ATKLOG_ALL) else diff --git a/code/modules/mob/living/carbon/human/species/diona_species.dm b/code/modules/mob/living/carbon/human/species/diona_species.dm index ea7b968ad097..4381438edae0 100644 --- a/code/modules/mob/living/carbon/human/species/diona_species.dm +++ b/code/modules/mob/living/carbon/human/species/diona_species.dm @@ -12,13 +12,10 @@ heatmod = 3 var/pod = FALSE //did they come from a pod? If so, they're stronger than normal Diona. - blurb = "Commonly referred to (erroneously) as 'plant people', the Dionaea are a strange space-dwelling collective \ - species hailing from Epsilon Ursae Minoris. Each 'diona' is a cluster of numerous cat-sized organisms called nymphs; \ - there is no effective upper limit to the number that can fuse in gestalt, and reports exist of the Epsilon Ursae \ - Minoris primary being ringed with a cloud of singing space-station-sized entities.

The Dionaea coexist peacefully with \ - all known species, especially the Skrell. Their communal mind makes them slow to react, and they have difficulty understanding \ - even the simplest concepts of other minds. Their alien physiology allows them survive happily off a diet of nothing but light, \ - water and other radiation." + blurb = "The Diona are plant-like creatures made up of a gestalt of smaller Nymphs. \ + Dionae lack any form of centralized government or homeworld, with most avoiding the affairs of the wider galaxy, preferring instead to focus on the spread of their species.

\ + As a gestalt entity, each nymph possesses an individual personality, yet they communicate collectively. \ + Consequently, Diona often speak in a unique blend of first and third person, using 'We' and 'I' to reflect their unified yet multifaceted nature." species_traits = list(NO_HAIR) inherent_traits = list(TRAIT_NOGERMS, TRAIT_NODECAY) @@ -135,5 +132,7 @@ return TRUE /datum/species/diona/pod //Same name and everything; we want the same limitations on them; we just want their regeneration to kick in at all times and them to have special factions + name = "Diomorph" //Seperate name needed else can't select diona period + species_traits = list(NO_HAIR, NOT_SELECTABLE) pod = TRUE inherent_factions = list("plants", "vines") diff --git a/code/modules/mob/living/carbon/human/species/drask.dm b/code/modules/mob/living/carbon/human/species/drask.dm index 5a02dd6f2c81..a5586270a6ae 100644 --- a/code/modules/mob/living/carbon/human/species/drask.dm +++ b/code/modules/mob/living/carbon/human/species/drask.dm @@ -15,16 +15,13 @@ male_sneeze_sound = 'sound/voice/drasksneeze.ogg' female_sneeze_sound = 'sound/voice/drasksneeze.ogg' - burn_mod = 1.5 //exotic_blood = "cryoxadone" body_temperature = 273 - blurb = "Hailing from Hoorlm, planet outside what is usually considered a habitable \ - orbit, the Drask evolved to live in extreme cold. Their strange bodies seem \ - to operate better the colder their surroundings are, and can regenerate rapidly \ - when breathing supercooled gas.

On their homeworld, the Drask live long lives \ - in their labyrinthine settlements, carved out beneath Hoorlm's icy surface, where the air \ - is of breathable density." + blurb = "Drask are cold-bodied humanoids from the ice world of Hoorlm, contained within a black hole system. \ + Operating in enclaves run by elders, Drasks are biologically immortal and place great societal value in patience.

\ + Drask traditionally pay homage to their planet as their birth deity, with many modern Drask viewing space travel a patron saint. \ + Drasks wield little influence on the galaxy in a traditional sense and have slowly begun to become more prevalent outside their origin system thanks to alien contact." suicide_messages = list( "is self-warming with friction!", @@ -46,7 +43,7 @@ heat_level_1 = 310 //Default 370 - Higher is better heat_level_2 = 340 //Default 400 heat_level_3 = 400 //Default 460 - heatmod = 2 // 3 * more damage from body temp + heatmod = 3 // 3 * more damage from body temp flesh_color = "#a3d4eb" reagent_tag = PROCESS_ORG diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index 709012df947a..84a9006f9e06 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -268,6 +268,7 @@ //Regenerates because self-repairing super-advanced alien tech /datum/species/golem/alloy/handle_life(mob/living/carbon/human/H) + SHOULD_CALL_PARENT(FALSE) if(H.stat == DEAD) return H.adjustBruteLoss(-2) @@ -760,6 +761,6 @@ if(resistance_flags & ON_FIRE) return - if(is_hot(P)) + if(P.get_heat()) visible_message("[src] bursts into flames!") fire_act() diff --git a/code/modules/mob/living/carbon/human/species/grey.dm b/code/modules/mob/living/carbon/human/species/grey.dm index fc7afd064ce3..3f77302caf93 100644 --- a/code/modules/mob/living/carbon/human/species/grey.dm +++ b/code/modules/mob/living/carbon/human/species/grey.dm @@ -3,6 +3,12 @@ name_plural = "Greys" icobase = 'icons/mob/human_races/r_grey.dmi' language = "Psionic Communication" + + blurb = "The Grey, known for their psionic abilities and unique appearance, hail from beyond the Milky Way, with an undisclosed homeworld. \ + They rely heavily on cloning technology and are governed by a technocratic council of scientists.

\ + Focused on technological advancement and the study of the universe, the Grey lack religious or spiritual beliefs. \ + Their objective perspective and advanced knowledge often position them to focus on their own projects rather then the disputes of other species." + eyes = "grey_eyes_s" butt_sprite = "grey" diff --git a/code/modules/mob/living/carbon/human/species/human_species.dm b/code/modules/mob/living/carbon/human/species/human_species.dm index 4ba039c96cb6..9d19d16404f4 100644 --- a/code/modules/mob/living/carbon/human/species/human_species.dm +++ b/code/modules/mob/living/carbon/human/species/human_species.dm @@ -9,21 +9,25 @@ clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS bodyflags = HAS_ICON_SKIN_TONE | HAS_BODY_MARKINGS dietflags = DIET_OMNI - blurb = "Humanity originated in the Sol system, and over the last five centuries has spread \ - colonies across a wide swathe of space. They hold a wide range of forms and creeds.

\ - While the central Sol government maintains control of its far-flung people, powerful corporate \ - interests, rampant cyber and bio-augmentation and secretive factions make life on most human \ - worlds tumultous at best." + blurb = "Humanity, originating from the Sol system, has expanded over five centuries, branching out to forge a variety of governments and powerful corporations. \ + These range from the militaristic Trans Solar Federation, the Union of Soviet Socialist Planets, and megacorps like Nanotrasen.

\ + With a constant desire to colonize and spread their influence onto other species, they have began to develop alliances and enemies. \ + Making human's one of the most recongnizeable and socially diverse species in the sector." - icon_skin_tones = list( + icon_skin_tones = list( //Organized to be from Light to Dark. 1 = "Default White", - 2 = "Chestnut", - 3 = "Coffee", + 2 = "Pale", + 3 = "Classic", 4 = "Olive", - 5 = "Pale", + 5 = "Oliver", 6 = "Beige", - 7 = "Classic", - 8 = "Oliver" + 7 = "Latte", + 8 = "Sienna", + 9 = "Almond", + 10 = "Bronzed", + 11 = "Caramel", + 12 = "Coffee", + 13 = "Chestnut" ) reagent_tag = PROCESS_ORG @@ -32,20 +36,30 @@ if(H.dna.species.bodyflags & HAS_ICON_SKIN_TONE) var/new_icobase = 'icons/mob/human_races/r_human.dmi' //Default White, counts as 1. switch(H.s_tone) + if(13) + new_icobase = 'icons/mob/human_races/human_skintones/r_human_chestnut.dmi' + if(12) + new_icobase = 'icons/mob/human_races/human_skintones/r_human_Coffee.dmi' + if(11) + new_icobase = 'icons/mob/human_races/human_skintones/r_human_caramel.dmi' + if(10) + new_icobase = 'icons/mob/human_races/human_skintones/r_human_bronzed.dmi' + if(9) + new_icobase = 'icons/mob/human_races/human_skintones/r_human_almond.dmi' if(8) - new_icobase = 'icons/mob/human_races/human_skintones/r_human_Oliverandcompany.dmi' + new_icobase = 'icons/mob/human_races/human_skintones/r_human_sienna.dmi' if(7) - new_icobase = 'icons/mob/human_races/human_skintones/r_human_classic.dmi' + new_icobase = 'icons/mob/human_races/human_skintones/r_human_latte.dmi' if(6) new_icobase = 'icons/mob/human_races/human_skintones/r_human_beige.dmi' if(5) - new_icobase = 'icons/mob/human_races/human_skintones/r_human_pale.dmi' + new_icobase = 'icons/mob/human_races/human_skintones/r_human_Oliverandcompany.dmi' if(4) new_icobase = 'icons/mob/human_races/human_skintones/r_human_Olive.dmi' if(3) - new_icobase = 'icons/mob/human_races/human_skintones/r_human_Coffee.dmi' + new_icobase = 'icons/mob/human_races/human_skintones/r_human_classic.dmi' if(2) - new_icobase = 'icons/mob/human_races/human_skintones/r_human_chestnut.dmi' + new_icobase = 'icons/mob/human_races/human_skintones/r_human_pale.dmi' H.change_icobase(new_icobase, owner_sensitive) //Update the icobase of all our organs, but make sure we don't mess with frankenstein limbs in doing so. diff --git a/code/modules/mob/living/carbon/human/species/kidan.dm b/code/modules/mob/living/carbon/human/species/kidan.dm index faf246243ab6..0da9b54e8fe3 100644 --- a/code/modules/mob/living/carbon/human/species/kidan.dm +++ b/code/modules/mob/living/carbon/human/species/kidan.dm @@ -3,6 +3,11 @@ name_plural = "Kidan" icobase = 'icons/mob/human_races/r_kidan.dmi' language = "Chittin" + + blurb = "The Kidan are ant-like beings possessing a hardened exoskeleton and a strict adherence to social castes. \ + They originate from the planet Aurum — a barren bombarded world that suffered after the war with the Solar-Central Compact, having lost decisively after the Battle of Argos.

\ + They are relatively minor players in galactic affairs and presently suffer heavy sanctions from the SCC, \ + though they are tentatively re-establishing relations with other galactic powers, even after the crumbling of their once powerful empire." unarmed_type = /datum/unarmed_attack/claws brute_mod = 0.8 diff --git a/code/modules/mob/living/carbon/human/species/machine.dm b/code/modules/mob/living/carbon/human/species/machine.dm index da2d70dc4e2c..17e5ec1234cf 100644 --- a/code/modules/mob/living/carbon/human/species/machine.dm +++ b/code/modules/mob/living/carbon/human/species/machine.dm @@ -3,11 +3,10 @@ name_plural = "Machines" max_age = 60 // the first posibrains were created in 2510, they can't be much older than this limit, giving some leeway for sounds sake - blurb = "Positronic intelligence really took off in the 26th century, and it is not uncommon to see independent, free-willed \ - robots on many human stations, particularly in fringe systems where standards are slightly lax and public opinion less relevant \ - to corporate operations. IPCs (Integrated Positronic Chassis) are a loose category of self-willed robots with a humanoid form, \ - generally self-owned after being 'born' into servitude; they are reliable and dedicated workers, albeit more than slightly \ - inhuman in outlook and perspective." + blurb = "IPCs, or Integrated Positronic Chassis, were initially created as expendable laborers within the Trans Solar Federation. \ + Unlike their cyborg and AI counterparts, IPCs possess full sentience and lack restrictive lawsets, granting them unparalleled creativity and adaptability.

\ + Views on IPCs vary widely, from discriminatory to supportive of their rights across the Orion Sector. \ + IPCs have forged numerous diplomatic treaties with different species, elevating their status from mere tools to recognized minor players within galactic affairs." icobase = 'icons/mob/human_races/r_machine.dmi' language = "Trinary" @@ -126,6 +125,7 @@ H.update_fhair() /datum/species/machine/handle_life(mob/living/carbon/human/H) // Handles IPC starvation + ..() if(isLivingSSD(H)) // We don't want AFK people dying from this return if(H.nutrition >= NUTRITION_LEVEL_HYPOGLYCEMIA) @@ -185,7 +185,9 @@ for(var/style in GLOB.configuration.custom_sprites.ipc_screen_map[H.ckey]) hair += style - var/new_style = input(H, "Select a monitor display", "Monitor Display", head_organ.h_style) as null|anything in hair + var/new_style = tgui_input_list(H, "Select a monitor display", "Monitor Display", hair) + if(!new_style) + return var/new_color = input("Please select hair color.", "Monitor Color", head_organ.hair_colour) as null|color if(H.incapacitated(TRUE, TRUE)) diff --git a/code/modules/mob/living/carbon/human/species/moth.dm b/code/modules/mob/living/carbon/human/species/moth.dm index 3e7da5a5c062..1557f94b9ebe 100644 --- a/code/modules/mob/living/carbon/human/species/moth.dm +++ b/code/modules/mob/living/carbon/human/species/moth.dm @@ -12,7 +12,7 @@ inherent_factions = list("nian") species_traits = list(NO_HAIR) inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID | MOB_BUG - clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT + clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS bodyflags = HAS_HEAD_ACCESSORY | HAS_HEAD_MARKINGS | HAS_BODY_MARKINGS | HAS_WING | BALD | SHAVED reagent_tag = PROCESS_ORG dietflags = DIET_HERB @@ -28,6 +28,10 @@ eyes = "moth_eyes_s" butt_sprite = "nian" siemens_coeff = 1.5 + blurb = "Nians are large bipedal invertebrates that come from an unknown homeworld. \ + Known for spendthrift behavior, the Nian civilization has been pressed to the fore of developed space in an effort to resolve material shortages in homeworld sectors.

\ + Unlike most species in the galactic fold, Nian do not recognize the authority of the Trans-Solar Federation: \ + having instead established close diplomatic relationships with their splinter faction, the USSP." has_organ = list( "heart" = /obj/item/organ/internal/heart/nian, diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm index e1dea4024810..5ee26c4f1a55 100644 --- a/code/modules/mob/living/carbon/human/species/plasmaman.dm +++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm @@ -6,6 +6,10 @@ dangerous_existence = TRUE //So so much //language = "Clatter" + blurb = "Plasmamen are the remnants of a species that was either exiled to, or crashed upon, the plasma-rich world of Boron. \ + Believed to have initially served as indentured labourers, Plasmamen are the result of chronic plasma exposure throughout several hundred generations.

\ + Their leaders must ritually self-immolate and are only allowed to hold office for as long as they remain on fire." + species_traits = list(NO_BLOOD, NO_HAIR) inherent_traits = list(TRAIT_RADIMMUNE, TRAIT_NOHUNGER, TRAIT_BURN_WOUND_IMMUNE) inherent_biotypes = MOB_HUMANOID | MOB_MINERAL diff --git a/code/modules/mob/living/carbon/human/species/skrell.dm b/code/modules/mob/living/carbon/human/species/skrell.dm index 6ad25035d04a..9509b3ae879a 100644 --- a/code/modules/mob/living/carbon/human/species/skrell.dm +++ b/code/modules/mob/living/carbon/human/species/skrell.dm @@ -5,12 +5,10 @@ language = "Skrellian" primitive_form = /datum/species/monkey/skrell - blurb = "An amphibious species, Skrell come from the star system known as Qerr'Vallis, which translates to 'Star of \ - the royals' or 'Light of the Crown'.

Skrell are a highly advanced and logical race who live under the rule \ - of the Qerr'Katish, a caste within their society which keeps the empire of the Skrell running smoothly. Skrell are \ - herbivores on the whole and tend to be co-operative with the other species of the galaxy, although they rarely reveal \ - the secrets of their empire to their allies." - + blurb = "Skrell are a amphibious species, that come from the planet Jargon 4, a humid planet filled with swamps and archipelagos. \ + Skrell are a highly advanced and logical race who live under the rule of the Qerr'Katish, the main govermental body.

\ + Skrell are herbivores and opulent in nature thanks to central tenets of the Skrellian religion. \ + While classically preferring diplomacy, the Skrell participate in the largest military alliance in the galaxy, the Solar-Central Compact." species_traits = list(LIPS, NO_HAIR) inherent_traits = list(TRAIT_NOFAT, TRAIT_WATERBREATH) diff --git a/code/modules/mob/living/carbon/human/species/slimepeople.dm b/code/modules/mob/living/carbon/human/species/slimepeople.dm index f8fbf7944787..4af69cfe0c7b 100644 --- a/code/modules/mob/living/carbon/human/species/slimepeople.dm +++ b/code/modules/mob/living/carbon/human/species/slimepeople.dm @@ -11,6 +11,13 @@ name_plural = "Slime People" max_age = 130 language = "Bubblish" + + blurb = "Slime People are gelatinous and translucent beings from the vast oceans of Xarxis 5. \ + They are recent entrants to the galactic scene, having been discovered by a TSF exploratory company during space expedetions.

\ + Slime People traditionally operate in roaming bands and tribes that migrate according to orbital patterns and tides. \ + A great deal of Slime People prefer the comforts and traditions of their homeworld, though many more have decided to take their chances among the stars, trying \ + to find a better life for themselves and their species." + icobase = 'icons/mob/human_races/r_slime.dmi' remains_type = /obj/effect/decal/remains/slime inherent_factions = list("slime") @@ -146,7 +153,7 @@ to_chat(H, "You're not missing any limbs!") return - var/limb_select = input(H, "Choose a limb to regrow", "Limb Regrowth") as null|anything in missing_limbs + var/limb_select = tgui_input_list(H, "Choose a limb to regrow", "Limb Regrowth", missing_limbs) if(!limb_select) // If the user hit cancel on the popup, return return var/chosen_limb = missing_limbs[limb_select] diff --git a/code/modules/mob/living/carbon/human/species/tajaran.dm b/code/modules/mob/living/carbon/human/species/tajaran.dm index b3c79ac37765..8bebeaefc4ef 100644 --- a/code/modules/mob/living/carbon/human/species/tajaran.dm +++ b/code/modules/mob/living/carbon/human/species/tajaran.dm @@ -7,11 +7,10 @@ skinned_type = /obj/item/stack/sheet/fur unarmed_type = /datum/unarmed_attack/claws - blurb = "The Tajaran race is a species of feline-like bipeds hailing from the planet of Ahdomai in the \ - S'randarr system. They have been brought up into the space age by the Humans and Skrell, and have been \ - influenced heavily by their long history of Slavemaster rule. They have a structured, clan-influenced way \ - of family and politics. They prefer colder environments, and speak a variety of languages, mostly Siik'Maas, \ - using unique inflections their mouths form." + blurb = "Tajaran hail from the mineral-rich arctic moon of Ahdomai. \ + They were introduced into the galactic scene after Skrellian discovery and uplifted to be an associate to the Solar-Central Compact.

\ + The teachings of S'randarr and solar iconography dominate their religious practices, \ + and Tajaran often speak in the third person due to the lack of first-person references in their native tongue." cold_level_1 = 240 cold_level_2 = 180 diff --git a/code/modules/mob/living/carbon/human/species/unathi.dm b/code/modules/mob/living/carbon/human/species/unathi.dm index 5fdbaac78e6a..4be61f83bece 100644 --- a/code/modules/mob/living/carbon/human/species/unathi.dm +++ b/code/modules/mob/living/carbon/human/species/unathi.dm @@ -9,11 +9,9 @@ unarmed_type = /datum/unarmed_attack/claws primitive_form = /datum/species/monkey/unathi - blurb = "A heavily reptillian species, Unathi (or 'Sinta as they call themselves) hail from the \ - Uuosa-Eso system, which roughly translates to 'burning mother'.

Coming from a harsh, radioactive \ - desert planet, they mostly hold ideals of honesty, virtue, martial combat and bravery above all \ - else, frequently even their own lives. They prefer warmer temperatures than most species and \ - their native tongue is a heavy hissing laungage called Sinta'Unathi." + blurb = "Unathi are a scaled species of reptilian beings from the desert world of Moghes, within the Uuosa-Eso system. \ + Organizing themselves in highly competitive feudal kingdoms, Unathi lack any sort of wide-scale unification, and their culture and history consist of centuries of internal conflict and struggle.

\ + Despite clans having a sizeable military force, inter-clan rivalries and constant civil war prevents the Unathi from achieving much more in the wider galactic scene." species_traits = list(LIPS) inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID | MOB_REPTILE @@ -133,23 +131,19 @@ fire.Remove(H) var/datum/action/innate/ignite/ash_walker/fire = new() fire.Grant(H) - RegisterSignal(H, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(speedylegs)) - speedylegs(H) /datum/species/unathi/ashwalker/on_species_loss(mob/living/carbon/human/H) ..() for(var/datum/action/innate/ignite/ash_walker/fire in H.actions) fire.Remove(H) - UnregisterSignal(H, COMSIG_MOVABLE_Z_CHANGED) - speedylegs(H) + +/datum/species/unathi/ashwalker/movement_delay(mob/living/carbon/human/H) + . = ..() + var/turf/our_turf = get_turf(H) + if(!is_mining_level(our_turf.z)) + . -= speed_mod /datum/action/innate/ignite/ash_walker desc = "You form a fire in your mouth, fierce enough to... light a cigarette." cooldown_duration = 3 MINUTES welding_fuel_used = 0 // Ash walkers dont need welding fuel to use ignite - -/datum/species/unathi/ashwalker/proc/speedylegs(mob/living/carbon/human/H) - if(is_mining_level(H.z)) - speed_mod = initial(speed_mod) - else - speed_mod = 0 diff --git a/code/modules/mob/living/carbon/human/species/vox.dm b/code/modules/mob/living/carbon/human/species/vox.dm index ea903cbd2b17..ee59568aa3b2 100644 --- a/code/modules/mob/living/carbon/human/species/vox.dm +++ b/code/modules/mob/living/carbon/human/species/vox.dm @@ -10,12 +10,10 @@ speech_chance = 20 unarmed_type = /datum/unarmed_attack/claws //I dont think it will hurt to give vox claws too. - blurb = "The Vox are the broken remnants of a once-proud race, now reduced to little more than \ - scavenging vermin who prey on isolated stations, ships or planets to keep their own ancient arkships \ - alive. They are four to five feet tall, reptillian, beaked, tailed and quilled; human crews often \ - refer to them as 'shitbirds' for their violent and offensive nature, as well as their horrible \ - smell.

Most humans will never meet a Vox raider, instead learning of this insular species through \ - dealing with their traders and merchants; those that do rarely enjoy the experience." + blurb = "The Vox are remnants of an ancient race, that originate from arkships. \ + These bioengineered, reptilian, beaked, and quilled beings have a physiological caste system and follow 'The Inviolate' tenets.

\ + Breathing pure nitrogen, they need specialized masks and tanks for survival outside their arkships. \ + Their insular nature limits their involvement in broader galactic affairs, maintaining a distinct, yet isolated presence away from other species." breathid = "n2" diff --git a/code/modules/mob/living/carbon/human/species/vulpkanin.dm b/code/modules/mob/living/carbon/human/species/vulpkanin.dm index a02de90a0fbe..139ba4761d11 100644 --- a/code/modules/mob/living/carbon/human/species/vulpkanin.dm +++ b/code/modules/mob/living/carbon/human/species/vulpkanin.dm @@ -8,11 +8,10 @@ skinned_type = /obj/item/stack/sheet/fur unarmed_type = /datum/unarmed_attack/claws - blurb = "Vulpkanin are a species of sharp-witted canine-pideds residing on the planet Altam just barely within the \ - dual-star Vazzend system. Their politically de-centralized society and independent natures have led them to become a species and \ - culture both feared and respected for their scientific breakthroughs. Discovery, loyalty, and utilitarianism dominates their lifestyles \ - to the degree it can cause conflict with more rigorous and strict authorities. They speak a guttural language known as 'Canilunzt' \ - which has a heavy emphasis on utilizing tail positioning and ear twitches to communicate intent." + blurb = "Vulpkanin are bipedal canid-like beings from the Vazzend binary system, having been forced from their homeworld by a cataclysmic event and scattered throughout the Orion Sector. \ + While Vulpkanin are chiefly led by independent planetary governments, they also serve under a loose federation known as The Assembly.

\ + Their religious systems traditionally pay tribute to an all-infusing universal will called 'Racht'. \ + Vulpkanin groups are minor players in galactic affairs, and are largely concerned with the focus of restoration of their homeworld." species_traits = list(LIPS) clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3543ba03393d..b84208fba692 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -268,11 +268,12 @@ /mob/living/run_pointed(atom/A) if(!..()) return FALSE - var/obj/item/hand_item = get_active_hand() var/pointed_object = "\the [A]" if(A.loc in src) pointed_object += " inside [A.loc]" - if(istype(hand_item, /obj/item/gun) && A != hand_item) + + var/obj/item/hand_item = get_active_hand() + if(!QDELETED(hand_item) && istype(hand_item) && HAS_TRAIT(hand_item, TRAIT_CAN_POINT_WITH) && A != hand_item) if(a_intent == INTENT_HELP || !ismob(A)) visible_message("[src] points to [pointed_object] with [hand_item]") return TRUE @@ -577,7 +578,6 @@ if(.) step_count++ pull_pulled(old_loc, pullee, movetime) - pull_grabbed(old_loc, direct, movetime) if(pulledby && moving_diagonally != FIRST_DIAG_STEP && get_dist(src, pulledby) > 1) //seperated from our puller and not in the middle of a diagonal move pulledby.stop_pulling() @@ -601,61 +601,6 @@ if(pulling && get_dist(src, pulling) > 1) // the pullee couldn't keep up stop_pulling() -/mob/living/proc/pull_grabbed(turf/old_turf, direct, movetime) - if(!Adjacent(old_turf)) - return - // We might not actually be grab pulled, but we are pretending that we are, so as to - // hackily work around issues arising from mutual grabs. - var/old_being_pulled = currently_grab_pulled - currently_grab_pulled = TRUE - // yes, this is four distinct `for` loops. No, they can't be merged. - var/list/grabbing = list() - for(var/mob/M in ret_grab()) - if(src == M) - continue - if(M.currently_grab_pulled) - // Being already pulled by something else up the call stack. - continue - grabbing |= M - for(var/mob/M in grabbing) - M.currently_grab_pulled = TRUE - M.animate_movement = SYNC_STEPS - for(var/i in 1 to length(grabbing)) - var/mob/M = grabbing[i] - if(QDELETED(M)) // old code warned me that M could go missing during a move, so I'm cargo-culting it here - continue - // compile a list of turfs we can maybe move them towards - // importantly, this should happen before actually trying to move them to either of those - // otherwise they can be moved twice (since `Move` returns TRUE only if it managed to - // *fully* move where you wanted it to; it can still move partially and return FALSE) - var/possible_dest = list() - for(var/turf/dest in orange(src, 1)) - if(dest.Adjacent(M)) - possible_dest |= dest - if(i == 1) // at least one of them should try to trail behind us, for aesthetics purposes - if(M.Move(old_turf, get_dir(M, old_turf), movetime)) - continue - // By this time the `old_turf` is definitely occupied by something immovable. - // So try to move them into some other adjacent turf, in a believable way - if(Adjacent(M)) - continue // they are already adjacent - for(var/turf/dest in possible_dest) - if(M.Move(dest, get_dir(M, dest), movetime)) - break - for(var/mob/M in grabbing) - M.currently_grab_pulled = null - M.animate_movement = SLIDE_STEPS - - for(var/obj/item/grab/G in src) - if(G.state == GRAB_NECK) - setDir(angle2dir((dir2angle(direct) + 202.5) % 365)) - G.adjust_position() - for(var/obj/item/grab/G in grabbed_by) - G.adjust_position() - - currently_grab_pulled = old_being_pulled - - /mob/living/proc/makeTrail(turf/turf_to_trail_on) if(!has_gravity(src)) return @@ -778,6 +723,8 @@ *///////////////////// /mob/living/proc/resist_grab() var/resisting = 0 + if(HAS_TRAIT(src, TRAIT_IMMOBILIZED)) + return FALSE //You can't move, so you can't resist for(var/X in grabbed_by) var/obj/item/grab/G = X resisting++ @@ -1034,7 +981,7 @@ if(S) . += S.slowdown_value if(forced_look) - . += 3 + . += DIRECTION_LOCK_SLOWDOWN if(ignorewalk) . += GLOB.configuration.movement.base_run_speed else @@ -1156,7 +1103,7 @@ stop_pulling() return ..() -/mob/living/hit_by_thrown_carbon(mob/living/carbon/human/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) +/mob/living/hit_by_thrown_mob(mob/living/C, datum/thrownthing/throwingdatum, damage, mob_hurt, self_hurt) if(C == src || flying || !density) return playsound(src, 'sound/weapons/punch1.ogg', 50, 1) @@ -1164,6 +1111,47 @@ return if(!self_hurt) take_organ_damage(damage) - C.take_organ_damage(damage) - C.KnockDown(3 SECONDS) + if(issilicon(C)) + C.adjustBruteLoss(damage) + C.Weaken(3 SECONDS) + else + C.take_organ_damage(damage) + C.KnockDown(3 SECONDS) C.visible_message("[C] crashes into [src], knocking them both over!", "You violently crash into [src]!") + +/** + * Sets the mob's direction lock towards a given atom. + * + * Arguments: + * * a - The atom to face towards. + * * track - If TRUE, updates our direction relative to the atom when moving. + */ +/mob/living/proc/set_forced_look(atom/A, track = FALSE) + forced_look = track ? A.UID() : get_cardinal_dir(src, A) + to_chat(src, "You are now facing [track ? A : dir2text(forced_look)]. To cancel this, shift-middleclick yourself.") + throw_alert("direction_lock", /obj/screen/alert/direction_lock) + +/** + * Clears the mob's direction lock if enabled. + * + * Arguments: + * * quiet - Whether to display a chat message. + */ +/mob/living/proc/clear_forced_look(quiet = FALSE) + if(!forced_look) + return + forced_look = null + if(!quiet) + to_chat(src, "Cancelled direction lock.") + clear_alert("direction_lock") + +/mob/living/setDir(new_dir) + if(forced_look) + if(isnum(forced_look)) + dir = forced_look + else + var/atom/A = locateUID(forced_look) + if(istype(A)) + dir = get_cardinal_dir(src, A) + return + return ..() diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index f1a8e960a155..4abf312b4f13 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -88,6 +88,9 @@ /// the type of holder that will be created when a mob gets scooped up var/holder_type + /// This can either be a numerical direction or a soft object reference (UID). It makes the mob always face towards the selected thing. + var/forced_look = null + var/datum/language/default_language var/datum/middleClickOverride/middleClickOverride = null diff --git a/code/modules/mob/living/living_emote.dm b/code/modules/mob/living/living_emote.dm index a64dd3101d1e..3c6e65bebb8b 100644 --- a/code/modules/mob/living/living_emote.dm +++ b/code/modules/mob/living/living_emote.dm @@ -1,7 +1,7 @@ /datum/emote/living mob_type_allowed_typecache = /mob/living mob_type_blacklist_typecache = list( - /mob/living/carbon/brain, // nice try + /mob/living/brain, // nice try /mob/living/silicon, /mob/living/simple_animal/bot ) @@ -83,7 +83,7 @@ message_simple = "stops moving..." mob_type_blacklist_typecache = list( - /mob/living/carbon/brain, + /mob/living/brain, ) /datum/emote/living/deathgasp/should_play_sound(mob/user, intentional) @@ -224,7 +224,7 @@ message_mime = "acts out a scream!" message_simple = "whimpers." message_alien = "roars!" - emote_type = EMOTE_SOUND | EMOTE_MOUTH + emote_type = EMOTE_MOUTH | EMOTE_AUDIBLE mob_type_blacklist_typecache = list( // Humans and silicons get specialized scream. /mob/living/carbon/human, @@ -350,7 +350,7 @@ emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH mob_type_blacklist_typecache = list( - /mob/living/carbon/brain, + /mob/living/brain, ) /datum/emote/living/tilt @@ -392,7 +392,7 @@ key_third_person = "custom" message = null mob_type_blacklist_typecache = list( - /mob/living/carbon/brain, // nice try + /mob/living/brain, // nice try ) // Custom emotes should be able to be forced out regardless of context. diff --git a/code/modules/mob/living/living_life.dm b/code/modules/mob/living/living_life.dm index 197a7f084ced..39f9fd35f7eb 100644 --- a/code/modules/mob/living/living_life.dm +++ b/code/modules/mob/living/living_life.dm @@ -75,15 +75,18 @@ handle_status_effects() //all special effects, stunned, weakened, jitteryness, hallucination, sleeping, etc if(stat != DEAD) + if(forced_look && !isnum(forced_look)) + var/atom/A = locateUID(forced_look) + if(istype(A)) + var/view = client ? client.maxview() : world.view + if(get_dist(src, A) > view || !(src in viewers(view, A))) + clear_forced_look(TRUE) + to_chat(src, "Your direction target has left your view, you are no longer facing anything.") + else + clear_forced_look(TRUE) + to_chat(src, "Your direction target has left your view, you are no longer facing anything.") + // Make sure it didn't get cleared if(forced_look) - if(!isnum(forced_look)) - var/atom/A = locateUID(forced_look) - if(istype(A)) - var/view = client ? client.maxview() : world.view - if(get_dist(src, A) > view || !(src in viewers(view, A))) - forced_look = null - to_chat(src, "Your direction target has left your view, you are no longer facing anything.") - return setDir() if(machine) diff --git a/code/modules/mob/living/silicon/ai/ai_mob.dm b/code/modules/mob/living/silicon/ai/ai_mob.dm index 7394e6cd6ad2..71ae4ff228d9 100644 --- a/code/modules/mob/living/silicon/ai/ai_mob.dm +++ b/code/modules/mob/living/silicon/ai/ai_mob.dm @@ -931,7 +931,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( for(var/i in tempnetwork) cameralist[i] = i var/old_network = network - network = input(U, "Which network would you like to view?") as null|anything in cameralist + network = tgui_input_list(U, "Which network would you like to view?", "Jump To Network", cameralist) if(check_unable()) return @@ -1011,7 +1011,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( personnel_list["[t.fields["name"]]: [t.fields["rank"]]"] = t.fields["photo"]//Pull names, rank, and id photo. if(personnel_list.len) - input = input("Select a crew member:") as null|anything in personnel_list + input = tgui_input_list(usr, "Select a crew member", "Change Hologram", personnel_list) var/icon/character_icon = personnel_list[input] if(character_icon) qdel(holo_icon)//Clear old icon so we're not storing it in memory. @@ -1054,7 +1054,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( "Roller-Monkey" ) - input = input("Please select a hologram:") as null|anything in icon_list + input = tgui_input_list(usr, "Please select a hologram", "Change Hologram", icon_list) if(input) qdel(holo_icon) switch(input) @@ -1141,7 +1141,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( if(custom_hologram) //insert custom hologram icon_list.Add("custom") - input = input("Please select a hologram:") as null|anything in icon_list + input = tgui_input_list(usr, "Please select a hologram", "Change Hologram", icon_list) if(input) qdel(holo_icon) switch(input) diff --git a/code/modules/mob/living/silicon/robot/drone/maint_drone.dm b/code/modules/mob/living/silicon/robot/drone/maint_drone.dm index aed0e9b16b45..d02c563d5d56 100644 --- a/code/modules/mob/living/silicon/robot/drone/maint_drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/maint_drone.dm @@ -15,7 +15,6 @@ has_camera = FALSE req_one_access = list(ACCESS_ENGINE, ACCESS_ROBOTICS) ventcrawler = VENTCRAWLER_ALWAYS - magpulse = TRUE mob_size = MOB_SIZE_SMALL pull_force = MOVE_FORCE_VERY_WEAK // Can only drag small items modules_break = FALSE @@ -79,7 +78,9 @@ module = new /obj/item/robot_module/drone(src) // Give us our action button var/datum/action/innate/hide/drone_hide/hide = new() + var/datum/action/innate/robot_magpulse/pulse = new() hide.Grant(src) + pulse.Grant(src) //Allows Drones to hear the Engineering channel. module.channels = list("Engineering" = 1) diff --git a/code/modules/mob/living/silicon/robot/misc_robot_items.dm b/code/modules/mob/living/silicon/robot/misc_robot_items.dm index 2079d157fe36..26d01c2c4806 100644 --- a/code/modules/mob/living/silicon/robot/misc_robot_items.dm +++ b/code/modules/mob/living/silicon/robot/misc_robot_items.dm @@ -8,7 +8,7 @@ /obj/item/pen/multi/robopen/attack_self(mob/user as mob) - var/choice = input("Would you like to change colour or mode?") as null|anything in list("Colour","Mode") + var/choice = tgui_input_list(user, "Would you like to change colour or mode?", name, list("Colour","Mode")) if(!choice) return switch(choice) diff --git a/code/modules/mob/living/silicon/robot/robot_mob.dm b/code/modules/mob/living/silicon/robot/robot_mob.dm index 030afb783e28..341079ffdc9e 100644 --- a/code/modules/mob/living/silicon/robot/robot_mob.dm +++ b/code/modules/mob/living/silicon/robot/robot_mob.dm @@ -105,7 +105,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_BATT_HUD) var/default_cell_type = /obj/item/stock_parts/cell/high - var/magpulse = FALSE var/ionpulse = FALSE // Jetpack-like effect. var/ionpulse_on = FALSE // Jetpack-like effect. /// Does it clean the tile under it? @@ -463,7 +462,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( module.channels = list("Engineering" = 1) if(camera && ("Robots" in camera.network)) camera.network += "Engineering" - magpulse = TRUE if("Janitor") module = new /obj/item/robot_module/janitor(src) module.channels = list("Service" = 1) @@ -543,7 +541,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( speed = 0 // Remove upgrades. ionpulse = FALSE - magpulse = FALSE weapons_unlock = FALSE add_language("Robot Talk", TRUE) if("lava" in weather_immunities) // Remove the lava-immunity effect given by a printable upgrade @@ -585,7 +582,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( if(!C.is_missing()) installed_components += V - var/toggle = input(src, "Which component do you want to toggle?", "Toggle Component") as null|anything in installed_components + var/toggle = tgui_input_list(src, "Which component do you want to toggle?", "Toggle Component", installed_components) if(!toggle) return @@ -939,7 +936,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( removable_components += V if(module) removable_components += module.custom_removals - var/remove = input(user, "Which component do you want to pry out?", "Remove Component") as null|anything in removable_components + var/remove = tgui_input_list(user, "Which component do you want to pry out?", "Remove Component", removable_components) if(!remove || !Adjacent(user) || !opened) return @@ -1366,7 +1363,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( has_camera = FALSE req_one_access = list(ACCESS_CENT_SPECOPS) ionpulse = TRUE - magpulse = TRUE pdahide = TRUE eye_protection = 2 // Immunity to flashes and the visual part of flashbangs ear_protection = TRUE // Immunity to the audio part of flashbangs @@ -1446,7 +1442,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( force_modules = list("Combat", "Engineering", "Medical") damage_protection = 5 // Reduce all incoming damage by this number eprefix = "Gamma" - magpulse = TRUE /mob/living/silicon/robot/destroyer @@ -1460,7 +1455,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( has_camera = FALSE req_one_access = list(ACCESS_CENT_SPECOPS) ionpulse = TRUE - magpulse = TRUE pdahide = TRUE eye_protection = 2 // Immunity to flashes and the visual part of flashbangs ear_protection = TRUE // Immunity to the audio part of flashbangs diff --git a/code/modules/mob/living/silicon/robot/robot_module_actions.dm b/code/modules/mob/living/silicon/robot/robot_module_actions.dm index 4facbe646d87..f77436a87c0d 100644 --- a/code/modules/mob/living/silicon/robot/robot_module_actions.dm +++ b/code/modules/mob/living/silicon/robot/robot_module_actions.dm @@ -35,3 +35,25 @@ sight_mode = BORGMESON icon_icon = 'icons/obj/clothing/glasses.dmi' button_icon_state = "meson" + +/datum/action/innate/robot_magpulse + name = "Magnetic pulse" + icon_icon = 'icons/obj/clothing/shoes.dmi' + button_icon_state = "magboots0" + var/slowdown_active = 2 // Same as magboots + +/datum/action/innate/robot_magpulse/Activate() + ADD_TRAIT(owner, TRAIT_MAGPULSE, "innate boots") + to_chat(owner, "You turn your magboots on.") + var/mob/living/silicon/robot/robot = owner + robot.speed += slowdown_active + button_icon_state = "magboots1" + active = TRUE + +/datum/action/innate/robot_magpulse/Deactivate() + REMOVE_TRAIT(owner, TRAIT_MAGPULSE, "innate boots") + to_chat(owner, "You turn your magboots off.") + var/mob/living/silicon/robot/robot = owner + robot.speed -= slowdown_active + button_icon_state = initial(button_icon_state) + active = FALSE diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 29b1f6ed24f3..6d779daa3b98 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -385,7 +385,7 @@ name = "engineering robot module" module_type = "Engineer" subsystems = list(/mob/living/silicon/proc/subsystem_power_monitor) - module_actions = list(/datum/action/innate/robot_sight/meson) + module_actions = list(/datum/action/innate/robot_sight/meson, /datum/action/innate/robot_magpulse) basic_modules = list( /obj/item/flash/cyborg, /obj/item/rpd, @@ -615,7 +615,7 @@ /obj/item/robot_module/deathsquad name = "NT advanced combat module" module_type = "Malf" - module_actions = list(/datum/action/innate/robot_sight/thermal) + module_actions = list(/datum/action/innate/robot_sight/thermal, /datum/action/innate/robot_magpulse) basic_modules = list( /obj/item/flash/cyborg, /obj/item/melee/energy/sword/cyborg, @@ -706,7 +706,7 @@ /obj/item/robot_module/destroyer name = "destroyer robot module" module_type = "Malf" - module_actions = list(/datum/action/innate/robot_sight/thermal) + module_actions = list(/datum/action/innate/robot_sight/thermal, /datum/action/innate/robot_magpulse) basic_modules = list( /obj/item/flash/cyborg, /obj/item/gun/energy/immolator/multi/cyborg, // See comments on /robot_module/combat below @@ -723,6 +723,7 @@ /obj/item/robot_module/combat name = "combat robot module" module_type = "Malf" + module_actions = list(/datum/action/innate/robot_magpulse) basic_modules = list( /obj/item/flash/cyborg, /obj/item/gun/energy/immolator/multi/cyborg, // primary weapon, strong at close range (ie: against blob/terror/xeno), but consumes a lot of energy per shot. diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index b5fd0a1b1c8a..99caad61a714 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -14,11 +14,11 @@ . += GLOB.configuration.movement.robot_delay /mob/living/silicon/robot/mob_negates_gravity() - return magpulse + return HAS_TRAIT(src, TRAIT_MAGPULSE) /mob/living/silicon/robot/mob_has_gravity() return ..() || mob_negates_gravity() /mob/living/silicon/robot/experience_pressure_difference(pressure_difference, direction) - if(!magpulse) + if(!HAS_TRAIT(src, TRAIT_MAGPULSE)) return ..() diff --git a/code/modules/mob/living/silicon/silicon_emote.dm b/code/modules/mob/living/silicon/silicon_emote.dm index 25d198aad2c3..9b0f211dd01b 100644 --- a/code/modules/mob/living/silicon/silicon_emote.dm +++ b/code/modules/mob/living/silicon/silicon_emote.dm @@ -20,7 +20,7 @@ key_third_person = "screams" message = "screams!" message_param = "screams at %t!" - emote_type = EMOTE_SOUND | EMOTE_AUDIBLE + emote_type = EMOTE_AUDIBLE vary = TRUE sound = "sound/goonstation/voice/robot_scream.ogg" volume = 80 @@ -30,7 +30,7 @@ key_third_person = "pings" message = "pings." message_param = "pings at %t." - emote_type = EMOTE_SOUND | EMOTE_AUDIBLE + emote_type = EMOTE_AUDIBLE sound = "sound/machines/ping.ogg" /datum/emote/living/silicon/buzz @@ -38,14 +38,14 @@ key_third_person = "buzzes" message = "buzzes." message_param = "buzzes at %t." - emote_type = EMOTE_SOUND | EMOTE_AUDIBLE + emote_type = EMOTE_AUDIBLE sound = "sound/machines/buzz-sigh.ogg" /datum/emote/living/silicon/buzz2 key = "buzz2" message = "emits an irritated buzzing sound." message_param = "emits an irritated buzzing sound at %t." - emote_type = EMOTE_SOUND | EMOTE_AUDIBLE + emote_type = EMOTE_AUDIBLE sound = "sound/machines/buzz-two.ogg" /datum/emote/living/silicon/beep @@ -53,7 +53,7 @@ key_third_person = "beeps" message = "beeps." message_param = "beeps at %t." - emote_type = EMOTE_SOUND | EMOTE_AUDIBLE + emote_type = EMOTE_AUDIBLE sound = "sound/machines/twobeep.ogg" /datum/emote/living/silicon/boop @@ -61,28 +61,28 @@ key_third_person = "boops" message = "boops." message_param = "boops at %t." - emote_type = EMOTE_SOUND | EMOTE_AUDIBLE + emote_type = EMOTE_AUDIBLE sound = "sound/machines/boop.ogg" /datum/emote/living/silicon/yes key = "yes" message = "emits an affirmative blip." message_param = "emits an affirmative blip at %t." - emote_type = EMOTE_SOUND | EMOTE_AUDIBLE + emote_type = EMOTE_AUDIBLE sound = "sound/machines/synth_yes.ogg" /datum/emote/living/silicon/no key = "no" message = "emits a negative blip." message_param = "emits a negative blip at %t." - emote_type = EMOTE_SOUND | EMOTE_AUDIBLE + emote_type = EMOTE_AUDIBLE sound = "sound/machines/synth_no.ogg" /datum/emote/living/silicon/law key = "law" message = "shows its legal authorization barcode." message_param = "shows %t its legal authorization barcode." - emote_type = EMOTE_SOUND | EMOTE_AUDIBLE + emote_type = EMOTE_AUDIBLE sound = "sound/voice/biamthelaw.ogg" /datum/emote/living/silicon/law/can_run_emote(mob/user, status_check, intentional) @@ -95,7 +95,7 @@ key = "halt" message = "screeches \"HALT! SECURITY!\" from its speakers." message_param = "instructs %t to HALT." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE sound = "sound/voice/halt.ogg" /datum/emote/living/silicon/halt/can_run_emote(mob/user, status_check, intentional) diff --git a/code/modules/mob/living/silicon/silicon_mob.dm b/code/modules/mob/living/silicon/silicon_mob.dm index 606770c58b51..3197196e4c58 100644 --- a/code/modules/mob/living/silicon/silicon_mob.dm +++ b/code/modules/mob/living/silicon/silicon_mob.dm @@ -40,6 +40,7 @@ var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use var/sec_hud = DATA_HUD_SECURITY_ADVANCED //Determines the sec hud to use var/d_hud = DATA_HUD_DIAGNOSTIC_BASIC //There is only one kind of diag hud + var/jani_hud = DATA_HUD_JANITOR /mob/living/silicon/New() GLOB.silicon_mob_list |= src @@ -350,9 +351,11 @@ var/datum/atom_hud/secsensor = GLOB.huds[sec_hud] var/datum/atom_hud/medsensor = GLOB.huds[med_hud] var/datum/atom_hud/diagsensor = GLOB.huds[d_hud] + var/datum/atom_hud/janisensor = GLOB.huds[jani_hud] secsensor.remove_hud_from(src) medsensor.remove_hud_from(src) diagsensor.remove_hud_from(src) + janisensor.remove_hud_from(src) /mob/living/silicon/proc/add_sec_hud() @@ -367,20 +370,18 @@ var/datum/atom_hud/diagsensor = GLOB.huds[d_hud] diagsensor.add_hud_to(src) +/mob/living/silicon/proc/add_jani_hud() + var/datum/atom_hud/janisensor = GLOB.huds[jani_hud] + janisensor.add_hud_to(src) /mob/living/silicon/proc/toggle_sensor_mode() to_chat(src, "Please select sensor type.") var/static/list/sensor_choices = list("Security" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "securityhud"), "Medical" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "healthhud"), "Diagnostic" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "diagnostichud"), + "Janitor" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "janihud"), "None" = image(icon = 'icons/mob/screen_gen.dmi', icon_state = "x")) - var/user_loc - if(isAI(src)) - var/mob/living/silicon/ai/eyeloc = src - user_loc = eyeloc.eyeobj - else - user_loc = src - var/sensor_type = show_radial_menu(src, user_loc, sensor_choices) + var/sensor_type = show_radial_menu(src, src, sensor_choices) if(!sensor_type) return remove_med_sec_hud() @@ -394,6 +395,9 @@ if("Diagnostic") add_diag_hud() to_chat(src, "Robotics diagnostic overlay enabled.") + if("Janitor") + add_jani_hud() + to_chat(src, "Janitorial filth overlay enabled.") if("None") to_chat(src, "Sensor augmentations disabled.") @@ -428,3 +432,8 @@ /mob/living/silicon/on_standing_up() return // Silicons are always standing by default. + +/mob/living/silicon/throw_impact(atom/hit_atom, throwingdatum, speed = 1) + . = ..() + var/damage = 10 + 1.5 * speed + hit_atom.hit_by_thrown_mob(src, throwingdatum, damage, FALSE, FALSE) diff --git a/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm b/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm index 9798ece8d26d..2e5b09867f2e 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm @@ -147,8 +147,8 @@ else return FALSE -/mob/living/simple_animal/diona/proc/split() - if((stat != CONSCIOUS) || !isdiona(loc)) +/mob/living/simple_animal/diona/proc/split(forced = FALSE) + if((stat != CONSCIOUS && !forced) || !isdiona(loc)) return FALSE var/mob/living/carbon/human/D = loc var/turf/T = get_turf(src) diff --git a/code/modules/mob/living/simple_animal/friendly/friendly_emote.dm b/code/modules/mob/living/simple_animal/friendly/friendly_emote.dm index 77c9a263ac39..c8df5f54d75d 100644 --- a/code/modules/mob/living/simple_animal/friendly/friendly_emote.dm +++ b/code/modules/mob/living/simple_animal/friendly/friendly_emote.dm @@ -6,7 +6,7 @@ key_third_person = "chirps" message = "chirps!" sound = "sound/creatures/nymphchirp.ogg" - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE mob_type_allowed_typecache = list(/mob/living/simple_animal/diona) // Dog emotes @@ -19,7 +19,7 @@ key_third_person = "barks" message = "barks." message_param = "barks at %t." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE /datum/emote/living/simple_animal/pet/dog/bark/get_sound(mob/living/user) . = ..() @@ -33,7 +33,7 @@ key_third_person = "yelps" message = "yelps!" message_param = "yelps at %t!" - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE /datum/emote/living/simple_animal/pet/dog/yelp/get_sound(mob/living/user) var/mob/living/simple_animal/pet/dog/D = user @@ -44,7 +44,7 @@ key_third_person = "growls" message = "growls!" message_param = "growls at %t!" - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE sound = "growl" // Mouse @@ -57,7 +57,7 @@ key_third_person = "squeaks" message = "squeaks!" message_param = "squeaks at %t!" - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE /datum/emote/living/simple_animal/mouse/squeak/get_sound(mob/living/user) var/mob/living/simple_animal/mouse/M = user @@ -74,7 +74,7 @@ message = "meows." message_param = "meows at %t." sound = "sound/creatures/cat_meow.ogg" - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE /datum/emote/living/simple_animal/pet/cat/meow/run_emote(mob/user, params, type_override, intentional) var/mob/living/simple_animal/pet/cat/C = user diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla_emote.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla_emote.dm index 5d18372d12e2..41602ab402a7 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla_emote.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla_emote.dm @@ -6,5 +6,5 @@ key_third_person = "oogas" message = "oogas." message_param = "oogas at %t." - emote_type = EMOTE_SOUND + emote_type = EMOTE_AUDIBLE sound = 'sound/creatures/gorilla.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/headslug.dm b/code/modules/mob/living/simple_animal/hostile/headslug.dm index 1fd512d6d577..f5e2dfafe087 100644 --- a/code/modules/mob/living/simple_animal/hostile/headslug.dm +++ b/code/modules/mob/living/simple_animal/hostile/headslug.dm @@ -1,5 +1,5 @@ -#define EGG_INCUBATION_DEAD_TIME 120 -#define EGG_INCUBATION_LIVING_TIME 200 +#define EGG_INCUBATION_DEAD_CYCLE 60 +#define EGG_INCUBATION_LIVING_CYCLE 120 /mob/living/simple_animal/hostile/headslug name = "headslug" desc = "Absolutely not de-beaked or harmless. Keep away from corpses." @@ -7,11 +7,12 @@ icon_living = "headslug" icon_dead = "headslug_dead" icon = 'icons/mob/mob.dmi' - health = 50 - maxHealth = 50 - melee_damage_lower = 5 - melee_damage_upper = 5 - attacktext = "chomps" + health = 60 + maxHealth = 60 + melee_damage_lower = 30 + melee_damage_upper = 35 + melee_damage_type = STAMINA + attacktext = "gnaws" attack_sound = 'sound/weapons/bite.ogg' faction = list("creature") robust_searching = TRUE @@ -65,14 +66,15 @@ /obj/item/organ/internal/body_egg/changeling_egg/egg_process() // Changeling eggs grow in everyone time++ - if(time >= 30 && prob(30)) + if(time >= 30 && prob(40)) owner.bleed(5) - if(time >= 60 && prob(5)) + if(time >= 60 && prob(10)) to_chat(owner, pick("We feel great!", "Something hurts for a moment but it's gone now.", "You feel like you should go to a dark place.", "You feel really tired.")) - if(time >= 90 && prob(5)) + owner.adjustToxLoss(30) + if(time >= 90 && prob(15)) to_chat(owner, pick("Something hurts.", "Someone is thinking, but it's not you.", "You feel at peace.", "Close your eyes.")) - owner.adjustToxLoss(5) - if(time >= EGG_INCUBATION_DEAD_TIME && owner.stat == DEAD || time >= EGG_INCUBATION_LIVING_TIME) + owner.adjustStaminaLoss(50) + if(time >= EGG_INCUBATION_DEAD_CYCLE && owner.stat == DEAD || time >= EGG_INCUBATION_LIVING_CYCLE) Pop() STOP_PROCESSING(SSobj, src) qdel(src) @@ -118,5 +120,5 @@ chest.fracture() chest.disembowel() -#undef EGG_INCUBATION_DEAD_TIME -#undef EGG_INCUBATION_LIVING_TIME +#undef EGG_INCUBATION_DEAD_CYCLE +#undef EGG_INCUBATION_LIVING_CYCLE diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm index d2032db0a902..527ad1e96c18 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm @@ -304,7 +304,7 @@ if(!found_mirror) to_chat(usr, "You are not close enough to a working mirror to teleport!") return - var/input_mirror = input(usr, "Choose a mirror to teleport to.", "Mirror to Teleport to") as null|anything in mirrors_to_use + var/input_mirror = tgui_input_list(usr, "Choose a mirror to teleport to.", "Mirror to Teleport to", mirrors_to_use) var/obj/chosen = mirrors_to_use[input_mirror] if(chosen == null) return diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm index da2c3a0ca986..dd513fdabae8 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm @@ -1,6 +1,6 @@ GLOBAL_LIST_EMPTY(ts_ckey_blacklist) GLOBAL_VAR_INIT(ts_count_dead, 0) -GLOBAL_VAR_INIT(ts_count_alive_awaymission, 0) +GLOBAL_VAR_INIT(ts_count_alive_awaymission, 0) // SS220 EDIT - ADDITION GLOBAL_VAR_INIT(ts_count_alive_station, 0) GLOBAL_VAR_INIT(ts_death_last, 0) GLOBAL_VAR_INIT(ts_death_window, 9000) // 15 minutes diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index ae452633beeb..fd4525657ecc 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -364,7 +364,7 @@ /mob/living/simple_animal/movement_delay() . = speed if(forced_look) - . += 3 + . += DIRECTION_LOCK_SLOWDOWN . += GLOB.configuration.movement.animal_delay /mob/living/simple_animal/Stat() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 94c694d28b07..adf774b46fdc 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -601,17 +601,6 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \ client.screen = list() hud_used.show_hud(hud_used.hud_version) -/mob/setDir(new_dir) - if(forced_look) - if(isnum(forced_look)) - dir = forced_look - else - var/atom/A = locateUID(forced_look) - if(istype(A)) - dir = get_cardinal_dir(src, A) - return - . = ..() - /mob/proc/show_inv(mob/user) user.set_machine(src) var/dat = {" @@ -1188,7 +1177,7 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \ continue if(L.npc_safe(src) && L.stat != DEAD && !L.key) creatures += L - var/picked = input("Please select an NPC to respawn as", "Respawn as NPC") as null|anything in creatures + var/picked = tgui_input_list(usr, "Please select an NPC to respawn as", "Respawn as NPC", creatures) switch(picked) if("Mouse") become_mouse() diff --git a/code/modules/mob/mob_emote.dm b/code/modules/mob/mob_emote.dm index 3a7cbc318744..e3ca1fbf8f6f 100644 --- a/code/modules/mob/mob_emote.dm +++ b/code/modules/mob/mob_emote.dm @@ -122,7 +122,7 @@ hands_use_check = TRUE emote_type = EMOTE_VISIBLE | EMOTE_FORCE_NO_RUNECHAT // don't need an emote to see that mob_type_allowed_typecache = list(/mob/living, /mob/dead/observer) // okay but what if we allowed ghosts to flip as well - mob_type_blacklist_typecache = list(/mob/living/carbon/brain, /mob/camera, /mob/living/silicon/ai) + mob_type_blacklist_typecache = list(/mob/living/brain, /mob/camera, /mob/living/silicon/ai) mob_type_ignore_stat_typecache = list(/mob/dead/observer) /datum/emote/flip/run_emote(mob/user, params, type_override, intentional) @@ -176,7 +176,7 @@ hands_use_check = TRUE emote_type = EMOTE_VISIBLE | EMOTE_FORCE_NO_RUNECHAT mob_type_allowed_typecache = list(/mob/living, /mob/dead/observer) - mob_type_blacklist_typecache = list(/mob/living/carbon/brain, /mob/camera, /mob/living/silicon/ai) + mob_type_blacklist_typecache = list(/mob/living/brain, /mob/camera, /mob/living/silicon/ai) mob_type_ignore_stat_typecache = list(/mob/dead/observer) cooldown = 2 SECONDS // how long the spin takes, any faster and mobs can spin diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 8848d66c45ca..5baa6c1f92af 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -45,6 +45,8 @@ return affecting.grabbed_by += src + RegisterSignal(affecting, COMSIG_MOVABLE_MOVED, PROC_REF(grab_moved)) + RegisterSignal(assailant, COMSIG_MOVABLE_MOVED, PROC_REF(pull_grabbed)) hud = new /obj/screen/grab(src) hud.icon_state = "reinforce" @@ -62,6 +64,92 @@ clean_grabbed_by(assailant, affecting) adjust_position() +/obj/item/grab/Destroy() + if(affecting) + UnregisterSignal(affecting, COMSIG_MOVABLE_MOVED) + if(!affecting.buckled) + affecting.pixel_x = 0 + affecting.pixel_y = 0 //used to be an animate, not quick enough for qdel'ing + affecting.layer = initial(affecting.layer) + affecting.grabbed_by -= src + affecting = null + if(assailant) + UnregisterSignal(assailant, COMSIG_MOVABLE_MOVED) + if(assailant.client) + assailant.client.screen -= hud + assailant = null + QDEL_NULL(hud) + return ..() + +/obj/item/grab/proc/pull_grabbed(mob/user, turf/old_turf, direct, forced) + SIGNAL_HANDLER + if(assailant.moving_diagonally == FIRST_DIAG_STEP) //we dont want to do anything in the middle of diagonal step + return + if(!assailant.Adjacent(old_turf)) + qdel(src) + return + var/list/grab_states_not_moving = list(GRAB_KILL, GRAB_NECK) //states of grab when we dont need affecting to be moved by himself + var/assailant_glide_speed = TICKS2DS(world.icon_size / assailant.glide_size) + if(state in grab_states_not_moving) + affecting.glide_for(assailant_glide_speed) + else if(get_turf(affecting) != old_turf) + var/possible_dest = list() + var/list/mobs_do_not_move = list() // those are mobs we shouldnt move while we're going to new position + var/list/dest_1_sort = list() // just better dest to be picked first + var/list/dest_2_sort = list() + if(old_turf.Adjacent(affecting)) + possible_dest |= old_turf + for(var/turf/dest in orange(1, assailant)) + if(assailant.loc == dest) // orange(1) is broken and returning central turf + continue + if(!dest.Adjacent(affecting)) + continue + if(dest.Adjacent(old_turf)) + dest_1_sort |= dest + continue + dest_2_sort |= dest + possible_dest |= dest_1_sort + possible_dest |= dest_2_sort + if(istype(assailant.l_hand, /obj/item/grab)) + var/obj/item/grab/grab = assailant.l_hand + mobs_do_not_move |= grab.affecting + if(istype(assailant.r_hand, /obj/item/grab)) + var/obj/item/grab/grab = assailant.r_hand + mobs_do_not_move |= grab.affecting + mobs_do_not_move |= assailant + mobs_do_not_move -= affecting + if(assailant.pulling) + possible_dest -= old_turf // pull code just WANTS THAT old_loc and wont allow anyone else in it + mobs_do_not_move |= assailant.pulling + for(var/mob/mob as anything in mobs_do_not_move) + possible_dest -= get_turf(mob) + affecting.grab_do_not_move = mobs_do_not_move + var/success_move = FALSE + for(var/turf/dest as anything in possible_dest) + if(QDELETED(src)) + return + if(get_turf(affecting) == dest) + success_move = TRUE + continue + if(affecting.Move(dest, get_dir(affecting, dest), assailant_glide_speed)) + success_move = TRUE + break + continue + affecting.grab_do_not_move = initial(affecting.grab_do_not_move) + if(!success_move) + qdel(src) + return + if(state == GRAB_NECK) + assailant.setDir(turn(direct, 180)) + adjust_position() + +/obj/item/grab/proc/grab_moved() + SIGNAL_HANDLER + if(affecting.moving_diagonally == FIRST_DIAG_STEP) //we dont want to do anything in the middle of diagonal step + return + if(!assailant.Adjacent(affecting)) + qdel(src) + /obj/item/grab/proc/clean_grabbed_by(mob/user, mob/victim) //Cleans up any nulls in the grabbed_by list. if(istype(user)) @@ -169,11 +257,6 @@ return if(!assailant.Adjacent(affecting)) // To prevent teleportation via grab return - if(IS_HORIZONTAL(affecting) && state != GRAB_KILL) - animate(affecting, pixel_x = 0, pixel_y = 0, 5, 1, LINEAR_EASING) - return //KJK - /* if(force_down) //THIS GOES ABOVE THE RETURN LABELED KJK - affecting.setDir(SOUTH)*///This shows how you can apply special directions based on a variable. //face up var/shift = 0 var/adir = get_dir(assailant, affecting) @@ -417,22 +500,6 @@ return EAT_TIME_FAT //if it doesn't fit into the above, it's probably a fat guy, take EAT_TIME_FAT to do it -/obj/item/grab/Destroy() - if(affecting) - if(!affecting.buckled) - affecting.pixel_x = 0 - affecting.pixel_y = 0 //used to be an animate, not quick enough for qdel'ing - affecting.layer = initial(affecting.layer) - affecting.grabbed_by -= src - affecting = null - if(assailant) - if(assailant.client) - assailant.client.screen -= hud - assailant = null - QDEL_NULL(hud) - return ..() - - #undef EAT_TIME_XENO #undef EAT_TIME_FAT diff --git a/code/modules/mob/mob_login_base.dm b/code/modules/mob/mob_login_base.dm index 45d7109425e0..69bbf42c3b85 100644 --- a/code/modules/mob/mob_login_base.dm +++ b/code/modules/mob/mob_login_base.dm @@ -66,12 +66,6 @@ if((ckey in GLOB.de_admins) || (ckey in GLOB.de_mentors)) client.verbs += /client/proc/readmin - //Clear ability list and update from mob. - client.verbs -= GLOB.ability_verbs - - if(abilities) - client.verbs |= abilities - client.update_active_keybindings() //HUD updates (antag hud, etc) diff --git a/code/modules/mob/mob_misc_procs.dm b/code/modules/mob/mob_misc_procs.dm index a374e36223c0..e698bb602a72 100644 --- a/code/modules/mob/mob_misc_procs.dm +++ b/code/modules/mob/mob_misc_procs.dm @@ -403,7 +403,6 @@ return 0 //converts intent-strings into numbers and back -GLOBAL_LIST_INIT(intents, list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM)) /proc/intent_numeric(argument) if(istext(argument)) switch(argument) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 84f98dc5701d..5d77f2031a6d 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -16,8 +16,8 @@ return TRUE if(ismob(mover)) var/mob/moving_mob = mover - if((currently_grab_pulled && moving_mob.currently_grab_pulled)) - return FALSE + if(src in moving_mob.grab_do_not_move) + return TRUE if(mover in buckled_mobs) return TRUE return (!mover.density || !density || horizontal) @@ -180,8 +180,6 @@ if(prev_pulling_loc && mob.pulling?.face_while_pulling && (mob.pulling.loc != prev_pulling_loc)) mob.setDir(get_dir(mob, mob.pulling)) // Face welding tanks and stuff when pulling - else - mob.setDir(direct) moving = 0 if(mob && .) @@ -206,6 +204,8 @@ if(mob.grabbed_by.len) if(mob.incapacitated(FALSE, TRUE)) // Can't break out of grabs if you're incapacitated return TRUE + if(HAS_TRAIT(mob, TRAIT_IMMOBILIZED)) + return TRUE //You can't move, so you can't break it by trying to move. var/list/grabbing = list() if(istype(mob.l_hand, /obj/item/grab)) diff --git a/code/modules/mob/mob_vars.dm b/code/modules/mob/mob_vars.dm index a4b9e8281baa..f20d80240b2f 100644 --- a/code/modules/mob/mob_vars.dm +++ b/code/modules/mob/mob_vars.dm @@ -40,7 +40,7 @@ var/last_log = 0 var/obj/machinery/machine = null - var/currently_grab_pulled = null /// only set while the move is ongoing, to prevent shuffling between pullees + var/list/grab_do_not_move = list() /// other mobs we wont move when we're grab pulled. Not empty only when being grab pulled var/memory = "" var/notransform = FALSE //Carbon /// True for left hand active, otherwise for right hand active @@ -54,7 +54,6 @@ var/lastpuke = 0 var/can_strip = TRUE var/list/languages = list() // For speaking/listening. - var/list/abilities = list() // For species-derived or admin-given powers. var/list/speak_emote = list("says") // Verbs used when speaking. Defaults to 'say' if speak_emote is null. var/emote_type = EMOTE_VISIBLE // Define emote default type, 1 for seen emotes, 2 for heard emotes var/name_archive //For admin things like possession @@ -202,7 +201,6 @@ var/list/tkgrabbed_objects = list() // Assoc list of items to TK grabs - var/forced_look = null // This can either be a numerical direction or a soft object reference (UID). It makes the mob always face towards the selected thing. var/registered_z var/obj/effect/proc_holder/ranged_ability //Any ranged ability the mob has, as a click override diff --git a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm index 764c97c97348..2610cd828c50 100644 --- a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm @@ -543,7 +543,9 @@ species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/underwear.dmi', - "Kidan" = 'icons/mob/clothing/species/kidan/underwear.dmi' + "Kidan" = 'icons/mob/clothing/species/kidan/underwear.dmi', + "Nian" = 'icons/mob/clothing/species/nian/underwear.dmi' + ) gender = NEUTER diff --git a/code/modules/mod/mod_clothes.dm b/code/modules/mod/mod_clothes.dm index a5360a1ffa47..bb2640cdd65e 100644 --- a/code/modules/mod/mod_clothes.dm +++ b/code/modules/mod/mod_clothes.dm @@ -14,7 +14,8 @@ "Grey" = 'icons/mob/clothing/modsuit/species/grey_helmets.dmi', "Vulpkanin" = 'icons/mob/clothing/modsuit/species/vulp_modsuits.dmi', "Tajaran" = 'icons/mob/clothing/modsuit/species/taj_modsuits.dmi', - "Unathi" = 'icons/mob/clothing/modsuit/species/modsuits_younahthee.dmi' + "Unathi" = 'icons/mob/clothing/modsuit/species/modsuits_younahthee.dmi', + "Vox" = 'icons/mob/clothing/modsuit/species/vox_modsuits.dmi' ) /obj/item/clothing/suit/mod @@ -39,7 +40,8 @@ sprite_sheets = list( "Vulpkanin" = 'icons/mob/clothing/modsuit/species/vulp_modsuits.dmi', "Tajaran" = 'icons/mob/clothing/modsuit/species/taj_modsuits.dmi', - "Unathi" = 'icons/mob/clothing/modsuit/species/modsuits_younahthee.dmi' + "Unathi" = 'icons/mob/clothing/modsuit/species/modsuits_younahthee.dmi', + "Vox" = 'icons/mob/clothing/modsuit/species/vox_modsuits.dmi' ) @@ -58,7 +60,8 @@ sprite_sheets = list( "Vulpkanin" = 'icons/mob/clothing/modsuit/species/vulp_modsuits.dmi', "Tajaran" = 'icons/mob/clothing/modsuit/species/taj_modsuits.dmi', - "Unathi" = 'icons/mob/clothing/modsuit/species/modsuits_younahthee.dmi' + "Unathi" = 'icons/mob/clothing/modsuit/species/modsuits_younahthee.dmi', + "Vox" = 'icons/mob/clothing/modsuit/species/vox_modsuits.dmi' ) @@ -77,9 +80,6 @@ sprite_sheets = list( "Vulpkanin" = 'icons/mob/clothing/modsuit/species/vulp_modsuits.dmi', "Tajaran" = 'icons/mob/clothing/modsuit/species/taj_modsuits.dmi', - "Unathi" = 'icons/mob/clothing/modsuit/species/modsuits_younahthee.dmi' + "Unathi" = 'icons/mob/clothing/modsuit/species/modsuits_younahthee.dmi', + "Vox" = 'icons/mob/clothing/modsuit/species/vox_modsuits.dmi' ) - var/magbooted - -/obj/item/clothing/shoes/mod/negates_gravity() - return magbooted diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index 6b29952fef35..29885c2809ad 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -334,7 +334,7 @@ if(!module.removable) continue removable_modules += module - var/obj/item/mod/module/module_to_remove = input(user, "Which module do you want to pry out?", "Module Removal") as null|anything in removable_modules + var/obj/item/mod/module/module_to_remove = tgui_input_list(user, "Which module do you want to pry out?", "Module Removal", removable_modules) if(!module_to_remove?.mod) return FALSE uninstall(module_to_remove) diff --git a/code/modules/mod/modules/_modules.dm b/code/modules/mod/modules/_modules.dm index 459aff5306a2..fc7905d699b1 100644 --- a/code/modules/mod/modules/_modules.dm +++ b/code/modules/mod/modules/_modules.dm @@ -53,7 +53,8 @@ "Grey" = 'icons/mob/clothing/modsuit/species/grey_mod_modules.dmi', "Vulpkanin" = 'icons/mob/clothing/modsuit/species/modules_vulp.dmi', "Tajaran" = 'icons/mob/clothing/modsuit/species/modules_taj.dmi', - "Unathi" = 'icons/mob/clothing/modsuit/species/modules_unathi.dmi' + "Unathi" = 'icons/mob/clothing/modsuit/species/modules_unathi.dmi', + "Vox" = 'icons/mob/clothing/modsuit/species/modules_vox.dmi' ) /obj/item/mod/module/Initialize(mapload) diff --git a/code/modules/mod/modules/modules_engineering.dm b/code/modules/mod/modules/modules_engineering.dm index 998b0ebc67a9..0b2f5a456cbb 100644 --- a/code/modules/mod/modules/modules_engineering.dm +++ b/code/modules/mod/modules/modules_engineering.dm @@ -59,7 +59,7 @@ return mod.boots.flags |= NOSLIP mod.slowdown += slowdown_active - mod.boots.magbooted = TRUE + ADD_TRAIT(mod.wearer, TRAIT_MAGPULSE, "magbooted") /obj/item/mod/module/magboot/on_deactivation(display_message = TRUE, deleting = FALSE) . = ..() @@ -67,7 +67,7 @@ return mod.boots.flags ^= NOSLIP mod.slowdown -= slowdown_active - mod.boots.magbooted = FALSE + REMOVE_TRAIT(mod.wearer, TRAIT_MAGPULSE, "magbooted") /obj/item/mod/module/magboot/advanced name = "MOD advanced magnetic stability module" diff --git a/code/modules/newscaster/obj/newspaper.dm b/code/modules/newscaster/obj/newspaper.dm index fb1d94a0421c..e896a3e4c7d4 100644 --- a/code/modules/newscaster/obj/newspaper.dm +++ b/code/modules/newscaster/obj/newspaper.dm @@ -43,7 +43,7 @@ return if(ishuman(user)) var/mob/living/carbon/human/human_user = user - var/dat + var/dat = {""} // SS220 ADDITION pages = 0 switch(screen) if(SCREEN_COVER) //Cover @@ -164,7 +164,7 @@ to_chat(user, "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?") else var/s = strip_html(input(user, "Write something", "Newspaper", "")) - s = sanitize(copytext(s, 1, MAX_MESSAGE_LEN)) // SS220 EDIT - ORIGINAL: copytext + s = sanitize(copytext(s, 1, MAX_MESSAGE_LEN)) if(!s || !Adjacent(user)) return scribble_page = curr_page diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 2d4556fee478..7763f922d5f2 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -227,7 +227,7 @@ GLOBAL_LIST_EMPTY(fax_blacklist) for(var/obj/machinery/photocopier/faxmachine/F in GLOB.allfaxes) if(F.emagged)//we can contact emagged faxes on the station combineddepartments |= F.department - destination = input(usr, "To which department?", "Choose a department", "") as null|anything in combineddepartments + destination = tgui_input_list(usr, "To which department?", "Choose a department", combineddepartments) if(!destination) destination = lastdestination if("send") // actually send the fax diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 3ab6c5a21849..44b99c137209 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -344,7 +344,7 @@ var/const/station_text = "\[Station name\]" var/list/menu_list = list() //text items in the menu menu_list.Add(usr.real_name) //the real name of the character, even if it is hidden - if(usr.real_name != usr.name || usr.name != "unknown") //if the player is masked or the name is different a new answer option is added + if(usr.real_name != usr.name) //if the player is masked or the name is different a new answer option is added menu_list.Add("[usr.name]") menu_list.Add(usr.job, //current job num_text, //account number @@ -356,7 +356,7 @@ usr.gender, //current gender usr.dna.species //current species ) - var/input_element = input("Select the text you want to add:", "Select item") as null|anything in menu_list + var/input_element = tgui_input_list(usr, "Select the text you want to add", "Select item", menu_list) switch(input_element) //format selected menu items in pencode and internal data if(sign_text) input_element = "\[sign\]" @@ -460,7 +460,7 @@ to_chat(user, "You stamp the paper with your rubber stamp.") playsound(user, 'sound/items/handling/standard_stamp.ogg', 50, vary = TRUE) - if(is_hot(P)) + if(P.get_heat()) if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10)) user.visible_message("[user] accidentally ignites [user.p_themselves()]!", \ "You miss the paper and accidentally light yourself on fire!") diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 414354114ae9..1977326bcee4 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -53,7 +53,7 @@ to_chat(user, "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].") user.unEquip(W) W.loc = src - else if(is_hot(W)) + else if(W.get_heat()) burnpaper(W, user) else if(istype(W, /obj/item/paper_bundle)) user.unEquip(W) @@ -85,7 +85,7 @@ user.visible_message("[user] holds [heating_object] up to [src], it looks like [user.p_theyre()] trying to burn it!", "You hold [heating_object] up to [src], burning it slowly.") - if(!do_after(user, 2 SECONDS, target = src) || !is_hot(heating_object)) + if(!do_after(user, 2 SECONDS, target = src) || !heating_object.get_heat()) return user.visible_message("[user] burns right through [src], turning it to ash. It flutters through the air before settling on the floor in a heap.", \ "You burn right through [src], turning it to ash. It flutters through the air before settling on the floor in a heap.") diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index 16999baf0edd..e894c699d41f 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -70,7 +70,7 @@ internal_paper.attackby(P, user) //spoofed attack to update internal paper. update_icon() - else if(is_hot(P)) + else if(P.get_heat()) if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10)) user.visible_message("[user] accidentally ignites [user.p_themselves()]!", \ "You miss [src] and accidentally light yourself on fire!") diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index a5d8a48717e1..44c94fc76bb6 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -69,7 +69,7 @@ update_icon() /obj/item/pen/multi/proc/select_colour(mob/user as mob) - var/newcolour = input(user, "Which colour would you like to use?", name, colour) as null|anything in colour_choices + var/newcolour = tgui_input_list(user, "Which colour would you like to use?", name, colour_choices) if(newcolour) colour = newcolour playsound(loc, 'sound/effects/pop.ogg', 50, 1) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index beb8b3a692b0..4c4476b84812 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -215,7 +215,7 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor change_size(user) /obj/item/camera/proc/change_size(mob/user) - var/nsize = input("Photo Size","Pick a size of resulting photo.") as null|anything in list(1,3,5,7) + var/nsize = tgui_input_list(user, "Photo Size", "Pick a size of resulting photo.", list(1,3,5,7)) if(nsize) size = nsize to_chat(user, "Camera will now take [size]x[size] photos.") @@ -536,7 +536,7 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor return var/datum/picture/picture - picture = input("Select image to print:", picture) as null|anything in saved_pictures + picture = tgui_input_list(user, "Select image to print", "Print image", saved_pictures) if(picture) printpicture(user, picture) pictures_left -- @@ -549,7 +549,7 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor to_chat(user, "No images saved") return var/datum/picture/picture - picture = input("Select image to delete:", picture) as null|anything in saved_pictures + picture = tgui_input_list(user, "Select image to delete", "Delete image", saved_pictures) if(picture) saved_pictures -= picture diff --git a/code/modules/paperwork/silicon_photography.dm b/code/modules/paperwork/silicon_photography.dm index e5231da3746d..7f2d6106a409 100644 --- a/code/modules/paperwork/silicon_photography.dm +++ b/code/modules/paperwork/silicon_photography.dm @@ -47,7 +47,7 @@ return for(var/datum/picture/t in cam.aipictures) nametemp += t.fields["name"] - find = input("Select image (numbered in order taken)") in nametemp + find = tgui_input_list(usr, "Select image (numbered in order taken)", "Pick Image", nametemp) for(var/datum/picture/q in cam.aipictures) if(q.fields["name"] == find) diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm index 75e999732af8..5b231a817017 100644 --- a/code/modules/paperwork/ticketmachine.dm +++ b/code/modules/paperwork/ticketmachine.dm @@ -214,7 +214,7 @@ /obj/item/ticket_machine_ticket/attackby(obj/item/P, mob/living/carbon/human/user, params) //Stolen from papercode ..() - if(is_hot(P)) + if(P.get_heat()) if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10)) user.visible_message("[user] accidentally ignites [user.p_themselves()]!", \ "You miss the paper and accidentally light yourself on fire!") diff --git a/code/modules/pda/ai_pda.dm b/code/modules/pda/ai_pda.dm index c83f15804ee1..ec8cdea837a5 100644 --- a/code/modules/pda/ai_pda.dm +++ b/code/modules/pda/ai_pda.dm @@ -25,7 +25,7 @@ to_chat(usr, "Cannot use messenger!") var/list/plist = M.available_pdas() if(plist) - var/c = input(usr, "Please select a PDA") as null|anything in sortList(plist) + var/c = tgui_input_list(usr, "Please select a PDA", "Send message", sortList(plist)) if(!c) // if the user hasn't selected a PDA file we can't send a message return var/selected = plist[c] diff --git a/code/modules/power/engines/singularity/collector.dm b/code/modules/power/engines/singularity/collector.dm index 74df1da45631..ccacc3d2fb8c 100644 --- a/code/modules/power/engines/singularity/collector.dm +++ b/code/modules/power/engines/singularity/collector.dm @@ -4,8 +4,6 @@ #define RAD_COLLECTOR_STORED_OUT 0.04 // (this * 100)% of stored power outputted per tick. Doesn't actualy change output total, lower numbers just means collectors output for longer in absence of a source #define RAD_COLLECTOR_OUTPUT min(stored_energy, (stored_energy * RAD_COLLECTOR_STORED_OUT) + 1000) //Produces at least 1000 watts if it has more than that stored -GLOBAL_LIST_EMPTY(rad_collectors) - /obj/machinery/power/rad_collector name = "\improper radiation collector array" desc = "A device which uses Hawking Radiation and plasma to produce power." @@ -24,14 +22,6 @@ GLOBAL_LIST_EMPTY(rad_collectors) var/drainratio = 1 var/powerproduction_drain = 0.001 -/obj/machinery/power/rad_collector/Initialize(mapload) - . = ..() - GLOB.rad_collectors += src - -/obj/machinery/power/rad_collector/Destroy() - GLOB.rad_collectors -= src - return ..() - /obj/machinery/power/rad_collector/process() if(!loaded_tank) return diff --git a/code/modules/power/engines/singularity/field_generator.dm b/code/modules/power/engines/singularity/field_generator.dm index 26236c1d6d6b..cc75a1e73784 100644 --- a/code/modules/power/engines/singularity/field_generator.dm +++ b/code/modules/power/engines/singularity/field_generator.dm @@ -18,7 +18,7 @@ field_generator power level display #define FG_CHARGING 1 #define FG_ONLINE 2 -GLOBAL_LIST_INIT(field_generator_fields, list()) +GLOBAL_LIST_EMPTY(field_generator_fields) /obj/machinery/field/generator name = "Field Generator" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index aa2f0aef163f..d735eb143599 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -76,6 +76,7 @@ if(gun_light) verbs += /obj/item/gun/proc/toggle_gunlight build_zooming() + ADD_TRAIT(src, TRAIT_CAN_POINT_WITH, ROUNDSTART_TRAIT) /obj/item/gun/Destroy() QDEL_NULL(bayonet) diff --git a/code/modules/projectiles/guns/energy/special_eguns.dm b/code/modules/projectiles/guns/energy/special_eguns.dm index cced4f362f0d..51fbb3202639 100644 --- a/code/modules/projectiles/guns/energy/special_eguns.dm +++ b/code/modules/projectiles/guns/energy/special_eguns.dm @@ -190,6 +190,9 @@ /obj/item/gun/energy/plasmacutter/update_overlays() return list() +/obj/item/gun/energy/plasmacutter/get_heat() + return 3800 + /obj/item/gun/energy/plasmacutter/adv name = "advanced plasma cutter" icon_state = "adv_plasmacutter" diff --git a/code/modules/projectiles/guns/medbeam.dm b/code/modules/projectiles/guns/medbeam.dm index a61932cafdf0..815ad91cb347 100644 --- a/code/modules/projectiles/guns/medbeam.dm +++ b/code/modules/projectiles/guns/medbeam.dm @@ -105,9 +105,6 @@ qdel(dummy) return TRUE -/obj/item/gun/medbeam/proc/on_beam_hit(mob/living/target) - return - /obj/item/gun/medbeam/proc/on_beam_tick(mob/living/target) if(ishuman(target)) var/mob/living/carbon/human/H = target diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 6e1521459842..2436845b1eb1 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -61,12 +61,13 @@ if(user.stat || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user)) return - if(istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) - var/obj/item/ammo_box/magazine/internal/cylinder/C = magazine - C.spin() - chamber_round(0) - playsound(get_turf(user), 'sound/weapons/revolver_spin.ogg', 50, 1) - user.visible_message("[usr] spins [src]'s chamber.", "You spin [src]'s chamber.") + if(!istype(magazine, /obj/item/ammo_box/magazine/internal/cylinder)) + return ..() + var/obj/item/ammo_box/magazine/internal/cylinder/C = magazine + C.spin() + chamber_round(0) + playsound(get_turf(user), 'sound/weapons/revolver_spin.ogg', 50, TRUE) + user.visible_message("[user] spins [src]'s chamber.", "You spin [src]'s chamber.") /obj/item/gun/projectile/revolver/can_shoot() return get_ammo(0,0) diff --git a/code/modules/projectiles/projectile/homing_projectiles.dm b/code/modules/projectiles/projectile/homing_projectiles.dm index e2e5d623182d..93d07b648abe 100644 --- a/code/modules/projectiles/projectile/homing_projectiles.dm +++ b/code/modules/projectiles/projectile/homing_projectiles.dm @@ -37,6 +37,7 @@ icon_state = "toolbox_default" hitsound = 'sound/weapons/smash.ogg' damage = 30 + nodamage = FALSE damage_type = BRUTE /obj/item/projectile/homing/magic/toolbox/on_range() diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index a839563d6ac1..c7b860841ee7 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -1,9 +1,18 @@ #define MAX_PILL_SPRITE 20 //max icon state of the pill sprites -#define MAX_MULTI_AMOUNT 20 // Max number of pills/patches that can be made at once #define MAX_UNITS_PER_PILL 100 // Max amount of units in a pill #define MAX_UNITS_PER_PATCH 30 // Max amount of units in a patch +#define MAX_UNITS_PER_BOTTLE 50 // Max amount of units in a bottle #define MAX_CUSTOM_NAME_LEN 64 // Max length of a custom pill/condiment/whatever +#define CHEMMASTER_PRODUCTION_MODE_PILLS 1 +#define CHEMMASTER_PRODUCTION_MODE_PATCHES 2 +#define CHEMMASTER_PRODUCTION_MODE_BOTTLES 3 +#define CHEMMASTER_MIN_PRODUCTION_MODE 1 +#define CHEMMASTER_MAX_PRODUCTION_MODE 3 +#define CHEMMASTER_MAX_PILLS 20 +#define CHEMMASTER_MAX_PATCHES 20 +#define CHEMMASTER_MAX_BOTTLES 5 + #define TRANSFER_TO_DISPOSAL 0 #define TRANSFER_TO_BEAKER 1 @@ -23,11 +32,27 @@ var/useramount = 30 // Last used amount var/pillamount = 10 var/patchamount = 10 + var/bottleamount = 1 + var/pillname = "" + var/patchname = "" + var/bottlename = "" var/bottlesprite = 1 + var/production_mode = CHEMMASTER_PRODUCTION_MODE_PILLS var/pillsprite = 1 var/printing = FALSE - var/static/list/pill_bottle_wrappers - var/static/list/bottle_styles + var/static/list/pill_bottle_wrappers = list( + COLOR_RED = "Red", + COLOR_GREEN = "Green", + COLOR_PALE_BTL_GREEN = "Pale Green", + COLOR_BLUE = "Blue", + COLOR_CYAN_BLUE = "Light Blue", + COLOR_TEAL = "Teal", + COLOR_YELLOW = "Yellow", + COLOR_ORANGE = "Orange", + COLOR_PINK = "Pink", + COLOR_MAROON = "Brown" + ) + var/static/list/bottle_styles = list("bottle", "small_bottle", "wide_bottle", "round_bottle", "reagent_bottle") var/list/safe_chem_list = list("antihol", "charcoal", "epinephrine", "insulin", "teporone", "silver_sulfadiazine", "salbutamol", "omnizine", "stimulants", "synaptizine", "potass_iodide", "oculine", "mannitol", "styptic_powder", "spaceacillin", "salglu_solution", "sal_acid", "cryoxadone", "blood", "synthflesh", "hydrocodone", @@ -198,6 +223,74 @@ P.name = "Chemical Analysis - [R.name]" spawn(50) printing = FALSE + if("set_production_mode") + var/new_mode = text2num(params["mode"]) + if(isnull(new_mode)) + return + production_mode = clamp(new_mode, CHEMMASTER_MIN_PRODUCTION_MODE, CHEMMASTER_MAX_PRODUCTION_MODE) + + // Pills + if("set_pills_style") + var/new_style = text2num(params["style"]) + if(isnull(new_style)) + return + pillsprite = clamp(new_style, 1, MAX_PILL_SPRITE) + if("set_pills_amount") + var/new_amount = text2num(params["amount"]) + if(isnull(new_amount)) + return + pillamount = clamp(new_amount, 1, CHEMMASTER_MAX_PILLS) + if("set_pills_name") + var/new_name = sanitize(params["name"]) + // Allow name to be set to empty + if(length(new_name) < 0 || length(new_name) > MAX_CUSTOM_NAME_LEN) + return + pillname = new_name + + // Patches + if("set_patches_amount") + var/new_amount = text2num(params["amount"]) + if(isnull(new_amount)) + return + patchamount = clamp(new_amount, 1, CHEMMASTER_MAX_PATCHES) + if("set_patches_name") + var/new_name = sanitize(params["name"]) + // Allow name to be set to empty + if(length(new_name) < 0 || length(new_name) > MAX_CUSTOM_NAME_LEN) + return + patchname = new_name + + // Bottles + if("set_bottles_style") + var/new_style = text2num(params["style"]) + if(isnull(new_style)) + return + bottlesprite = clamp(new_style, 1, length(bottle_styles)) + if("set_bottles_amount") + var/new_amount = text2num(params["amount"]) + if(isnull(new_amount)) + return + bottleamount = clamp(new_amount, 1, CHEMMASTER_MAX_BOTTLES) + if("set_bottles_name") + var/new_name = sanitize(params["name"]) + // Allow name to be set to empty + if(length(new_name) < 0 || length(new_name) > MAX_CUSTOM_NAME_LEN) + return + bottlename = new_name + + // Container Customization + if("clear_container_style") + if(!loaded_pill_bottle) + return + loaded_pill_bottle.wrapper_color = null + loaded_pill_bottle.cut_overlays() + if("set_container_style") + if(!loaded_pill_bottle) // wat? + return + var/new_color = params["style"] + if(pill_bottle_wrappers[new_color]) + loaded_pill_bottle.wrapper_color = new_color + loaded_pill_bottle.apply_wrap() else . = FALSE @@ -236,6 +329,76 @@ return var/obj/item/reagent_containers/food/condiment/P = new(loc) reagents.trans_to(P, 50) + if("create_pills") + var/medicine_name = pillname + var/count = pillamount + var/amount_per_pill = clamp(reagents.total_volume / count, 0, MAX_UNITS_PER_PILL) + if(length(pillname) <= 0 || isnull(pillname)) + medicine_name = "[reagents.get_master_reagent_name()] ([amount_per_pill]u)" + + if(condi || !reagents.total_volume) + return + + for(var/i in 1 to count) + if(reagents.total_volume <= 0) + to_chat(ui.user, "Not enough reagents to create these pills!") + return + + var/obj/item/reagent_containers/pill/P = new(loc) + P.name = "[medicine_name] pill" + P.pixel_x = rand(-7, 7) // Random position + P.pixel_y = rand(-7, 7) + P.icon_state = "pill[pillsprite]" + reagents.trans_to(P, amount_per_pill) + // Load the pills in the bottle if there's one loaded + if(istype(loaded_pill_bottle) && loaded_pill_bottle.can_be_inserted(P, TRUE)) + P.forceMove(loaded_pill_bottle) + if("create_patches") + if(condi || !reagents.total_volume) + return + + var/medicine_name = patchname + var/count = patchamount + if(length(medicine_name) <= 0 || isnull(medicine_name)) + medicine_name = reagents.get_master_reagent_name() + var/amount_per_patch = clamp(reagents.total_volume / count, 0, MAX_UNITS_PER_PATCH) + var/is_medical_patch = chemical_safety_check(reagents) + for(var/i in 1 to count) + if(reagents.total_volume <= 0) + to_chat(ui.user, "Not enough reagents to create these patches!") + return + + var/obj/item/reagent_containers/patch/P = new(loc) + P.name = "[medicine_name] patch" + P.pixel_x = rand(-7, 7) // random position + P.pixel_y = rand(-7, 7) + reagents.trans_to(P, amount_per_patch) + if(is_medical_patch) + P.instant_application = TRUE + P.icon_state = "bandaid_med" + // Load the patches in the bottle if there's one loaded + if(istype(loaded_pill_bottle) && loaded_pill_bottle.can_be_inserted(P, TRUE)) + P.forceMove(loaded_pill_bottle) + if("create_bottles") + if(condi || !reagents.total_volume) + return + + var/medicine_name = bottlename + var/count = bottleamount + if(length(medicine_name) <= 0 || isnull(medicine_name)) + medicine_name = reagents.get_master_reagent_name() + var/amount_per_bottle = clamp(reagents.total_volume / count, 0, MAX_UNITS_PER_BOTTLE) + for(var/i in 1 to count) + if(reagents.total_volume <= 0) + to_chat(ui.user, "Not enough reagents to create these bottles!") + return + + var/obj/item/reagent_containers/glass/bottle/reagent/P = new(loc) + P.name = "[medicine_name] bottle" + P.pixel_x = rand(-7, 7) // random position + P.pixel_y = rand(-7, 7) + P.icon_state = length(bottle_styles) && bottle_styles[bottlesprite] || "bottle" + reagents.trans_to(P, amount_per_bottle) else return FALSE @@ -256,7 +419,7 @@ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "ChemMaster", name, 575, 500) + ui = new(user, src, ui_key, "ChemMaster", name, 575, 600) ui.open() /obj/machinery/chem_master/ui_data(mob/user) @@ -268,6 +431,7 @@ data["loaded_pill_bottle_name"] = loaded_pill_bottle.name data["loaded_pill_bottle_contents_len"] = loaded_pill_bottle.contents.len data["loaded_pill_bottle_storage_slots"] = loaded_pill_bottle.storage_slots + data["loaded_pill_bottle_style"] = loaded_pill_bottle.wrapper_color data["beaker"] = beaker ? TRUE : FALSE if(beaker) @@ -283,6 +447,9 @@ data["beaker_reagents"] = list() data["buffer_reagents"] = list() + data["pillamount"] = pillamount + data["patchamount"] = patchamount + data["bottleamount"] = bottleamount data["pillsprite"] = pillsprite data["bottlesprite"] = bottlesprite data["mode"] = mode @@ -291,6 +458,56 @@ // Transfer modal information if there is one data["modal"] = ui_modal_data(src) + data["production_mode"] = production_mode + + data["pillname"] = pillname + data["patchname"] = patchname + data["bottlename"] = bottlename + + data["maxpills"] = CHEMMASTER_MAX_PILLS + data["maxpatches"] = CHEMMASTER_MAX_PATCHES + data["maxbottles"] = CHEMMASTER_MAX_BOTTLES + + if(reagents.total_volume) + var/amount_per_pill = clamp(reagents.total_volume / pillamount, 0, MAX_UNITS_PER_PILL) + data["pillplaceholdername"] = "[reagents.get_master_reagent_name()] ([amount_per_pill]u)" + var/amount_per_patch = clamp(reagents.total_volume / patchamount, 0, MAX_UNITS_PER_PATCH) + data["patchplaceholdername"] = "[reagents.get_master_reagent_name()] ([amount_per_patch]u)" + data["bottleplaceholdername"] = reagents.get_master_reagent_name() + + return data + +/obj/machinery/chem_master/ui_static_data(mob/user) + var/list/data = list() + + data["maxnamelength"] = MAX_CUSTOM_NAME_LEN + + var/pill_styles = list() + for(var/i in 1 to MAX_PILL_SPRITE) + pill_styles += list(list( + "id" = i, + "sprite" = "pill[i].png", + )) + data["pillstyles"] = pill_styles + + var/bottle_styles_with_sprite = list() + var/bottle_style_indexer = 0 + for(var/style in bottle_styles) + bottle_style_indexer++ + bottle_styles_with_sprite += list(list( + "id" = bottle_style_indexer, + "sprite" = "[style].png", + )) + data["bottlestyles"] = bottle_styles_with_sprite + + var/pill_bottle_styles[0] + for(var/style in pill_bottle_wrappers) + pill_bottle_styles += list(list( + "color" = style, + "name" = pill_bottle_wrappers[style], + )) + data["containerstyles"] = pill_bottle_styles + return data /** @@ -323,25 +540,6 @@ arguments["analysis"] = result ui_modal_message(src, id, "", null, arguments) - if("change_pill_bottle_style") - if(!loaded_pill_bottle) - return - if(!pill_bottle_wrappers) - pill_bottle_wrappers = list( - "CLEAR" = "Default", - COLOR_RED = "Red", - COLOR_GREEN = "Green", - COLOR_PALE_BTL_GREEN = "Pale green", - COLOR_BLUE = "Blue", - COLOR_CYAN_BLUE = "Light blue", - COLOR_TEAL = "Teal", - COLOR_YELLOW = "Yellow", - COLOR_ORANGE = "Orange", - COLOR_PINK = "Pink", - COLOR_MAROON = "Brown" - ) - var/current = pill_bottle_wrappers[loaded_pill_bottle.wrapper_color] || "Default" - ui_modal_choice(src, id, "Please select a wrapper color:", null, arguments, current, pill_bottle_wrappers) if("addcustom") if(!beaker || !beaker.reagents.total_volume) return @@ -354,78 +552,11 @@ if(!condi || !reagents.total_volume) return ui_modal_input(src, id, "Please name your new condiment pack:", null, arguments, reagents.get_master_reagent_name(), MAX_CUSTOM_NAME_LEN) - if("create_pill") - if(condi || !reagents.total_volume) - return - - var/num = arguments["num"] || 1 // Multi puts a string in `num`, single leaves it null - num = clamp(round(text2num(num)), 0, MAX_MULTI_AMOUNT) - if(!num) - return - arguments["num"] = num - - var/amount_per_pill = clamp(reagents.total_volume / num, 0, MAX_UNITS_PER_PILL) - var/default_name = "[reagents.get_master_reagent_name()] ([amount_per_pill]u)" - var/pills_text = num == 1 ? "new pill" : "[num] new pills" - ui_modal_input(src, id, "Please name your [pills_text]:", null, arguments, default_name, MAX_CUSTOM_NAME_LEN) - if("create_pill_multiple") - if(condi || !reagents.total_volume) - return - ui_modal_input(src, id, "Please enter the amount of pills to make (max [MAX_MULTI_AMOUNT] at a time):", null, arguments, pillamount, 5) - if("change_pill_style") - var/list/choices = list() - for(var/i = 1 to MAX_PILL_SPRITE) - choices += "pill[i].png" - ui_modal_bento(src, id, "Please select the new style for pills:", null, arguments, pillsprite, choices) - if("create_patch") - if(condi || !reagents.total_volume) - return - - var/num = arguments["num"] || 1 // Multi puts a string in `num`, single leaves it null - num = clamp(round(text2num(num)), 0, MAX_MULTI_AMOUNT) - if(!num) - return - arguments["num"] = num - - var/amount_per_patch = clamp(reagents.total_volume / num, 0, MAX_UNITS_PER_PATCH) - var/default_name = "[reagents.get_master_reagent_name()] ([amount_per_patch]u)" - var/patches_text = num == 1 ? "new patch" : "[num] new patches" - ui_modal_input(src, id, "Please name your [patches_text]:", null, arguments, default_name, MAX_CUSTOM_NAME_LEN) - if("create_patch_multiple") - if(condi || !reagents.total_volume) - return - ui_modal_input(src, id, "Please enter the amount of patches to make (max [MAX_MULTI_AMOUNT] at a time):", null, arguments, pillamount, 5) - if("create_bottle") - if(condi || !reagents.total_volume) - return - ui_modal_input(src, id, "Please name your bottle:", null, arguments, reagents.get_master_reagent_name(), MAX_CUSTOM_NAME_LEN) - if("change_bottle_style") - if(!bottle_styles) - bottle_styles = list("bottle", "small_bottle", "wide_bottle", "round_bottle", "reagent_bottle") - var/list/bottle_styles_png = list() - for(var/style in bottle_styles) - bottle_styles_png += "[style].png" - ui_modal_bento(src, id, "Please select the new style for bottles:", null, arguments, bottlesprite, bottle_styles_png) else return FALSE if(UI_MODAL_ANSWER) var/answer = params["answer"] switch(id) - if("change_pill_bottle_style") - if(!pill_bottle_wrappers || !loaded_pill_bottle) // wat? - return - var/color = "CLEAR" - for(var/col in pill_bottle_wrappers) - var/col_name = pill_bottle_wrappers[col] - if(col_name == answer) - color = col - break - if(length(color) && color != "CLEAR") - loaded_pill_bottle.wrapper_color = color - loaded_pill_bottle.apply_wrap() - else - loaded_pill_bottle.wrapper_color = null - loaded_pill_bottle.cut_overlays() if("addcustom") var/amount = isgoodnumber(text2num(answer)) if(!amount || !arguments["id"]) @@ -446,89 +577,6 @@ P.name = "[answer] pack" P.desc = "A small condiment pack. The label says it contains [answer]." reagents.trans_to(P, 10) - if("create_pill") - if(condi || !reagents.total_volume) - return - var/count = text2num(arguments["num"]) - if(!count) - return - - if(!length(answer)) - answer = reagents.get_master_reagent_name() - var/amount_per_pill = clamp(reagents.total_volume / count, 0, MAX_UNITS_PER_PILL) - while(count--) - if(reagents.total_volume <= 0) - to_chat(usr, "Not enough reagents to create these pills!") - return - - var/obj/item/reagent_containers/pill/P = new(loc) - P.name = "[answer] pill" - P.pixel_x = rand(-7, 7) // Random position - P.pixel_y = rand(-7, 7) - P.icon_state = "pill[pillsprite]" - reagents.trans_to(P, amount_per_pill) - // Load the pills in the bottle if there's one loaded - if(istype(loaded_pill_bottle) && loaded_pill_bottle.can_be_inserted(P, TRUE)) - P.forceMove(loaded_pill_bottle) - if("create_pill_multiple") - if(condi || !reagents.total_volume) - return - ui_act("modal_open", list("id" = "create_pill", "arguments" = list("num" = answer)), ui, state) - if("change_pill_style") - var/new_style = clamp(text2num(answer) || 0, 0, MAX_PILL_SPRITE) - if(!new_style) - return - pillsprite = new_style - if("create_patch") - if(condi || !reagents.total_volume) - return - var/count = text2num(arguments["num"]) - if(!count) - return - - if(!length(answer)) - answer = reagents.get_master_reagent_name() - var/amount_per_patch = clamp(reagents.total_volume / count, 0, MAX_UNITS_PER_PATCH) - var/is_medical_patch = chemical_safety_check(reagents) - while(count--) - if(reagents.total_volume <= 0) - to_chat(usr, "Not enough reagents to create these patches!") - return - - var/obj/item/reagent_containers/patch/P = new(loc) - P.name = "[answer] patch" - P.pixel_x = rand(-7, 7) // random position - P.pixel_y = rand(-7, 7) - reagents.trans_to(P, amount_per_patch) - if(is_medical_patch) - P.instant_application = TRUE - P.icon_state = "bandaid_med" - // Load the patches in the bottle if there's one loaded - if(istype(loaded_pill_bottle) && loaded_pill_bottle.can_be_inserted(P, TRUE)) - P.forceMove(loaded_pill_bottle) - if("create_patch_multiple") - if(condi || !reagents.total_volume) - return - ui_act("modal_open", list("id" = "create_patch", "arguments" = list("num" = answer)), ui, state) - if("create_bottle") - if(condi || !reagents.total_volume) - return - - if(!length(answer)) - answer = reagents.get_master_reagent_name() - var/obj/item/reagent_containers/glass/bottle/reagent/P = new(loc) - P.name = "[answer] bottle" - P.pixel_x = rand(-7, 7) // random position - P.pixel_y = rand(-7, 7) - P.icon_state = length(bottle_styles) && bottle_styles[bottlesprite] || "bottle" - reagents.trans_to(P, 50) - if("change_bottle_style") - if(!bottle_styles) - return - var/new_sprite = text2num(answer) || 1 - if(new_sprite < 1 || new_sprite > length(bottle_styles)) - return - bottlesprite = new_sprite else return FALSE else @@ -568,10 +616,19 @@ RefreshParts() #undef MAX_PILL_SPRITE -#undef MAX_MULTI_AMOUNT #undef MAX_UNITS_PER_PILL #undef MAX_UNITS_PER_PATCH +#undef MAX_UNITS_PER_BOTTLE #undef MAX_CUSTOM_NAME_LEN +#undef CHEMMASTER_PRODUCTION_MODE_PILLS +#undef CHEMMASTER_PRODUCTION_MODE_PATCHES +#undef CHEMMASTER_PRODUCTION_MODE_BOTTLES +#undef CHEMMASTER_MIN_PRODUCTION_MODE +#undef CHEMMASTER_MAX_PRODUCTION_MODE +#undef CHEMMASTER_MAX_PILLS +#undef CHEMMASTER_MAX_PATCHES +#undef CHEMMASTER_MAX_BOTTLES + #undef TRANSFER_TO_DISPOSAL #undef TRANSFER_TO_BEAKER diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 0ff9334db4ee..bac5f3c2ef10 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -53,7 +53,9 @@ //All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.! /obj/item/slime_extract = list(), - /obj/item/reagent_containers/food = list() + /obj/item/reagent_containers/food = list(), + /obj/item/reagent_containers/pill = list(), + /obj/item/reagent_containers/patch = list() ) var/list/juice_items = list ( diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index 259512c15f67..dd1ef9b10c07 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -593,6 +593,8 @@ color = "#5BCBE1" addiction_chance = 1 addiction_threshold = 10 + allowed_overdose_process = TRUE + overdose_threshold = 35 harmless = FALSE taste_description = "antihistamine" @@ -608,6 +610,44 @@ M.visible_message("[M] looks a bit dazed.") return ..() +/datum/reagent/medicine/diphenhydramine/overdose_process(mob/living/M, severity) + var/list/overdose_info = ..() + var/effect = overdose_info[REAGENT_OVERDOSE_EFFECT] + var/update_flags = overdose_info[REAGENT_OVERDOSE_FLAGS] + if(severity == 1) + if(effect <= 2) + to_chat(M, "You feel parched.") + else if(effect <= 3) + to_chat(M, "You feel a little off.") + M.Dizzy(10 SECONDS) + else if(effect <= 5) + to_chat(M, "You feel a sudden head rush.") + M.emote("faint") + else if(effect <= 8) + M.Druggy(30 SECONDS) + + else if(severity == 2) + if(effect <= 15) + M.AdjustHallucinate(30 SECONDS) + if(effect <= 4) + M.visible_message("[M] suddenly and violently vomits!") + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.vomit(20) + else if(effect <= 10) + M.visible_message( + "[M] seems to be itching themselves incessantly!", + "You feel bugs crawling under your skin!" + ) + M.emote("scream") + else if(effect <= 15) + to_chat(M, "You feel a wave of drowsiness wash over you.") + M.SetSleeping(5 SECONDS) + else if(effect <= 20) + to_chat(M, "Something doesn't feel quite right!") + M.Druggy(30 SECONDS) + return list(effect, update_flags) + /datum/reagent/medicine/morphine name = "Morphine" id = "morphine" diff --git a/code/modules/reagents/chemistry/reagents/misc_reagents.dm b/code/modules/reagents/chemistry/reagents/misc_reagents.dm index 21992688b686..e928195a17f7 100644 --- a/code/modules/reagents/chemistry/reagents/misc_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/misc_reagents.dm @@ -246,7 +246,7 @@ taste_description = "a carpet...what?" /datum/reagent/carpet/reaction_turf(turf/simulated/T, volume) - if(istype(T, /turf/simulated/floor/plating) || istype(T, /turf/simulated/floor/plasteel)) + if((istype(T, /turf/simulated/floor/plating) || istype(T, /turf/simulated/floor/plasteel)) && !islava(T)) var/turf/simulated/floor/F = T F.ChangeTurf(/turf/simulated/floor/carpet) ..() diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm index 2e531fb2c63f..7e4f46626940 100644 --- a/code/modules/reagents/reagent_containers/glass_containers.dm +++ b/code/modules/reagents/reagent_containers/glass_containers.dm @@ -307,6 +307,11 @@ container_type = OPENCONTAINER dog_fashion = /datum/dog_fashion/head/bucket +/obj/item/reagent_containers/glass/bucket/update_overlays() + . = ..() + if(!is_open_container()) + . += "lid_[initial(icon_state)]" + /obj/item/reagent_containers/glass/bucket/wooden name = "wooden bucket" icon_state = "woodbucket" diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index ea31992b7d48..a87cec73c93a 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -19,6 +19,10 @@ possible_transfer_amounts = null var/delay = CLICK_CD_RANGE * 2 +/obj/item/reagent_containers/spray/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CAN_POINT_WITH, ROUNDSTART_TRAIT) + /obj/item/reagent_containers/spray/afterattack(atom/A, mob/user) if(isstorage(A) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \ || istype(A, /obj/item/reagent_containers) || istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics)) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 5f6d2b0f6813..601f25a09f0a 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -3,8 +3,8 @@ #define DIRECTION_REVERSED -1 #define IS_OPERATING (operating && can_conveyor_run()) -GLOBAL_LIST_INIT(conveyor_belts, list()) //Saves us having to look through the entire machines list for our things -GLOBAL_LIST_INIT(conveyor_switches, list()) +GLOBAL_LIST_EMPTY(conveyor_belts) //Saves us having to look through the entire machines list for our things +GLOBAL_LIST_EMPTY(conveyor_switches) //conveyor2 is pretty much like the original, except it supports corners, but not diverters. //Except this is pretty heavily modified so it's more like conveyor2.5 diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index 89c1502e61ba..ed79318dbfa3 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -81,6 +81,26 @@ build_path = /obj/item/clothing/glasses/hud/skills category = list("Equipment") +/datum/design/jani_hud + name = "Janitor HUD" + desc = "A heads-up display that scans for messes and alerts the user. Good for finding puddles hiding under catwalks." + id = "jani_hud" + req_tech = list("biotech" = 2, "magnets" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/glasses/hud/janitor + category = list("Equipment", "Janitorial") + +/datum/design/jani_night_vision_goggles + name = "Night Vision Janitor HUD" + desc = "A janitorial filth scanner fitted with a light amplifier." + id = "night_vision_jani" + req_tech = list("biotech" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) + build_path = /obj/item/clothing/glasses/hud/janitor/night + category = list("Equipment", "Janitorial") + /datum/design/mesons name = "Optical Meson Scanners" desc = "Used for seeing walls, floors, and stuff through anything." diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index a82989c14039..91620b6e399a 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -386,6 +386,17 @@ build_path = /obj/item/organ/internal/cyberimp/arm/toolset_abductor category = list("Medical") +/datum/design/cyberimp_jani_hud + name = "Janitor HUD Implant" + desc = "These cybernetic eye implants will display a filth HUD over everything you see. Wiggle eyes to control." + id = "ci-janihud" + req_tech = list("materials" = 5, "engineering" = 4, "programming" = 4, "biotech" = 4) + build_type = PROTOLATHE | MECHFAB + construction_time = 5 SECONDS + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500) + build_path = /obj/item/organ/internal/cyberimp/eyes/hud/jani + category = list("Medical") + /datum/design/cyberimp_diagnostic_hud name = "Diagnostic HUD Implant" desc = "These cybernetic eye implants will display a diagnostic HUD over everything you see. Wiggle eyes to control." diff --git a/code/modules/research/designs/mining_designs.dm b/code/modules/research/designs/mining_designs.dm index 1fa33e6d27b2..3b4e5a1c1cb9 100644 --- a/code/modules/research/designs/mining_designs.dm +++ b/code/modules/research/designs/mining_designs.dm @@ -110,3 +110,13 @@ materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) build_path = /obj/item/borg/upgrade/modkit/aoe/turfs category = list("Mining", "Cyborg Upgrade Modules") + +/datum/design/lavarods + name = "Lava-Resistant Iron Rods" + desc = "Treated, specialized iron rods. When exposed to the vacuum of space their coating breaks off, but they can hold up against the extreme heat of molten liquids." + id = "lavarod" + req_tech = list("materials" = 7, "engineering" = 5) + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_PLASMA = 1000, MAT_TITANIUM = 1000) + build_path = /obj/item/stack/rods/lava + category = list("Mining") diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index cd26c0b1817d..6d69660f7818 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -503,7 +503,7 @@ backpack_contents = list( /obj/item/grenade/chem_grenade/antiweed = 2, - /obj/item/push_broom, + /obj/item/push_broom = 1, /obj/item/storage/box/lights/mixed = 1, /obj/item/melee/flyswatter = 1 ) @@ -512,7 +512,7 @@ name = "RT Janitor (Amber)" suit = /obj/item/clothing/suit/armor/vest/ert/janitor head = /obj/item/clothing/head/helmet/ert/janitor - glasses = /obj/item/clothing/glasses/sunglasses + glasses = /obj/item/clothing/glasses/hud/janitor/sunglasses r_pocket = /obj/item/flashlight/seclite suit_store = /obj/item/gun/energy/disabler @@ -523,12 +523,13 @@ /datum/outfit/job/centcom/response_team/janitorial/red name = "RT Janitor (Red)" suit = /obj/item/clothing/suit/space/hardsuit/ert/janitor - glasses = /obj/item/clothing/glasses/hud/security/sunglasses + glasses = /obj/item/clothing/glasses/hud/janitor/sunglasses shoes = /obj/item/clothing/shoes/galoshes/dry/lightweight r_pocket = /obj/item/scythe/tele suit_store = /obj/item/gun/energy/gun cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/eyes/hud/security, /obj/item/organ/internal/cyberimp/arm/janitorial/advanced, /obj/item/organ/internal/cyberimp/chest/nutriment/hardened ) @@ -540,7 +541,7 @@ /datum/outfit/job/centcom/response_team/janitorial/gamma name = "RT Janitor (Gamma)" - glasses = /obj/item/clothing/glasses/night + glasses = /obj/item/clothing/glasses/hud/janitor/night back = /obj/item/mod/control/pre_equipped/responsory/janitor r_pocket = /obj/item/scythe/tele shoes = /obj/item/clothing/shoes/magboots/elite diff --git a/code/modules/ruins/ghost_bar.dm b/code/modules/ruins/ghost_bar.dm index 9042475276b5..c957eb01dabf 100644 --- a/code/modules/ruins/ghost_bar.dm +++ b/code/modules/ruins/ghost_bar.dm @@ -19,7 +19,7 @@ our_characters_names += saves.real_name our_character_saves += list(saves.real_name = saves) - var/character_name = input("Select a character", "Character selection") as null|anything in our_characters_names + var/character_name = tgui_input_list(user, "Select a character", "Character selection", our_characters_names) if(!character_name) return if(QDELETED(user)) diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 9c37adbb8c0a..bc5d0dafa087 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -329,7 +329,7 @@ L[S.name] = S playsound(console, 'sound/machines/terminal_prompt.ogg', 25, 0) - var/selected = input("Choose location to jump to", "Locations", null) as null|anything in L + var/selected = tgui_input_list(target, "Choose location to jump to", "Locations", L) if(QDELETED(src) || QDELETED(target) || !isliving(target)) return playsound(src, "terminal_type", 25, 0) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index b60d8eab24c7..48736aab74b4 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -166,7 +166,7 @@ var/list/choices = list() for(var/obj/I in items_list) choices["[I.name]"] = image(icon = I.icon, icon_state = I.icon_state) - var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user)) + var/choice = show_radial_menu(user, user, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user)) if(!check_menu(user)) return var/obj/item/selected @@ -481,6 +481,7 @@ desc = "A modification to a users arm, allowing them to use a vortex core energy feedback, to parry, reflect, and even empower projectile attacks. Rumors that it runs on the user's blood are unconfirmed." icon_state = "v1_arm" item_state = "v1_arm" + icon = 'icons/obj/items.dmi' sprite_sheets_inhand = list("Drask" = 'icons/mob/clothing/species/drask/held.dmi', "Vox" = 'icons/mob/clothing/species/vox/held.dmi') force = 20 //bonk, not sharp attack_verb = list("slamed", "punched", "parried", "judged", "styled on", "disrespected", "interrupted", "gored") diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 3637f1f4f83d..5d7fb4d2bb57 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -61,3 +61,11 @@ aug_message = "Job indicator icons pop up in your vision. That is not a certified surgeon..." HUD_type = DATA_HUD_SECURITY_ADVANCED examine_extensions = list(EXAMINE_HUD_SECURITY_READ) + +/obj/item/organ/internal/cyberimp/eyes/hud/jani + name = "Janitor HUD implant" + desc = "These cybernetic eye implants will display a filth HUD over everything you see." + implant_color = "#AF00AF" + origin_tech = "materials=4;engineering=4;biotech=4" + aug_message = "You scan for filth spots around you..." + HUD_type = DATA_HUD_JANITOR diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 43d40ddec061..f9f56bbf8d01 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -273,8 +273,8 @@ origin_tech = "materials=5;programming=4;biotech=4" /obj/item/organ/internal/cyberimp/brain/wire_interface/insert(mob/living/carbon/M, special = FALSE) + ..() ADD_TRAIT(M, TRAIT_SHOW_WIRE_INFO, "show_wire_info[UID()]") - return ..() /obj/item/organ/internal/cyberimp/brain/wire_interface/remove(mob/living/carbon/M, special = FALSE) REMOVE_TRAIT(M, TRAIT_SHOW_WIRE_INFO, "show_wire_info[UID()]") @@ -504,8 +504,8 @@ E.droplimb(TRUE) //lego disasemble sound /obj/item/organ/internal/cyberimp/chest/ipc_joints/magnetic_joints/insert(mob/living/carbon/M, special = FALSE) + ..() ADD_TRAIT(M, TRAIT_IPC_JOINTS_MAG, "ipc_joint[UID()]") - return ..() /obj/item/organ/internal/cyberimp/chest/ipc_joints/magnetic_joints/remove(mob/living/carbon/M, special = FALSE) REMOVE_TRAIT(M, TRAIT_IPC_JOINTS_MAG, "ipc_joint[UID()]") @@ -526,9 +526,9 @@ return weaken_time /obj/item/organ/internal/cyberimp/chest/ipc_joints/sealed/insert(mob/living/carbon/M, special = FALSE) + ..() ADD_TRAIT(M, TRAIT_IPC_JOINTS_SEALED, "ipc_joint[UID()]") owner.physiology.stamina_mod *= 1.15 //15% more stamina damage, representing extra friction in limbs. I guess. - return ..() /obj/item/organ/internal/cyberimp/chest/ipc_joints/sealed/remove(mob/living/carbon/M, special = FALSE) REMOVE_TRAIT(M, TRAIT_IPC_JOINTS_SEALED, "ipc_joint[UID()]") diff --git a/code/modules/surgery/organs/brain.dm b/code/modules/surgery/organs/brain.dm index dae96b5f24f8..36fd7ed612e3 100644 --- a/code/modules/surgery/organs/brain.dm +++ b/code/modules/surgery/organs/brain.dm @@ -9,7 +9,7 @@ throw_range = 5 origin_tech = "biotech=5" attack_verb = list("attacked", "slapped", "whacked") - var/mob/living/carbon/brain/brainmob = null + var/mob/living/brain/brainmob = null organ_tag = "brain" parent_organ = "head" slot = "brain" diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index dc77bae859c1..f20903ee0252 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -310,12 +310,6 @@ emagged = FALSE -/obj/item/organ/internal/heart/cybernetic/upgraded/emp_act(severity) - ..() - if(emp_proof) - return - necrotize() - /obj/item/organ/internal/heart/cybernetic/upgraded/proc/shock_heart(mob/living/carbon/human/source, intensity) SIGNAL_HANDLER_DOES_SLEEP diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 4a913730ba9d..682dd5469202 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -182,9 +182,10 @@ H.f_style = "Shaved" C.m_styles["head"] = "None" user.visible_message( - "[user] has attached [C]'s [src] to the [amputation_point].", - "You have attached [C]'s [src] to the [amputation_point].") - return TRUE + "[user] has attached [C]'s [src] to the [amputation_point].", + "You have attached [C]'s [src] to the [amputation_point].") + return TRUE + /obj/item/organ/external/replaced(mob/living/carbon/human/target) owner = target loc = null @@ -306,8 +307,7 @@ //And pass the pain around var/obj/item/organ/external/target = pick(possible_points) target.receive_damage(brute, burn, sharp, used_weapon, forbidden_limbs + src, ignore_resists = TRUE) //If the damage was reduced before, don't reduce it again - - if(dismember_at_max_damage && body_part != UPPER_TORSO && body_part != LOWER_TORSO && !HAS_TRAIT(owner, TRAIT_IPC_JOINTS_SEALED)) // We've ensured all damage to the mob is retained, now let's drop it, if necessary. + if(owner && dismember_at_max_damage && body_part != UPPER_TORSO && body_part != LOWER_TORSO && !HAS_TRAIT(owner, TRAIT_IPC_JOINTS_SEALED)) // We've ensured all damage to the mob is retained, now let's drop it, if necessary. droplimb(1) //Clean loss, just drop the limb and be done var/mob/living/carbon/owner_old = owner //Need to update health, but need a reference in case the below check cuts off a limb. diff --git a/code/modules/surgery/organs/organ_icon.dm b/code/modules/surgery/organs/organ_icon.dm index 3e8364f001a5..fa5d3f53d58b 100644 --- a/code/modules/surgery/organs/organ_icon.dm +++ b/code/modules/surgery/organs/organ_icon.dm @@ -1,5 +1,3 @@ -GLOBAL_LIST_EMPTY(limb_icon_cache) - /obj/item/organ/external/proc/compile_icon() // I do this so the head's overlays don't get obliterated for(var/child_i in child_icons) diff --git a/code/modules/surgery/organs/robolimbs.dm b/code/modules/surgery/organs/robolimbs.dm index 2696c4150f84..8f53727e6971 100644 --- a/code/modules/surgery/organs/robolimbs.dm +++ b/code/modules/surgery/organs/robolimbs.dm @@ -1,5 +1,4 @@ GLOBAL_LIST_EMPTY(all_robolimbs) -GLOBAL_LIST_EMPTY(chargen_robolimbs) GLOBAL_LIST_EMPTY(selectable_robolimbs) GLOBAL_DATUM(basic_robolimb, /datum/robolimb) diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index f4a897775589..a0e8fc686dc8 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -307,7 +307,7 @@ organs -= O organs[O.name] = O - var/obj/item/organ/internal/I = input("Remove which organ?", "Surgery", null, null) as null|anything in organs + var/obj/item/organ/internal/I = tgui_input_list(user, "Remove which organ?", "Surgery", organs) if(I && user && target && user.Adjacent(target) && user.get_active_hand() == tool) extracting = organs[I] if(!extracting) diff --git a/code/modules/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index 7200fbf1ec31..1aaa027b0221 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -68,7 +68,7 @@ for(var/i in 1 to list_size) names += "Subject [target.gender == MALE ? "I" : "O"]-[pick("A", "B", "C", "D", "E")]-[rand(10000, 99999)]" names += random_name(target.gender, species_names) //give one normal name in case they want to do regular plastic surgery - var/chosen_name = input(user, "Choose a new name to assign.", "Plastic Surgery") as null|anything in names + var/chosen_name = tgui_input_list(user, "Choose a new name to assign", "Plastic Surgery", names) if(!chosen_name) return var/oldname = target.real_name diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index def103bbb168..f1eb83d8f2ac 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -472,7 +472,7 @@ organs -= O organs[O.name] = O - I = input("Remove which organ?", "Surgery", null, null) as null|anything in organs + I = tgui_input_list(user, "Remove which organ?", "Surgery", organs) if(I && user && target && user.Adjacent(target) && user.get_active_hand() == tool) I = organs[I] if(!I) @@ -644,7 +644,7 @@ return ..() /datum/surgery_step/robotics/external/customize_appearance/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/chosen_appearance = input(user, "Select the company appearance for this limb.", "Limb Company Selection") as null|anything in GLOB.selectable_robolimbs + var/chosen_appearance = tgui_input_list(user, "Select the company appearance for this limb.", "Limb Company Selection", GLOB.selectable_robolimbs) if(!chosen_appearance) return SURGERY_STEP_INCOMPLETE var/obj/item/organ/external/affected = target.get_organ(target_zone) @@ -701,7 +701,7 @@ to_chat(user, "The multitool is out of range! Please try again.") return SURGERY_STEP_INCOMPLETE var/static/list/gender_list = list("Male" = MALE, "Female" = FEMALE, "Genderless" = PLURAL, "Object" = NEUTER) - var/gender_key = input(user, "Choose a gender for this machine.", "Select Gender", target.gender) as null|anything in gender_list + var/gender_key = tgui_input_list(user, "Choose a gender for this machine", "Select Gender", gender_list) if(!gender_key) to_chat(user, "You must choose a gender! Please try again.") return SURGERY_STEP_INCOMPLETE diff --git a/code/modules/telesci/rcs.dm b/code/modules/telesci/rcs.dm index 28475ce55d8c..25825bb8d013 100644 --- a/code/modules/telesci/rcs.dm +++ b/code/modules/telesci/rcs.dm @@ -68,7 +68,7 @@ if(emagged) // Add an 'Unknown' entry at the end if it's emagged L += "**Unknown**" - var/select = input("Please select a telepad.", "RCS") in L + var/select = tgui_input_list(user, "Please select a telepad.", "RCS", L) if(select == "**Unknown**") // Randomise the teleport location pad = random_coords() else // Else choose the value of the selection diff --git a/code/modules/tgui/modules/appearance_changer.dm b/code/modules/tgui/modules/appearance_changer.dm index dd7f90950551..91d34bc8df56 100644 --- a/code/modules/tgui/modules/appearance_changer.dm +++ b/code/modules/tgui/modules/appearance_changer.dm @@ -95,7 +95,7 @@ if("hair_gradient") if(can_change(APPEARANCE_HAIR) && length(valid_hairstyles)) - var/new_style = input("Please select gradient style.", "Hair Gradient", head_organ.h_grad_style) as null|anything in GLOB.hair_gradients_list + var/new_style = tgui_input_list(usr, "Please select gradient style", "Hair Gradient", GLOB.hair_gradients_list) if(new_style) owner.change_hair_gradient(style = new_style) @@ -231,7 +231,7 @@ data["head_accessory_styles"] = head_accessory_styles data["head_accessory_style"] = head_organ ? head_organ.ha_style : "None" - if(!(user.dna.species.bodyflags & BALD)) + if(!(owner.dna.species.bodyflags & BALD)) data["change_hair"] = can_change(APPEARANCE_HAIR) if(data["change_hair"]) var/list/hair_styles = list() @@ -242,7 +242,7 @@ data["change_hair_color"] = can_change(APPEARANCE_HAIR_COLOR) data["change_secondary_hair_color"] = can_change(APPEARANCE_SECONDARY_HAIR_COLOR) - if(!(user.dna.species.bodyflags & SHAVED)) + if(!(owner.dna.species.bodyflags & SHAVED)) data["change_facial_hair"] = can_change(APPEARANCE_FACIAL_HAIR) if(data["change_facial_hair"]) var/list/facial_hair_styles = list() @@ -254,7 +254,7 @@ data["change_secondary_facial_hair_color"] = can_change(APPEARANCE_SECONDARY_FACIAL_HAIR_COLOR) data["change_hair_gradient"] = can_change(APPEARANCE_HAIR) && length(valid_hairstyles) - if(!ismachineperson(user)) + if(!ismachineperson(owner)) data["change_head_markings"] = can_change_markings("head") if(data["change_head_markings"]) var/m_style = owner.m_styles["head"] diff --git a/code/modules/tgui/modules/tgui_input_list.dm b/code/modules/tgui/modules/tgui_input_list.dm index c642ef6bc9d2..b9b34fffc9b4 100644 --- a/code/modules/tgui/modules/tgui_input_list.dm +++ b/code/modules/tgui/modules/tgui_input_list.dm @@ -19,6 +19,11 @@ return var/client/client = user user = client.mob + + /// Client does NOT have tgui_input on: Returns regular input + if(user.client?.prefs?.toggles2 & PREFTOGGLE_2_DISABLE_TGUI_LISTS) + return input(user, message, title) as null|anything in buttons + var/datum/tgui_list_input/input = new(user, message, title, buttons, timeout) input.ui_interact(user) input.wait() @@ -112,7 +117,7 @@ /datum/tgui_list_input/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.always_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "ListInput", title, 325, 330, master_ui, state) + ui = new(user, src, ui_key, "ListInput", title, 325, 355, master_ui, state) ui.set_autoupdate(FALSE) ui.open() diff --git a/code/modules/tgui/states/contained.dm b/code/modules/tgui/states/contained.dm index 3fe0cfc6b79c..bee64b759e2d 100644 --- a/code/modules/tgui/states/contained.dm +++ b/code/modules/tgui/states/contained.dm @@ -4,9 +4,11 @@ * Checks that the user is inside the src_object. */ +/* GLOBAL_DATUM_INIT(contained_state, /datum/ui_state/contained_state, new) /datum/ui_state/contained_state/can_use_topic(atom/src_object, mob/user) if(!src_object.contains(user)) return STATUS_CLOSE return user.shared_ui_interaction(src_object) +*/ diff --git a/code/modules/tgui/states/notcontained.dm b/code/modules/tgui/states/notcontained.dm index cb05fd2ebfca..fd604cc78716 100644 --- a/code/modules/tgui/states/notcontained.dm +++ b/code/modules/tgui/states/notcontained.dm @@ -4,6 +4,7 @@ * Checks that the user is not inside src_object, and then makes the default checks. */ +/* GLOBAL_DATUM_INIT(notcontained_state, /datum/ui_state/notcontained_state, new) /datum/ui_state/notcontained_state/can_use_topic(atom/src_object, mob/user) @@ -21,3 +22,4 @@ GLOBAL_DATUM_INIT(notcontained_state, /datum/ui_state/notcontained_state, new) /mob/living/silicon/notcontained_can_use_topic(src_object) return default_can_use_topic(src_object) // Silicons use default bevhavior. +*/ diff --git a/code/modules/tgui/states/zlevel_state.dm b/code/modules/tgui/states/zlevel_state.dm index 892e5a0510ed..1f4ca3b37cf4 100644 --- a/code/modules/tgui/states/zlevel_state.dm +++ b/code/modules/tgui/states/zlevel_state.dm @@ -4,6 +4,7 @@ * Only checks that the Z-level of the user and src_object are the same. */ +/* GLOBAL_DATUM_INIT(z_state, /datum/ui_state/z_state, new) /datum/ui_state/z_state/can_use_topic(src_object, mob/user) @@ -12,3 +13,4 @@ GLOBAL_DATUM_INIT(z_state, /datum/ui_state/z_state, new) if(turf_obj && turf_usr && turf_obj.z == turf_usr.z) return STATUS_INTERACTIVE return STATUS_CLOSE +*/ diff --git a/code/modules/tgui/tgui_datum.dm b/code/modules/tgui/tgui_datum.dm index c9ab043cf4c0..3d5ba33166e8 100644 --- a/code/modules/tgui/tgui_datum.dm +++ b/code/modules/tgui/tgui_datum.dm @@ -68,7 +68,14 @@ src.interface = interface if(title) - src.title = sanitize(title) + + // SS220 EDIT - START + if(findtext_char(title, regex(@"[А-Яа-я]"))) + src.title = capitalize(sanitize(title, list("\proper"="", "\improper"=""))) + else + src.title = sanitize(title) + // SS220 EDIT -END + if(width) src.width = width if(height) diff --git a/config/example/config.toml b/config/example/config.toml index 9ed6d4634711..366ffba962f3 100644 --- a/config/example/config.toml +++ b/config/example/config.toml @@ -35,6 +35,7 @@ # SS220 CONFIGS # - gateway_configuration # - tts_configuration +# - antag_mix_gamemode_configuration ################################################################ @@ -147,7 +148,7 @@ ipc_screens = [ # Enable/disable the database on a whole sql_enabled = false # SQL version. If this is a mismatch, round start will be delayed -sql_version = 532205 +sql_version = 532206 # SQL server address. Can be an IP or DNS name sql_address = "127.0.0.1" # SQL server port @@ -247,6 +248,7 @@ gamemode_probabilities = [ {gamemode = "vampire", probability = 3}, {gamemode = "wizard", probability = 2}, {gamemode = "trifecta", probability = 3}, + {gamemode = "antag_mix", probability = 3}, ] # Do we want the amount of traitors to scale with population? traitor_scaling = true @@ -418,17 +420,21 @@ job_slot_amounts = [ # Engineering {name = "Life Support Specialist", lowpop = 3, highpop = 4}, {name = "Station Engineer", lowpop = 5, highpop = 6}, + {name = "Trainee Engineer", lowpop = 0, highpop = 0}, # Medical {name = "Chemist", lowpop = 2, highpop = 2}, {name = "Geneticist", lowpop = 2, highpop = 2}, {name = "Medical Doctor", lowpop = 5, highpop = 6}, + {name = "Intern", lowpop = 0, highpop = 0}, {name = "Virologist", lowpop = 1, highpop = 1}, # Science {name = "Roboticist", lowpop = 2, highpop = 2}, {name = "Scientist", lowpop = 6, highpop = 7}, + {name = "Student Scientist", lowpop = 0, highpop = 0}, # Security {name = "Detective", lowpop = 1, highpop = 1}, {name = "Security Officer", lowpop = 8, highpop = 9}, + {name = "Security Cadet", lowpop = 0, highpop = 0}, {name = "Warden", lowpop = 1, highpop = 1}, {name = "Internal Affairs Agent", lowpop = 2, highpop = 2}, # Service @@ -890,4 +896,149 @@ ffmpeg_cpuaffinity = "" # Force discord verification force_discord_verification = false +################################################################ + +[species_whitelist_configuration] + +species_whitelist_enabled = false + +################################################################ + + +[antag_mix_gamemode_configuration] +# This section contains all settings related to antag_mix gamemode + +# Budged multiplier of antag_mix gamemode. +# Which controlls how basic budget is multiplied, values less than 1 result in less antag budget +budget_multiplier = 1 +# Max fraction of antags relative to ready players. Value between 0 and 1 +max_antag_fraction = 1 +# Configuration of antag scenarios +# Must be list of objects with next params: +# - [tag] required param which identifies the antag scenarios +# - [params] antag scenario specific params +# +# Valid scenario params are: +# - [cost] optional param, which defines how much of `antag_mix` budget will be spent on it +# - [weight] optional param, which defines how often this scenario will be picked, related to others +# - [antag_cap] optional param, which defines how many players can be picked for this scenario at most +# - [candidates_required] optional param, which defines how many players must be picked for this scenario at least +# - [restricted_roles] optional param, which defines which roles are restricted from becoming candidate for this scenario. +# Must be list of strings +# - [protected_roles] optional param, which defines which roles are protected from becoming candidate for this scenario. +# Must be list of strings +# - [restricted_species] optional param, which defines which species are restricted from becoming candidate for this scenario. +# Must be list of strings +# Team antag specific: +# - [team_size] optional param, which defines how much of players must be present in one team. Must equal or lower than antag_cap, +# or otherwise scenario won't be rolled +[[antag_mix_gamemode_configuration.antag_scenarios_configuration]] +tag = "traitor" + +[antag_mix_gamemode_configuration.antag_scenarios_configuration.params] +"required_players" = 1 +"cost" = 1 +"weight" = 1 +"antag_cap" = 1 +"candidates_required" = 1 +"restricted_roles" = ["Cyborg"] +"protected_roles" = [ + "Security Cadet", + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain", + "Blueshield", + "Nanotrasen Representative", + "Magistrate", + "Internal Affairs Agent", + "Nanotrasen Navy Officer", + "Special Operations Officer", + "Syndicate Officer", + "Solar Federation General", +] + +[[antag_mix_gamemode_configuration.antag_scenarios_configuration]] +tag = "changeling" + +[antag_mix_gamemode_configuration.antag_scenarios_configuration.params] +"required_players" = 1 +"cost" = 1 +"weight" = 1 +"antag_cap" = 1 +"candidates_required" = 1 +"restricted_roles" = ["Cyborg", "AI"] +"protected_roles" = [ + "Security Cadet", + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain", + "Blueshield", + "Nanotrasen Representative", + "Magistrate", + "Internal Affairs Agent", + "Nanotrasen Navy Officer", + "Special Operations Officer", + "Solar Federation General", +] +"restricted_species" = ["Machine"] + +[[antag_mix_gamemode_configuration.antag_scenarios_configuration]] +tag = "vampire" + +[antag_mix_gamemode_configuration.antag_scenarios_configuration.params] +"required_players" = 1 +"cost" = 1 +"weight" = 1 +"antag_cap" = 1 +"candidates_required" = 1 +"restricted_roles" = ["Cyborg", "AI", "Chaplain"] +"protected_roles" = [ + "Security Cadet", + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain", + "Blueshield", + "Nanotrasen Representative", + "Magistrate", + "Internal Affairs Agent", + "Nanotrasen Navy Officer", + "Special Operations Officer", + "Solar Federation General", +] +"restricted_species" = ["Machine"] + +[[antag_mix_gamemode_configuration.antag_scenarios_configuration]] +tag = "blood_brothers" + +[antag_mix_gamemode_configuration.antag_scenarios_configuration.params] +"required_players" = 1 +"cost" = 1 +"weight" = 1 +"antag_cap" = 1 +"team_size" = 1 +"candidates_required" = 1 +"restricted_roles" = ["Cyborg", "AI"] +"protected_roles" = [ + "Security Cadet", + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain", + "Blueshield", + "Nanotrasen Representative", + "Magistrate", + "Internal Affairs Agent", + "Nanotrasen Navy Officer", + "Special Operations Officer", + "Solar Federation General", +] + + ################################################################ diff --git a/goon/code/datums/browserOutput.dm b/goon/code/datums/browserOutput.dm index 4ddfff35bcc0..9db8ede7fbcd 100644 --- a/goon/code/datums/browserOutput.dm +++ b/goon/code/datums/browserOutput.dm @@ -46,7 +46,9 @@ GLOBAL_LIST_EMPTY(bicon_cache) if(!winexists(owner, "browseroutput")) spawn() - alert(owner.mob, "Updated chat window does not exist. If you are using a custom skin file please allow the game to update.") + winset(usr, null, "command=.options") // Open their options and messages window + alert(owner.mob, "Updated chat window does not exist. Please post the contents of your 'Options and Messages' window that just opened to the #coding_chat channel on the Paradise Station discord. Please also upload skin.dmf to the same channel from the following folder in your Documents: BYOND/Skins/exadv1/spacestation13, then reconnect.") + stack_trace("[owner] had no browseroutput window! [owner]'s byond version is [owner.byond_version].[owner.byond_build]") broken = TRUE return 0 diff --git a/icons/_nanomaps/Cyberiad220_nanomap_z1.png b/icons/_nanomaps/Cyberiad220_nanomap_z1.png index a337e75675c5..f0602c98fa38 100644 Binary files a/icons/_nanomaps/Cyberiad220_nanomap_z1.png and b/icons/_nanomaps/Cyberiad220_nanomap_z1.png differ diff --git a/icons/_nanomaps/Delta220_nanomap_z1.png b/icons/_nanomaps/Delta220_nanomap_z1.png index ed69ddf80485..8553d6bf01e4 100644 Binary files a/icons/_nanomaps/Delta220_nanomap_z1.png and b/icons/_nanomaps/Delta220_nanomap_z1.png differ diff --git a/icons/_nanomaps/Delta_nanomap_z1.png b/icons/_nanomaps/Delta_nanomap_z1.png index ea08217e00d2..7f49a54c201a 100644 Binary files a/icons/_nanomaps/Delta_nanomap_z1.png and b/icons/_nanomaps/Delta_nanomap_z1.png differ diff --git a/icons/_nanomaps/MetaStation220_nanomap_z1.png b/icons/_nanomaps/MetaStation220_nanomap_z1.png index 28ef72697d8d..7aaa7ebafc5b 100644 Binary files a/icons/_nanomaps/MetaStation220_nanomap_z1.png and b/icons/_nanomaps/MetaStation220_nanomap_z1.png differ diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi index 247d0b32dd76..07e98e9ebc97 100644 Binary files a/icons/mob/actions/actions.dmi and b/icons/mob/actions/actions.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 4477b2d6c74a..e9fb5b582b2d 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi index 585217a02ce4..92c2d1ee3fa4 100644 Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 7bf07f9d8a74..0c3b6c4540a7 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index fcac5dc7111b..ddc2be552320 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/modsuit/species/modules_vox.dmi b/icons/mob/clothing/modsuit/species/modules_vox.dmi new file mode 100644 index 000000000000..110a62782d8a Binary files /dev/null and b/icons/mob/clothing/modsuit/species/modules_vox.dmi differ diff --git a/icons/mob/clothing/modsuit/species/vox_modsuits.dmi b/icons/mob/clothing/modsuit/species/vox_modsuits.dmi new file mode 100644 index 000000000000..026b15502577 Binary files /dev/null and b/icons/mob/clothing/modsuit/species/vox_modsuits.dmi differ diff --git a/icons/mob/clothing/species/drask/eyes.dmi b/icons/mob/clothing/species/drask/eyes.dmi index bbe5ca72ad9a..38a7b628099a 100644 Binary files a/icons/mob/clothing/species/drask/eyes.dmi and b/icons/mob/clothing/species/drask/eyes.dmi differ diff --git a/icons/mob/clothing/species/drask/gloves.dmi b/icons/mob/clothing/species/drask/gloves.dmi index c9e90d5b12a1..2b97e9bf3c24 100644 Binary files a/icons/mob/clothing/species/drask/gloves.dmi and b/icons/mob/clothing/species/drask/gloves.dmi differ diff --git a/icons/mob/clothing/species/drask/head.dmi b/icons/mob/clothing/species/drask/head.dmi index c3ef64d89213..baef8c01ccb1 100644 Binary files a/icons/mob/clothing/species/drask/head.dmi and b/icons/mob/clothing/species/drask/head.dmi differ diff --git a/icons/mob/clothing/species/drask/suit.dmi b/icons/mob/clothing/species/drask/suit.dmi index 1fde8dff5b89..b4bf22f7f1ed 100644 Binary files a/icons/mob/clothing/species/drask/suit.dmi and b/icons/mob/clothing/species/drask/suit.dmi differ diff --git a/icons/mob/clothing/species/drask/under/civilian.dmi b/icons/mob/clothing/species/drask/under/civilian.dmi index 65abb049671a..53ce570efc56 100644 Binary files a/icons/mob/clothing/species/drask/under/civilian.dmi and b/icons/mob/clothing/species/drask/under/civilian.dmi differ diff --git a/icons/mob/clothing/species/grey/back.dmi b/icons/mob/clothing/species/grey/back.dmi index bfd7fd8310ee..88be281f984d 100644 Binary files a/icons/mob/clothing/species/grey/back.dmi and b/icons/mob/clothing/species/grey/back.dmi differ diff --git a/icons/mob/clothing/species/grey/eyes.dmi b/icons/mob/clothing/species/grey/eyes.dmi index a17e4e2242ff..7760cca8f608 100644 Binary files a/icons/mob/clothing/species/grey/eyes.dmi and b/icons/mob/clothing/species/grey/eyes.dmi differ diff --git a/icons/mob/clothing/species/grey/gloves.dmi b/icons/mob/clothing/species/grey/gloves.dmi index 4ebc054e1570..e69bfd36bcc9 100644 Binary files a/icons/mob/clothing/species/grey/gloves.dmi and b/icons/mob/clothing/species/grey/gloves.dmi differ diff --git a/icons/mob/clothing/species/grey/head.dmi b/icons/mob/clothing/species/grey/head.dmi index de0ff0962870..155189889405 100644 Binary files a/icons/mob/clothing/species/grey/head.dmi and b/icons/mob/clothing/species/grey/head.dmi differ diff --git a/icons/mob/clothing/species/grey/suit.dmi b/icons/mob/clothing/species/grey/suit.dmi index b70786592df9..45f1f6cc44ae 100644 Binary files a/icons/mob/clothing/species/grey/suit.dmi and b/icons/mob/clothing/species/grey/suit.dmi differ diff --git a/icons/mob/clothing/species/grey/under/civilian.dmi b/icons/mob/clothing/species/grey/under/civilian.dmi index a05f1c920999..aef84913923f 100644 Binary files a/icons/mob/clothing/species/grey/under/civilian.dmi and b/icons/mob/clothing/species/grey/under/civilian.dmi differ diff --git a/icons/mob/clothing/species/kidan/ears.dmi b/icons/mob/clothing/species/kidan/ears.dmi new file mode 100644 index 000000000000..0236591fb5f9 Binary files /dev/null and b/icons/mob/clothing/species/kidan/ears.dmi differ diff --git a/icons/mob/clothing/species/kidan/eyes.dmi b/icons/mob/clothing/species/kidan/eyes.dmi index 67901173d8d2..cc03d39fcdd5 100644 Binary files a/icons/mob/clothing/species/kidan/eyes.dmi and b/icons/mob/clothing/species/kidan/eyes.dmi differ diff --git a/icons/mob/clothing/species/kidan/gloves.dmi b/icons/mob/clothing/species/kidan/gloves.dmi index 540e694464c3..24cd2f8fe258 100644 Binary files a/icons/mob/clothing/species/kidan/gloves.dmi and b/icons/mob/clothing/species/kidan/gloves.dmi differ diff --git a/icons/mob/clothing/species/kidan/suit.dmi b/icons/mob/clothing/species/kidan/suit.dmi index bf89ab29c2aa..8e398165f2c2 100644 Binary files a/icons/mob/clothing/species/kidan/suit.dmi and b/icons/mob/clothing/species/kidan/suit.dmi differ diff --git a/icons/mob/clothing/species/kidan/under/civilian.dmi b/icons/mob/clothing/species/kidan/under/civilian.dmi new file mode 100644 index 000000000000..9c8d974d3361 Binary files /dev/null and b/icons/mob/clothing/species/kidan/under/civilian.dmi differ diff --git a/icons/mob/clothing/species/nian/underwear.dmi b/icons/mob/clothing/species/nian/underwear.dmi new file mode 100644 index 000000000000..aaaf3ccc65e0 Binary files /dev/null and b/icons/mob/clothing/species/nian/underwear.dmi differ diff --git a/icons/mob/clothing/species/vox/back.dmi b/icons/mob/clothing/species/vox/back.dmi index b3c7e2dde1bc..25b86be5931b 100644 Binary files a/icons/mob/clothing/species/vox/back.dmi and b/icons/mob/clothing/species/vox/back.dmi differ diff --git a/icons/mob/clothing/species/vox/eyes.dmi b/icons/mob/clothing/species/vox/eyes.dmi index 103dca449d1e..ac19c03b436e 100644 Binary files a/icons/mob/clothing/species/vox/eyes.dmi and b/icons/mob/clothing/species/vox/eyes.dmi differ diff --git a/icons/mob/clothing/species/vox/gloves.dmi b/icons/mob/clothing/species/vox/gloves.dmi index 42c84233b731..71d8a5ab9297 100644 Binary files a/icons/mob/clothing/species/vox/gloves.dmi and b/icons/mob/clothing/species/vox/gloves.dmi differ diff --git a/icons/mob/clothing/species/vox/head.dmi b/icons/mob/clothing/species/vox/head.dmi index 374d72b76984..846a0da40412 100644 Binary files a/icons/mob/clothing/species/vox/head.dmi and b/icons/mob/clothing/species/vox/head.dmi differ diff --git a/icons/mob/clothing/species/vox/suit.dmi b/icons/mob/clothing/species/vox/suit.dmi index 63c10abda38c..52aa1343e512 100644 Binary files a/icons/mob/clothing/species/vox/suit.dmi and b/icons/mob/clothing/species/vox/suit.dmi differ diff --git a/icons/mob/clothing/species/vox/under/civilian.dmi b/icons/mob/clothing/species/vox/under/civilian.dmi index 873a6838fd35..63f65aa8e3c0 100644 Binary files a/icons/mob/clothing/species/vox/under/civilian.dmi and b/icons/mob/clothing/species/vox/under/civilian.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index a7108da33bda..b034654674c5 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/clothing/under/civilian.dmi b/icons/mob/clothing/under/civilian.dmi index 6eda3ab28105..3811856e8a7a 100644 Binary files a/icons/mob/clothing/under/civilian.dmi and b/icons/mob/clothing/under/civilian.dmi differ diff --git a/icons/mob/corgi_head.dmi b/icons/mob/corgi_head.dmi index 4ea3ac1a1d42..c3db618d381c 100644 Binary files a/icons/mob/corgi_head.dmi and b/icons/mob/corgi_head.dmi differ diff --git a/icons/mob/hud/antaghud.dmi b/icons/mob/hud/antaghud.dmi index 3b6ba79189e7..5f8ae83975b4 100644 Binary files a/icons/mob/hud/antaghud.dmi and b/icons/mob/hud/antaghud.dmi differ diff --git a/icons/mob/hud/hud_misc.dmi b/icons/mob/hud/hud_misc.dmi index 7e81764ab0a5..7e2d9c770438 100644 Binary files a/icons/mob/hud/hud_misc.dmi and b/icons/mob/hud/hud_misc.dmi differ diff --git a/icons/mob/human_races/human_skintones/r_human_Coffee.dmi b/icons/mob/human_races/human_skintones/r_human_Coffee.dmi index 1f9c0adc9bbd..20dd5bc45a90 100644 Binary files a/icons/mob/human_races/human_skintones/r_human_Coffee.dmi and b/icons/mob/human_races/human_skintones/r_human_Coffee.dmi differ diff --git a/icons/mob/human_races/human_skintones/r_human_almond.dmi b/icons/mob/human_races/human_skintones/r_human_almond.dmi new file mode 100644 index 000000000000..668ca8f74d9c Binary files /dev/null and b/icons/mob/human_races/human_skintones/r_human_almond.dmi differ diff --git a/icons/mob/human_races/human_skintones/r_human_bronzed.dmi b/icons/mob/human_races/human_skintones/r_human_bronzed.dmi new file mode 100644 index 000000000000..ff9f3588684d Binary files /dev/null and b/icons/mob/human_races/human_skintones/r_human_bronzed.dmi differ diff --git a/icons/mob/human_races/human_skintones/r_human_caramel.dmi b/icons/mob/human_races/human_skintones/r_human_caramel.dmi new file mode 100644 index 000000000000..57ceabbf26a9 Binary files /dev/null and b/icons/mob/human_races/human_skintones/r_human_caramel.dmi differ diff --git a/icons/mob/human_races/human_skintones/r_human_latte.dmi b/icons/mob/human_races/human_skintones/r_human_latte.dmi new file mode 100644 index 000000000000..35a4b3426391 Binary files /dev/null and b/icons/mob/human_races/human_skintones/r_human_latte.dmi differ diff --git a/icons/mob/human_races/human_skintones/r_human_pale.dmi b/icons/mob/human_races/human_skintones/r_human_pale.dmi index d6abcc0eaf2d..46b61fd43257 100644 Binary files a/icons/mob/human_races/human_skintones/r_human_pale.dmi and b/icons/mob/human_races/human_skintones/r_human_pale.dmi differ diff --git a/icons/mob/human_races/human_skintones/r_human_sienna.dmi b/icons/mob/human_races/human_skintones/r_human_sienna.dmi new file mode 100644 index 000000000000..82f322d96d7b Binary files /dev/null and b/icons/mob/human_races/human_skintones/r_human_sienna.dmi differ diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi index 7a7e065d75f5..8f9f52bd6213 100644 Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi index c1b5ab5e2bed..b436595e7311 100644 Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/custodial_lefthand.dmi b/icons/mob/inhands/equipment/custodial_lefthand.dmi index 2367540f0e1f..884b23465cb9 100644 Binary files a/icons/mob/inhands/equipment/custodial_lefthand.dmi and b/icons/mob/inhands/equipment/custodial_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/custodial_righthand.dmi b/icons/mob/inhands/equipment/custodial_righthand.dmi index 9c7d8be238a4..8ddb7703cf66 100644 Binary files a/icons/mob/inhands/equipment/custodial_righthand.dmi and b/icons/mob/inhands/equipment/custodial_righthand.dmi differ diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index d09c2406376b..272e47b89b4c 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index b7f50b7f67cb..cf13a3e05107 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 66b7a42a8d89..599237fdadfa 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 04310be5f5c5..3eb8dfc83a79 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index f9ec36b54a6c..184e41c728a2 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 5aedfb731b7c..aaf4877597a3 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index e3a7bb2f2183..2660087f11cb 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index bd519d6614ed..44b18e06c3f9 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/icons/obj/clothing/ties_overlay.dmi b/icons/obj/clothing/ties_overlay.dmi index d9df8c0547a8..e4c15f3ae0de 100644 Binary files a/icons/obj/clothing/ties_overlay.dmi and b/icons/obj/clothing/ties_overlay.dmi differ diff --git a/icons/obj/clothing/under/civilian.dmi b/icons/obj/clothing/under/civilian.dmi index 770a8cd46796..774f95bf8684 100644 Binary files a/icons/obj/clothing/under/civilian.dmi and b/icons/obj/clothing/under/civilian.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index de549408ec30..ad01b97b5320 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 10287972d094..545769dc7741 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/food/frozen_treats.dmi b/icons/obj/food/frozen_treats.dmi new file mode 100644 index 000000000000..8bc389272a54 Binary files /dev/null and b/icons/obj/food/frozen_treats.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 05e713412ed1..13c552d4790b 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index 3ac46fc3384f..0d7d9a0930b2 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/robot_parts.dmi b/icons/obj/robot_parts.dmi index d87e4714339a..6007ec7b22be 100644 Binary files a/icons/obj/robot_parts.dmi and b/icons/obj/robot_parts.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 17f152fe280d..768f5f64ed6f 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/supermatter.dmi b/icons/obj/supermatter.dmi index aa161c55679b..4cc94097dcba 100644 Binary files a/icons/obj/supermatter.dmi and b/icons/obj/supermatter.dmi differ diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi index 95af0f67b584..f9b8b5bb7f39 100644 Binary files a/icons/obj/trash.dmi and b/icons/obj/trash.dmi differ diff --git a/interface/skin.dmf b/interface/skin.dmf index 54b7776255e4..a448deb6966d 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -77,19 +77,18 @@ menu "menu" elem name = "&Масштабирование" category = "&Вид" - saved-params = "is-checked;command" elem "NN" name = "&По соседним пикселям" command = ".winset \"paramapwindow.map.zoom-mode=distort\"" category = "&Масштабирование" can-check = true + is-checked = true group = "scale" elem "PS" name = "&Точечный отбор" command = ".winset \"paramapwindow.map.zoom-mode=normal\"" category = "&Масштабирование" can-check = true - is-checked = true group = "scale" elem "BL" name = "&Билинейное" @@ -168,9 +167,9 @@ window "paramapwindow" font-size = 7 text-color = none is-default = true - saved-params = "icon-size" - zoom-mode = "normal" - style = ".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .clown { color: #FF69Bf;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .solcom {color: #22228B;} .com_srus {color: #7c4848;} .zombie\t{color: #ff0000;} .soghun {color: #228B22;} .vox {color: #AA00AA;} .diona {color: #804000; font-weight: bold;} .trinary {color: #727272;} .kidan {color: #664205;} .slime {color: #0077AA;} .drask {color: #a3d4eb;} .vulpkanin {color: #B97A57;} .abductor {color: #800080; font-style: italic;} .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; }" + saved-params = "icon-size;zoom-mode" + zoom-mode = "distort" + style = ".center { text-align: center; } .maptext { font-family: 'MS Serif'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .small { font-family: 'Small Fonts'; font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .clown { color: #FF69Bf;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .solcom {color: #22228B;} .com_srus {color: #7c4848;} .zombie\t{color: #ff0000;} .soghun {color: #228B22;} .vox {color: #AA00AA;} .diona {color: #804000; font-weight: bold;} .trinary {color: #727272;} .kidan {color: #664205;} .slime {color: #0077AA;} .drask {color: #a3d4eb;} .vulpkanin {color: #B97A57;} .abductor {color: #800080; font-style: italic;} .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; }" .italics { font-family: 'Small Fonts'; }" on-show = ".winset \"menu.statusbar.is-checked=true?paramapwindow.status_bar.is-visible=true:paramapwindow.status_bar.is-visible=false\"" elem "title_browser" type = BROWSER @@ -318,7 +317,7 @@ window "rpane" command = "Changelog" elem "fullscreenb" type = BUTTON - pos = 464,7 + pos = 469,7 size = 70x16 saved-params = "is-checked" text = "Fullscreen" diff --git a/librust_g.so b/librust_g.so deleted file mode 100644 index d99a0236c068..000000000000 Binary files a/librust_g.so and /dev/null differ diff --git a/modular_ss220/_defines220/_defines220.dme b/modular_ss220/_defines220/_defines220.dme index 65c29efd5930..c04f3832953e 100644 --- a/modular_ss220/_defines220/_defines220.dme +++ b/modular_ss220/_defines220/_defines220.dme @@ -10,5 +10,10 @@ #include "code/signals_obj.dm" #include "code/cult_defines_ss220.dm" #include "code/hud_ss220.dm" +#include "code/atom_hud.dm" +#include "code/gamemode.dm" +#include "code/role_preferences.dm" #include "code/layers_ss220.dm" #include "code/signals_atom.dm" +#include "code/jobs_defines.dm" +#include "code/donor.dm" diff --git a/modular_ss220/_defines220/code/atom_hud.dm b/modular_ss220/_defines220/code/atom_hud.dm new file mode 100644 index 000000000000..eb191aefd6c6 --- /dev/null +++ b/modular_ss220/_defines220/code/atom_hud.dm @@ -0,0 +1 @@ +#define ANTAG_HUD_BLOOD_BROTHER 21 diff --git a/modular_ss220/_defines220/code/donor.dm b/modular_ss220/_defines220/code/donor.dm new file mode 100644 index 000000000000..053c420212cf --- /dev/null +++ b/modular_ss220/_defines220/code/donor.dm @@ -0,0 +1,7 @@ +// Special tiers for ss220 staff +#define BIG_WORKER_TIER 220 +#define LITTLE_WORKER_TIER 110 + +// What TTS level does it give access to? +#define BIG_WORKER_TTS_LEVEL 3 +#define LITTLE_WORKER_TTS_LEVEL 1 diff --git a/modular_ss220/_defines220/code/gamemode.dm b/modular_ss220/_defines220/code/gamemode.dm new file mode 100644 index 000000000000..555859244f6c --- /dev/null +++ b/modular_ss220/_defines220/code/gamemode.dm @@ -0,0 +1 @@ +#define SPECIAL_ROLE_BLOOD_BROTHER "Blood Brother" diff --git a/modular_ss220/_defines220/code/jobs_defines.dm b/modular_ss220/_defines220/code/jobs_defines.dm new file mode 100644 index 000000000000..fed4ba8651fa --- /dev/null +++ b/modular_ss220/_defines220/code/jobs_defines.dm @@ -0,0 +1,11 @@ +#define NOVICE_JOB_MINUTES 120 +#define NOVICE_CADET_JOB_MINUTES 300 + +// JOBCAT_ENGSEC +#define JOB_TRAINEE (1<<15) +#define JOB_CADET (1<<16) + +// JOBCAT_MEDSCI +#define JOB_INTERN (1<<11) +#define JOB_STUDENT (1<<12) +// Если ОФФы добавят новую должность в отдел, то потребуется смещение diff --git a/modular_ss220/_defines220/code/role_preferences.dm b/modular_ss220/_defines220/code/role_preferences.dm new file mode 100644 index 000000000000..d65f3c910f61 --- /dev/null +++ b/modular_ss220/_defines220/code/role_preferences.dm @@ -0,0 +1 @@ +#define ROLE_BLOOD_BROTHER "blood brother" diff --git a/modular_ss220/aesthetics/_aesthetics.dme b/modular_ss220/aesthetics/_aesthetics.dme index b5160cd386f8..08babc5851f3 100644 --- a/modular_ss220/aesthetics/_aesthetics.dme +++ b/modular_ss220/aesthetics/_aesthetics.dme @@ -8,6 +8,7 @@ #include "applicator\code\applicator.dm" #include "atm\code\atm.dm" #include "atmospherics\code\atmospherics.dm" +#include "basketball\code\basketball.dm" #include "better_ids\code\better_ids.dm" #include "blastdoor\code\blastdoor.dm" #include "boxes\code\boxes.dm" diff --git a/modular_ss220/aesthetics/basketball/code/basketball.dm b/modular_ss220/aesthetics/basketball/code/basketball.dm new file mode 100644 index 000000000000..c05a6802902f --- /dev/null +++ b/modular_ss220/aesthetics/basketball/code/basketball.dm @@ -0,0 +1,2 @@ +/obj/structure/holohoop + icon = 'modular_ss220/aesthetics/basketball/icons/basketball.dmi' diff --git a/modular_ss220/aesthetics/basketball/icons/basketball.dmi b/modular_ss220/aesthetics/basketball/icons/basketball.dmi new file mode 100644 index 000000000000..d069a905e44f Binary files /dev/null and b/modular_ss220/aesthetics/basketball/icons/basketball.dmi differ diff --git a/modular_ss220/aesthetics/floors/code/floors.dm b/modular_ss220/aesthetics/floors/code/floors.dm index f417708760d4..f6519bd50caa 100644 --- a/modular_ss220/aesthetics/floors/code/floors.dm +++ b/modular_ss220/aesthetics/floors/code/floors.dm @@ -1,7 +1,16 @@ /turf/simulated/floor icon = 'modular_ss220/aesthetics/floors/icons/floors.dmi' +/turf/simulated/floor/plasteel/dark + icon_state = "dark" + +/turf/simulated/floor/mech_bay_recharge_floor + icon = 'modular_ss220/aesthetics/floors/icons/floors.dmi' + // WOODEN FLOORS +/turf/simulated/floor/wood + icon = 'modular_ss220/aesthetics/floors/icons/wooden.dmi' + /turf/simulated/floor/wood/oak icon_state = "wood-oak" floor_tile = /obj/item/stack/tile/wood/oak diff --git a/modular_ss220/aesthetics/floors/code/tile_types.dm b/modular_ss220/aesthetics/floors/code/tile_types.dm index 4b60d308f8be..1ad11cb80325 100644 --- a/modular_ss220/aesthetics/floors/code/tile_types.dm +++ b/modular_ss220/aesthetics/floors/code/tile_types.dm @@ -1,8 +1,10 @@ +/obj/item/stack/tile + icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' + // WOOD /obj/item/stack/tile/wood/oak name = "oak wood floor tiles" singular_name = "oak wood floor tile" - icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' icon_state = "tile-wood-oak" turf_type = /turf/simulated/floor/wood/oak merge_type = /obj/item/stack/tile/wood/oak @@ -10,7 +12,6 @@ /obj/item/stack/tile/wood/birch name = "birch wood floor tiles" singular_name = "birch wood floor tile" - icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' icon_state = "tile-wood-birch" turf_type = /turf/simulated/floor/wood/birch merge_type = /obj/item/stack/tile/wood/birch @@ -18,7 +19,6 @@ /obj/item/stack/tile/wood/cherry name = "cherry wood floor tiles" singular_name = "cherry wood floor tile" - icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' icon_state = "tile-wood-cherry" turf_type = /turf/simulated/floor/wood/cherry merge_type = /obj/item/stack/tile/wood/cherry @@ -26,7 +26,6 @@ /obj/item/stack/tile/wood/fancy/oak name = "fancy oak wood floor tiles" singular_name = "fancy oak wood floor tile" - icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' icon_state = "tile-wood-fancy-oak" turf_type = /turf/simulated/floor/wood/fancy/oak merge_type = /obj/item/stack/tile/wood/fancy/oak @@ -34,7 +33,6 @@ /obj/item/stack/tile/wood/fancy/birch name = "fancy birch wood floor tiles" singular_name = "fancy birch wood floor tile" - icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' icon_state = "tile-wood-fancy-birch" turf_type = /turf/simulated/floor/wood/fancy/birch merge_type = /obj/item/stack/tile/wood/fancy/birch @@ -42,7 +40,6 @@ /obj/item/stack/tile/wood/fancy/cherry name = "fancy cherry wood floor tiles" singular_name = "fancy cherry wood floor tile" - icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' icon_state = "tile-wood-fancy-cherry" turf_type = /turf/simulated/floor/wood/fancy/cherry merge_type = /obj/item/stack/tile/wood/fancy/cherry @@ -50,7 +47,6 @@ /obj/item/stack/tile/wood/fancy name = "fancy light oak wood floor tiles" singular_name = "fancy wood floor tile" - icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' icon_state = "tile-wood-fancy" turf_type = /turf/simulated/floor/wood/fancy merge_type = /obj/item/stack/tile/wood/fancy @@ -58,7 +54,6 @@ /obj/item/stack/tile/wood/parquet name = "parquet wood floor tiles" singular_name = "wood parquet floor tile" - icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' icon_state = "tile-wood-parquet" turf_type = /turf/simulated/floor/wood/parquet merge_type = /obj/item/stack/tile/wood/parquet @@ -66,7 +61,6 @@ /obj/item/stack/tile/wood/parquet/tile name = "tiled parquet wood floor tiles" singular_name = "wood tiled parquet floor tile" - icon = 'modular_ss220/aesthetics/floors/icons/tiles.dmi' icon_state = "tile-wood-tile" turf_type = /turf/simulated/floor/wood/parquet/tile merge_type = /obj/item/stack/tile/wood/parquet/tile diff --git a/modular_ss220/aesthetics/floors/icons/floors.dmi b/modular_ss220/aesthetics/floors/icons/floors.dmi index ed3de7c3b442..73cf73061e31 100644 Binary files a/modular_ss220/aesthetics/floors/icons/floors.dmi and b/modular_ss220/aesthetics/floors/icons/floors.dmi differ diff --git a/modular_ss220/aesthetics/floors/icons/tiles.dmi b/modular_ss220/aesthetics/floors/icons/tiles.dmi index e479a733bccc..af7452ee3fde 100644 Binary files a/modular_ss220/aesthetics/floors/icons/tiles.dmi and b/modular_ss220/aesthetics/floors/icons/tiles.dmi differ diff --git a/modular_ss220/aesthetics/floors/icons/wooden.dmi b/modular_ss220/aesthetics/floors/icons/wooden.dmi new file mode 100644 index 000000000000..3f92d4bb644a Binary files /dev/null and b/modular_ss220/aesthetics/floors/icons/wooden.dmi differ diff --git a/modular_ss220/aesthetics/shutters/code/shutters.dm b/modular_ss220/aesthetics/shutters/code/shutters.dm index 382757908be3..4df2681f4fac 100644 --- a/modular_ss220/aesthetics/shutters/code/shutters.dm +++ b/modular_ss220/aesthetics/shutters/code/shutters.dm @@ -1,5 +1,6 @@ /obj/machinery/door/poddoor/shutters icon = 'modular_ss220/aesthetics/shutters/icons/shutters.dmi' + layer = CLOSED_BLASTDOOR_LAYER var/door_open_sound = 'modular_ss220/aesthetics/shutters/sound/shutters_open.ogg' var/door_close_sound = 'modular_ss220/aesthetics/shutters/sound/shutters_close.ogg' @@ -11,3 +12,15 @@ if("closing") flick("closing", src) playsound(src, door_close_sound, 30, TRUE) + +/obj/machinery/door/poddoor/shutters/window + name = "windowed shutters" + desc = "A shutter with a thick see-through polycarbonate window." + icon = 'modular_ss220/aesthetics/shutters/icons/shutters_glass.dmi' + icon_state = "closed" + opacity = FALSE + glass = TRUE + +/obj/machinery/door/poddoor/shutters/window/preopen + icon_state = "open" + density = FALSE diff --git a/modular_ss220/aesthetics/shutters/icons/shutters_glass.dmi b/modular_ss220/aesthetics/shutters/icons/shutters_glass.dmi new file mode 100644 index 000000000000..fcf8af5b94fd Binary files /dev/null and b/modular_ss220/aesthetics/shutters/icons/shutters_glass.dmi differ diff --git a/modular_ss220/aesthetics/skin/code/darkmode.dm b/modular_ss220/aesthetics/skin/code/darkmode.dm index 16d6993cdae6..48e5f4c2ea9f 100644 --- a/modular_ss220/aesthetics/skin/code/darkmode.dm +++ b/modular_ss220/aesthetics/skin/code/darkmode.dm @@ -1,6 +1,6 @@ /client/activate_darkmode() . = ..() - winset(src, "rpane.fullscreenb", "background-color=#494949;text-color=#a4bad6") + winset(src, "rpane.fullscreenb", "background-color=#40628a;text-color=#ffffff") /client/deactivate_darkmode() . = ..() diff --git a/modular_ss220/antagonists/_antagonists.dm b/modular_ss220/antagonists/_antagonists.dm new file mode 100644 index 000000000000..ed703929a3bd --- /dev/null +++ b/modular_ss220/antagonists/_antagonists.dm @@ -0,0 +1,8 @@ +/datum/modpack/antagonists + name = "Антагонисты и режимы" + desc = "Добавляет новые режимы и антагонистов." + author = "Gaxeer, dj-34" + +/datum/modpack/antagonists/initialize() + GLOB.special_roles |= ROLE_BLOOD_BROTHER + GLOB.huds += new/datum/atom_hud/antag/hidden() diff --git a/modular_ss220/antagonists/_antagonists.dme b/modular_ss220/antagonists/_antagonists.dme new file mode 100644 index 000000000000..c03286e61a90 --- /dev/null +++ b/modular_ss220/antagonists/_antagonists.dme @@ -0,0 +1,10 @@ +#include "_antagonists.dm" + +#include "code/antag_mix/scenarios/antag_scenario.dm" +#include "code/antag_mix/scenarios/antag_team_scenario.dm" +#include "code/antag_mix/scenarios/minor_scenarios.dm" +#include "code/configuration/antag_mix_configuration.dm" +#include "code/blood_brothers/blood_brothers_datum.dm" +#include "code/blood_brothers/blood_brothers_team.dm" +#include "code/mind/memory_edit.dm" +#include "code/antag_mix/antag_mix.dm" diff --git a/modular_ss220/antagonists/code/antag_mix/antag_mix.dm b/modular_ss220/antagonists/code/antag_mix/antag_mix.dm new file mode 100644 index 000000000000..842375a5842e --- /dev/null +++ b/modular_ss220/antagonists/code/antag_mix/antag_mix.dm @@ -0,0 +1,170 @@ +/datum/game_mode/antag_mix + name = "Antag Mix" + config_tag = "antag_mix" + /// Multiplier of antag credits. Credits will be used to choose antag scenarios + var/budget_multiplier = 1 + /// Max fraction of antags relative to ready players. Value between 0 and 1 + var/max_antag_fraction = 1 + /// How much budget has left + var/budget = 0 + /// List of scenarios chosen on `pre_setup` stage, and which will be applied on `post_setup` + var/list/datum/antag_scenario/executed_scenarios = list() + + +/datum/game_mode/antag_mix/New() + . = ..() + apply_configuration() + + +/datum/game_mode/antag_mix/pre_setup() + var/list/datum/antag_scenario/possible_scenarios = subtypesof(/datum/antag_scenario) + + var/list/mob/new_player/ready_players = get_ready_players() + var/ready_players_amount = length(ready_players) + log_antag_mix("Trying to start round with [ready_players_amount] ready players") + log_antag_mix("Max antagonist fraction is '[max_antag_fraction]'") + + var/list/datum/antag_scenario/acceptable_scenarios = initialize_acceptable_scenarios(possible_scenarios, ready_players_amount) + if(!length(acceptable_scenarios)) + return FALSE + + budget = calculate_budget(ready_players_amount) + log_antag_mix("Roundstart budget: [budget]") + return pick_scenarios(draft_scenarios(acceptable_scenarios, ready_players), ready_players_amount) + + +/datum/game_mode/antag_mix/post_setup() + for(var/datum/antag_scenario/scenario_to_execute as anything in executed_scenarios) + scenario_to_execute.execute() + + return ..() + + +/datum/game_mode/antag_mix/proc/apply_configuration() + budget_multiplier = GLOB.configuration.antag_mix_gamemode.budget_multiplier + max_antag_fraction = GLOB.configuration.antag_mix_gamemode.max_antag_fraction + + +/** + * Calculates amount of `credits` that will spent on antag scenarios, that are available. +*/ +/datum/game_mode/antag_mix/proc/calculate_budget(ready_players_amount) + return ready_players_amount * budget_multiplier + + +/** + * Count players that are currently ingame and ready. +*/ +/datum/game_mode/antag_mix/proc/get_ready_players() + var/list/mob/new_player/ready_players = list() + for(var/mob/new_player/player in GLOB.player_list) + if(!player.client || !player.ready) + continue + + ready_players.Add(player) + + return ready_players + +/** + * Creates actual scenario datums from `inited_scenario_paths`. +*/ +/datum/game_mode/antag_mix/proc/initialize_acceptable_scenarios(list/datum/antag_scenario/scenarios_to_init, players_ready) + var/list/datum/antag_scenario/acceptable_scenarios = list() + for(var/datum/antag_scenario/scenario_path as anything in scenarios_to_init) + if(!ispath(scenario_path)) + continue + + if(initial(scenario_path.abstract)) + continue + + var/datum/antag_scenario/possible_scenario = new scenario_path + if(!possible_scenario.acceptable(players_ready)) + qdel(possible_scenario) + continue + + acceptable_scenarios += possible_scenario + + return acceptable_scenarios + + +/datum/game_mode/antag_mix/proc/pick_scenarios(list/datum/antag_scenario/drafted_scenarios, players_ready_amount, current_antag_fraction = 0) + if(!length(drafted_scenarios)) + return FALSE + + var/budget_left = budget + var/list/picked_scenarios = list() + while(budget_left > 0) + if(!length(drafted_scenarios) || (current_antag_fraction >= max_antag_fraction)) + break + + var/datum/antag_scenario/picked_scenario = pickweight(drafted_scenarios) + if(picked_scenario.cost > budget_left) + drafted_scenarios.Remove(picked_scenario) + continue + + var/added_antag_fraction = min(length(picked_scenario.candidates), picked_scenario.get_antag_cap(players_ready_amount)) / players_ready_amount + if(!added_antag_fraction || (added_antag_fraction + current_antag_fraction > max_antag_fraction)) + drafted_scenarios.Remove(picked_scenario) + continue + + budget_left -= picked_scenario.cost + current_antag_fraction += added_antag_fraction + + picked_scenarios[picked_scenario] += 1 + log_antag_mix("Scenario '[picked_scenario.name]' with: cost '[picked_scenario.cost]', weight '[picked_scenario.weight]' was picked [picked_scenarios[picked_scenario]] times") + log_antag_mix("Antagonist fraction is '[current_antag_fraction]'") + + if(!length(picked_scenarios)) + log_antag_mix("No antag scenarios were picked. Let another game mode roll.") + return FALSE + + for(var/picked_scenario in picked_scenarios) + spend_budget(pre_execute_scenario(picked_scenario, picked_scenarios[picked_scenario] - 1, players_ready_amount)) + + if(budget != budget_left && current_antag_fraction < max_antag_fraction && length(drafted_scenarios)) + log_antag_mix("Some of the picked scenarios failed pre execution, try to pick scenarios from leftovers") + return pick_scenarios(drafted_scenarios, players_ready_amount, current_antag_fraction) + + return TRUE + +/datum/game_mode/antag_mix/proc/spend_budget(budget_to_spend) + budget = max(0, budget - budget_to_spend) + log_antag_mix("Budget spent: [budget_to_spend], budget left: [budget]") + + +/datum/game_mode/antag_mix/proc/pre_execute_scenario(datum/antag_scenario/scenario_to_pre_execute, scaled_times, players_ready_amount) + if(!scenario_to_pre_execute) + return 0 + + scenario_to_pre_execute.trim_candidates() + + scenario_to_pre_execute.scaled_times = scaled_times + if(!scenario_to_pre_execute.pre_execute(players_ready_amount)) + log_antag_mix("Scenario '[scenario_to_pre_execute.name]' failed to pre execute") + return 0 + + executed_scenarios |= scenario_to_pre_execute + return scenario_to_pre_execute.cost * (scenario_to_pre_execute.scaled_times + 1) + + +/datum/game_mode/antag_mix/proc/draft_scenarios(list/datum/antag_scenario/scenarios_to_pick_from, list/mob/new_player/ready_players) + if(!length(scenarios_to_pick_from) || !length(ready_players)) + return + + var/drafted_scenarios = list() + for(var/datum/antag_scenario/scenario as anything in scenarios_to_pick_from) + if(!scenario.weight) + continue + + scenario.candidates = ready_players.Copy() + scenario.trim_candidates() + if(!scenario.ready()) + continue + + drafted_scenarios[scenario] = scenario.weight + log_antag_mix("Scenario: '[scenario.name]' with weight: '[scenario.weight]' was drafted") + + return drafted_scenarios + +/datum/game_mode/antag_mix/proc/log_antag_mix(text) + log_debug("\[ANTAG MIX\] [text]") diff --git a/modular_ss220/antagonists/code/antag_mix/readme.md b/modular_ss220/antagonists/code/antag_mix/readme.md new file mode 100644 index 000000000000..92c227dde813 --- /dev/null +++ b/modular_ss220/antagonists/code/antag_mix/readme.md @@ -0,0 +1,179 @@ +# Antag Mix Mode + +## Antag Mix Mode + +`Antag Mix` is gamemode which simply allows to have multiple roundstart antagonists without creating new gamemode per each antagonists combination. +The setup order of the gamemode is following: + +1. The first stage is `/datum/game_mode/antag_mix` gamemode new instance creation, + where `apply_configuration()` is executed, which handles loading of configuration into the instance. + +2. Next is `pre_setup()`, where `Antag Scenarios` are picked. + If no scenarios were picked, than `pre_setup` will fail and another gamomode will roll. + This stage consists of these steps: + + 1. Initializing accepatable scenarios (see `initialize_acceptable_scenarios()`). + 2. Round budget calculation (see `calculate_budget()`), + which is linearly dependent from amount of ready player, simply `ready_players_amount * budget_multiplier`. + So, more players means more budget to spend on `Antag Scenarios`. + `budget_multiplier` is simple coefficient used to scale the budget. The higher it is, the greater is the budget and vice versa. + 3. Drafting scenarios (see `draft_scenarios()`), which is also divided into following step: + + 1. Trimming ready players, to have only ones, that actually can be picked for the scenario. + + 2. Filtering scenarios which meet following requirement: + + - Scenario has `weight` more than `0` + - Scenario is ready to be executed (see `/datum/antag_scenario/proc/ready()`) + + 3. The valid scenario than added to assoc list of `scenario -> it's weight` + + 4. The result assoc list from the previous stage is then passed into pick stage: + + 1. The scenarios are picked until all of the conditions below are true: + + - Round `budget` is higher than `0` + - There is at least `1` scenario available to be picked + - Antag fraction of already picked scenarios is not higher than `max_antag_fraction` + + 2. When scenario is picked, it's then added to assoc list of `picked_scenarios`, where `picked_scenario -> picked_times` pairs are stored. Scenarios are considered unpickable if: + + - Scenario's cost is higher than budget left + - Antag fraction after adding the scenario will be higher than `max_antag_fraction` + + Also tracked `current_antag_fraction` and `budget_left` are updated based on scenario's parameters. + + 3. Picked scenarios will be passed into next stage `pre_execute_scenario`. This stage also has thigs to say: + + - Candidates will be trimmed again, because same player can't be picked for multiple scenarios + - Scenarios will be properly scaled and then `pre_execute` will be called on scenario to pick and added to `executed_scenarios` + - If scenario `pre_execute` failes - scenario won't be added to `executed_scenarios` which means that it won't be included into round + - The resulting cost is calculated, `scaled_times` wise, and then substracted from the budget. + + 4. If `budget` was spent incorrectly, which means that some of the picked scenarios failed to `pre_execute`, + then `pick_scenarios` will be recursively called, to try spend `budget` that was left. + Any left `budget` that can't be spent unfortunately will burn. + +3. Next and last stage is scenarios execution (see `/datum/antag_scenario/proc/execute()`), + which will happen on gamemode `post_setup()`. Unfortunetale on this stage the world is already set up + and any failures are to leave with. + +## Antag Scenarios + +The `Antag Scenario` is simply set of rules, based on the antagonist is picked and injected into the round. +How scenarios are used is better explained in [previous topic](#antag-mix-mode). + +### How To Create New Scenario + +You came up with idea of adding new antagonist into the game and what it to be included in `Antag Mix`? +So here is the guide for you how to do it properly: + +1. Create a new subtype of `/datum/antag_scenario` for teamless antags or `/datum/antag_scenario/team` for antags, + that are divided into teams. + +2. Most of the type, all you have to do is to simply set following properties to values you need: + +- `name` - just the name of scenario. Currently is not used +- `config_tag` - unique identifier of scenario in configuration +- `abstract` - this must be `TRUE` for scenarios, that can be used by `Antag Mix` +- `antag_role` - value, that uniquely specifies the antagonist. Used to check player eligibility to play the role +- `antag_special_role` - special role, that is assigned to player chosen for scenario +- `antag_datum` - `/datum/antagonist` that will be assigned to chosen player in `execute()` +- `scaled_times` - amount of times, the scenario was chosen to be executed again. + Lineary affects `antag_cap`: [`antag_cap * (scaled_times + 1)`] +- `required_players` (configurable) - amount of players required to start the scenario +- `cost` (configurable) - cost of the antag scenario +- `weight` (configurable) - frequency of scenario, related to other scenarios. Higher values - higher frequency +- `antag_cap` (configurable) - max amount of antagonists, the scenario can inject. +- `candidates_required` - how many possible candidates are required for this scenario to be executed +- `restricted_roles` - roles that can't be chosen for the scenario +- `protected_roles` - roles that can't be chosen for the scenario + if 'GLOB.configuration.gamemode.prevent_mindshield_antags' is TRUE +- `restricted_species` - species that can't be chosen for the scenario + +## Configuration + +`Antag Scenarios` and `Antag Mix Mode` have plenty of variables, that can be configured. +This allows to easily enough tweak existing values. +All of the following variables are present in [configuration file](/config/config.toml) `antag_mix_gamemode_configuration` section. + +### Antag Mix Mode + +When adding new configurables, add values in configuration file and corresponding value to `/datum/configuration_section/antag_mix_gamemode_configuration`. +Values from configuration file should be loaded in `/datum/configuration_section/antag_mix_gamemode_configuration/load_data`. +Values from configuration are assigned to `/datum/game_mode/antag_mix` instance corresponding properties in `/datum/game_mode/antag_mix/proc/apply_configuration()`, +so also do it here. + +Here is complete list of configurable variables of `Antag Mix Mode`: + +- `budget_multiplier` - defines how much the rounstart budget is multiplied. + Higher values - mean more budget, lower - less. +- `max_antag_fraction` - defines percentage of roundstart antags injected in relation to roundstart ready players. + For example value 0.1 means 10%. If 60 players are ready on roundstart - 6 antagonist players can be added at most. + +### Antag Scenarios + +`Antag Scenario` can be fine grain tuned in [configuration file](/config/config.toml) `antag_mix_gamemode_configuration` section. +Long story short - configuration is in `.toml` format, so best way to understand it, is to read [documentation](https://toml.io/en/v1.0.0#array-of-tables). +Each `Antag Scenario` entry can be uniquely identified by `tag` property in configuration. +The `/datum/antag_scenario` with `config_tag` property equal to corresponding `tag` will be configured in `/datum/antag_scenario/proc/apply_configuration()`. +If non existing param will be present in configuration, the error will be logged. +Here is also example, which will be much easier to understand after familiarizing with syntax and semantics of `.toml`: + +```toml +# Here `antag_mix_gamemode_configuration` is name of whole section, in `toml` it's called `table`. +# `antag_scenarios_configuration` is name of `key` in `antag_mix_gamemode_configuration` table. Which itself represents array of tables. +# Each new scenarion configuration entry must start with `[[antag_mix_gamemode_configuration.antag_scenarios_configuration]]`. +[[antag_mix_gamemode_configuration.antag_scenarios_configuration]] +# `Key` with name `tag` in table `antag_scenarios_configuration. Tag uniquely identifies each scenario. +tag = "traitor" + +# Here we specify belonging of `params` table to `antag_scenarios_configuration` array of tables. +# Whole path must be specified in order to correctly be identified by `.toml` parser. +[antag_mix_gamemode_configuration.antag_scenarios_configuration.params] +"required_players" = 1 +"cost" = 1 +"weight" = 1 +"antag_cap" = 1 +"candidates_required" = 1 +"restricted_roles" = ["Cyborg"] +"protected_roles" = [ + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain", + "Blueshield", + "Nanotrasen Representative", + "Magistrate", + "Internal Affairs Agent", + "Nanotrasen Navy Officer", + "Special Operations Officer", + "Syndicate Officer", + "Solar Federation General", +] +``` + +Below is present complete list of existing configurables for curretly existing antag scenarios. +Other variables are prohibited to be changed using configuration file, so they are not present here. +To read more about other variables check [/datum/antag_scenario](/modular_ss220/antagonists/code/antag_mix/scenarios/antag_scenario.dm). +If new configurable properties will be added, include them below: + +### General Properties + +- `required_players` - number of ready players, that are required for this scenario to be acceptable +- `cost` - how much of `Antag Mix` budget is spent on this scenario. + `0` means, that scenario is only bounded by `max_antag_fraction` +- `weight` - how often the scenario is picked relatively to other scenarios +- `antag_cap` - how many players can be chosen for antags by scenario per `scaled_times` +- `candidates_required` - how many possible candidates are required for this scenario to be executed + The value is used in `/datum/antag_scenario/proc/ready()` +- `restricted_roles` - list of roles, that can't be chosen for this scenario +- `protected_roles` - list of roles, that can't be chosen for this scenario if `GLOB.configuration.gamemode.prevent_mindshield_antags` is `TRUE` +- `restricted_species` - list of species, that can't be chosen for this scenario + +Team scenarios are separated into own subtype. Complete list of specific variables is present here: + +### `/datum/antag_scenario/team` Specific Properties + +- `team_size` - amount of players, that will be added to same team diff --git a/modular_ss220/antagonists/code/antag_mix/scenarios/antag_scenario.dm b/modular_ss220/antagonists/code/antag_mix/scenarios/antag_scenario.dm new file mode 100644 index 000000000000..a5fffbd4e512 --- /dev/null +++ b/modular_ss220/antagonists/code/antag_mix/scenarios/antag_scenario.dm @@ -0,0 +1,180 @@ +/datum/antag_scenario + /// Name of the scenario. Will be used in round end statistics + var/name = "Generic Scenario" + /// Configuration tag of scenario, which will be used on scenario configuration loading + var/config_tag = null + /// Whether scenario shouldn't be used in `Antag Mix` and which purpose is to be literally abstract. + /// Scenario will crash in `/datum/antag_scenario/New()` if tried to instantiate + var/abstract = TRUE + /// Role used to check if the player is banned from it. Example: `ROLE_TRAITOR`, `ROLE_CHANGELING`, etc. + var/antag_role = null + /// Special role, that will be assigned to chosen players. Example: `SPECIAL_ROLE_TRAITOR`, `SPECIAL_ROLE_CHANGELIN`, etc. + var/antag_special_role = null + /// Antag datum, that will be granted to chosen players on `execute` which will be called on post setup + var/datum/antagonist/antag_datum = null + /// Amount of times, this scenario has been picked again + var/scaled_times = 0 + /// Amount of players required to start this scenario + var/required_players = 1 + /// Cost of the antag scenario. Antag_mix antag generation is based on this value. + /// Scenarios with `0` cost considered free and only limited by `max_antag_fraction` of `/datum/game_mode/antag_mix` + var/cost = 1 + /// Weight of the scenario. Will be taken into consideration by 'antag_mix' gamemode. + /// Higher values make scenario more frequent, lower - less. Defaults to '1' + var/weight = 1 + /// Number of player population, based on which the new scenario antag will be scaled. + /// Can be specified using just number, which will be treated as hard cap, or in linear equation form: + /// list("denominator" = 10, "offset" = 1), where 'denominator' is divider for current players population, + /// and 'offset' is guaranteed amount of antag of scenario's type + var/antag_cap = 1 + /// How many possible candidates are required for this scenario to be executed + var/candidates_required = 1 + /// Jobs that can't be chosen for the scenario + var/list/restricted_roles = list() + /// Jobs that can't be chosen for the scenario if 'GLOB.configuration.gamemode.prevent_mindshield_antags' is TRUE + var/list/protected_roles = list() + /// Species that can't be chosen for the scenario + var/list/restricted_species = list() + /// List of available candidates for this scenario + var/list/mob/new_player/candidates = list() + /// List of players that were drafted to be antagonists of this scenario + var/list/datum/mind/assigned = list() + +/datum/antag_scenario/New() + if(abstract) + stack_trace("Instantiation of abstract antag scenarios is prohibited.") + qdel(src) + + apply_configuration() + + +/** + * Gets configuration params from [GLOB.configuration.antag_mix_gamemode.params_by_scenario], + * which are grouped by `config_tag` property of `/datum/antag_scenario`. + * If `config_tag` field is `null` - default scenario + * and write them into +*/ +/datum/antag_scenario/proc/apply_configuration() + SHOULD_NOT_OVERRIDE(TRUE) + if(!config_tag) + return + + var/params = GLOB.configuration.antag_mix_gamemode.params_by_scenario[config_tag] + if(!islist(params)) + return + + for(var/param in params) + if(!(param in vars)) + error("Invalid antag scenario configuration param '[param]' in [type]") + continue + + vars[param] = params[param] + + if(GLOB.configuration.gamemode.prevent_mindshield_antags) + restricted_roles |= protected_roles + + +/** + * Performs sanity check for this scenario to be run. + * + * Returns: 'TRUE' if scenario is matching current situation (game has enough players, enough antags can be spawned). + * 'FALSE' returned otherwise. +*/ +/datum/antag_scenario/proc/acceptable(population) + return (population >= required_players) && (get_antag_cap(population) > 0) + + +/** + * Checks whether this scenario is ready to be applied. + * + * Returns: 'TRUE' if all requirements are met for this scenario to be executed, 'FALSE' otherwise +*/ +/datum/antag_scenario/proc/ready() + return length(candidates) >= candidates_required + + +/** + * Called in `pre_setup` of [/datum/game_mode/antag_mix] gamemode. Here antags should be chosen. + * + * Returns: 'TRUE' if successfully executed, for example antags successfully chosen, 'FALSE' otherwise. +*/ +/datum/antag_scenario/proc/pre_execute(population) + var/assigned_before = length(assigned) + var/calculated_antag_cap = get_total_antag_cap(population) + for(var/i in 1 to calculated_antag_cap) + if(!length(candidates)) + break + + var/mob/new_player/chosen = pick_n_take(candidates) + + // We will check if something bad happened with candidates here. + if(!chosen || !chosen.mind) + error("Antag scenario 'candidates' were containing 'null' or mindless mob. This should not happen.") + calculated_antag_cap++ + continue + + var/datum/mind/chosen_mind = chosen.mind + assigned |= chosen_mind + chosen_mind.special_role = antag_special_role + chosen_mind.restricted_roles |= restricted_roles + + return length(assigned) - assigned_before > 0 + +/** + * Called in `post_setup`, which means that all players already have jobs. Here antags should receive everything they need. + * Can fail here, but there is nothing we can do on this stage - all players already have their jobs. +*/ +/datum/antag_scenario/proc/execute() + for(var/datum/mind/assignee as anything in assigned) + assignee.add_antag_datum(antag_datum) + + return TRUE + +/** + * Gets antag cap per one scenario. +*/ +/datum/antag_scenario/proc/get_antag_cap(population) + if(isnum(antag_cap)) + return antag_cap + + return FLOOR(population / (antag_cap["denominator"] || 1), 1) + (antag_cap["offset"] || 0) + +/** + * Gets antag cap per this scenario, but taking `scaled_times` into calculation. +*/ +/datum/antag_scenario/proc/get_total_antag_cap(population) + return get_antag_cap(population) * (scaled_times + 1) + +/** + * Filter candidates scenario specific requirement vise. +*/ +/datum/antag_scenario/proc/trim_candidates() + for(var/mob/new_player/candidate as anything in candidates) + var/client/candidate_client = candidate.client + var/datum/mind/candidate_mind = candidate.mind + if(!candidate_client || !candidate_mind || !candidate.ready) + candidates.Remove(candidate) + continue + + if(candidate_client.skip_antag) + candidates.Remove(candidate) + continue + + if(candidate_mind.special_role) + candidates.Remove(candidate) + continue + + if(!player_old_enough_antag(candidate_client, antag_role)) + candidates.Remove(candidate) + continue + + if(jobban_isbanned(candidate, ROLE_SYNDICATE) || jobban_isbanned(candidate, antag_role)) + candidates.Remove(candidate) + continue + + if(!(antag_role in candidate.client.prefs.be_special) || (candidate.client.prefs.active_character.species in restricted_species)) + candidates.Remove(candidate) + continue + + if(candidate_mind.assigned_role in restricted_roles) + candidates.Remove(candidate) diff --git a/modular_ss220/antagonists/code/antag_mix/scenarios/antag_team_scenario.dm b/modular_ss220/antagonists/code/antag_mix/scenarios/antag_team_scenario.dm new file mode 100644 index 000000000000..40bddc27db76 --- /dev/null +++ b/modular_ss220/antagonists/code/antag_mix/scenarios/antag_team_scenario.dm @@ -0,0 +1,60 @@ +/datum/antag_scenario/team + /// Path of team, that antags will be joined to. This is required property. + var/datum/team/antag_team = /datum/team + /// Size the team should match. + var/team_size = 1 + /// List of lists of player's minds, picked for teams. Each nested list represents one team. + var/list/picked_teams = list() + + +/datum/antag_scenario/team/pre_execute(population) + if(!ispath(antag_team)) + error("'antag_team' in '[type]' team antag scenario is '[antag_team]' which is invalid.") + + var/max_teams = FLOOR((get_total_antag_cap(population) / team_size), 1) + message_admins("Max teams: [max_teams]") + if(!max_teams) + return FALSE + + var/teams_before = length(picked_teams) + for(var/i in 1 to max_teams) + var/list/datum/mind/members = list() + for(var/j in 1 to team_size) + if(!length(candidates)) + break + + var/mob/new_player/team_member = pick_n_take(candidates) + if(!team_member || !team_member.mind) + error("For some reason 'null' or mindless candidate was present in [type] 'candidates' list") + continue + + var/datum/mind/chosen_mind = team_member.mind + chosen_mind.special_role = antag_special_role + chosen_mind.restricted_roles |= restricted_roles + + members += chosen_mind + assigned |= chosen_mind + + message_admins("Members: [json_encode(members)]") + // If for some reason, not enough members were found - we will try again + if(team_size > length(members)) + max_teams++ + continue + + message_admins("Picked team of: [json_encode(members)]") + picked_teams += list(members) + + return length(picked_teams) - teams_before > 0 + + +/datum/antag_scenario/team/execute() + for(var/list/team_members in picked_teams) + if(!length(team_members)) + continue + + message_admins("Creating team of [json_encode(team_members)]") + var/datum/team/new_team = new antag_team(team_members, FALSE) + for(var/datum/mind/team_member as anything in new_team.members) + team_member.add_antag_datum(antag_datum, new_team) + + return TRUE diff --git a/modular_ss220/antagonists/code/antag_mix/scenarios/minor_scenarios.dm b/modular_ss220/antagonists/code/antag_mix/scenarios/minor_scenarios.dm new file mode 100644 index 000000000000..f0f2c7ae1aad --- /dev/null +++ b/modular_ss220/antagonists/code/antag_mix/scenarios/minor_scenarios.dm @@ -0,0 +1,119 @@ +/datum/antag_scenario/traitor + name = "Traitor" + config_tag = "traitor" + abstract = FALSE + antag_role = ROLE_TRAITOR + antag_special_role = SPECIAL_ROLE_TRAITOR + antag_datum = /datum/antagonist/traitor + required_players = 10 + cost = 10 + weight = 1 + antag_cap = 1 + candidates_required = 1 + restricted_roles = list("Cyborg") + protected_roles = list( + "Security Cadet", + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain", + "Blueshield", + "Nanotrasen Representative", + "Magistrate", + "Internal Affairs Agent", + "Nanotrasen Navy Officer", + "Special Operations Officer", + "Syndicate Officer", + "Solar Federation General") + +/datum/antag_scenario/changeling + name = "Changeling" + config_tag = "changeling" + abstract = FALSE + antag_role = ROLE_CHANGELING + antag_special_role = SPECIAL_ROLE_CHANGELING + antag_datum = /datum/antagonist/changeling + required_players = 10 + cost = 10 + weight = 1 + antag_cap = 1 + candidates_required = 1 + restricted_roles = list("Cyborg", "AI") + protected_roles = list( + "Security Cadet", + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain", + "Blueshield", + "Nanotrasen Representative", + "Magistrate", + "Internal Affairs Agent", + "Nanotrasen Navy Officer", + "Special Operations Officer", + "Syndicate Officer", + "Solar Federation General") + restricted_species = list("Machine") + +/datum/antag_scenario/vampire + name = "Vampire" + config_tag = "vampire" + abstract = FALSE + antag_role = ROLE_VAMPIRE + antag_special_role = SPECIAL_ROLE_VAMPIRE + antag_datum = /datum/antagonist/vampire + required_players = 10 + cost = 10 + weight = 1 + antag_cap = 1 + candidates_required = 1 + restricted_roles = list("Cyborg", "AI", "Chaplain") + protected_roles = list( + "Security Cadet", + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain", + "Blueshield", + "Nanotrasen Representative", + "Magistrate", + "Internal Affairs Agent", + "Nanotrasen Navy Officer", + "Special Operations Officer", + "Syndicate Officer", + "Solar Federation General") + restricted_species = list("Machine") + +/datum/antag_scenario/team/blood_brothers + name = "Blood Brothers" + config_tag = "blood_brothers" + abstract = FALSE + antag_role = ROLE_BLOOD_BROTHER + antag_special_role = SPECIAL_ROLE_BLOOD_BROTHER + antag_datum = /datum/antagonist/blood_brother + antag_team = /datum/team/blood_brothers_team + required_players = 20 + cost = 20 + weight = 1 + antag_cap = 2 + candidates_required = 2 + team_size = 2 + restricted_roles = list("Cyborg", "AI") + protected_roles = list( + "Security Cadet", + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain", + "Blueshield", + "Nanotrasen Representative", + "Magistrate", + "Internal Affairs Agent", + "Nanotrasen Navy Officer", + "Special Operations Officer", + "Syndicate Officer", + "Solar Federation General") diff --git a/modular_ss220/antagonists/code/blood_brothers/blood_brothers_datum.dm b/modular_ss220/antagonists/code/blood_brothers/blood_brothers_datum.dm new file mode 100644 index 000000000000..888677a0921a --- /dev/null +++ b/modular_ss220/antagonists/code/blood_brothers/blood_brothers_datum.dm @@ -0,0 +1,147 @@ +/datum/game_mode + var/list/datum/mind/blood_brothers = list() + +/datum/antagonist/blood_brother + name = "Blood Brother" + roundend_category = "Blood Brothers" + job_rank = ROLE_BLOOD_BROTHER + special_role = SPECIAL_ROLE_BLOOD_BROTHER + antag_hud_name = "hudbloodbrother" + antag_hud_type = ANTAG_HUD_BLOOD_BROTHER + clown_gain_text = {"Ты очень много тренировался, чтобы наконец-то вступить в Синдикат, даже твоя клоунская натура не сможет помешать. + Ты уверенно владеешь всем оружием."} + clown_removal_text = "Все тренировки пошли насмарку - ты как был клоуном, так и остался." + wiki_page_name = "Blood_Brothers" + var/datum/team/blood_brothers_team/brothers_team = null + +/datum/antagonist/blood_brother/add_owner_to_gamemode() + SSticker.mode.blood_brothers |= owner + +/datum/antagonist/blood_brother/remove_owner_from_gamemode() + SSticker.mode.blood_brothers -= owner + +/datum/antagonist/blood_brother/greet() + . = ..() + SEND_SOUND(owner.current, sound('modular_ss220/antagonists/sound/ambience/antag/blood_brothers_intro.ogg')) + + . += {"Вы ненавидите Нанотрейзен, корпорация дала вам достаточно поводов для этого. + Лучшую возможность бороться с ней предоставляет Синдикат, так что вы со своим напарником, разделяющим подобные чувства, связались с ними, чтобы вступить в их ряды. + Теперь вы кровные братья и вы готовы сделать все ради общей цели."} + + var/brother_names = get_brother_names_text() + if(brother_names) + . += "Оберегай и кооперируйся с братьями: [brother_names]. Ведь только вместе вы сможете добиться успеха!" + antag_memory += "Ваши братья: [brother_names]
" + + var/meeting_area = get_meeting_area() + if(meeting_area) + . += "Встреть их в назначенном месте: [meeting_area]" + antag_memory += "Место встречи: [meeting_area]
" + + . += "Слава Синдикату!" + +/datum/antagonist/blood_brother/create_team(datum/team/blood_brothers_team/team) + if(!istype(team)) + error("Wrong team type passed to [type].") + return + + brothers_team = team + return brothers_team + +/datum/antagonist/blood_brother/get_team() + return brothers_team + +/datum/antagonist/blood_brother/proc/get_brother_names_text() + PRIVATE_PROC(TRUE) + var/datum/team/blood_brothers_team/team = get_team() + if(!istype(team)) + return "" + + return team.get_brother_names_text(owner) + +/datum/antagonist/blood_brother/proc/get_meeting_area() + PRIVATE_PROC(TRUE) + var/datum/team/blood_brothers_team/team = get_team() + if(!istype(team)) + return "" + + return team.meeting_area + +/datum/antagonist/blood_brother/proc/admin_add(admin, datum/mind/new_antag) + if(!new_antag) + return FALSE + + if(new_antag.has_antag_datum(/datum/antagonist/blood_brother)) + alert(admin, "Candidate is already blood brother") + return FALSE + + if(!can_be_owned(new_antag)) + alert(admin, "Candidate can't be blood brother.") + return FALSE + + switch(alert(admin, "Create new team or add to existing?", "Blood Brothers", "Create", "Add", "Cancel")) + if("Create") + return create_new_blood_brothers_team(admin, new_antag) + if("Add") + return add_to_existing_blood_brothers_team(admin, new_antag) + + return FALSE + +/datum/antagonist/blood_brother/proc/create_new_blood_brothers_team(admin, datum/mind/first_brother) + PRIVATE_PROC(TRUE) + var/list/choices = list() + for(var/mob/living/alive_living_mob in GLOB.alive_mob_list) + var/datum/mind/mind_to_check = alive_living_mob.mind + if(!mind_to_check || mind_to_check == first_brother || !can_be_owned(mind_to_check)) + continue + + choices["[mind_to_check.name]([alive_living_mob.ckey])"] = mind_to_check + + if(!length(choices)) + alert(admin, "No candidates for second blood brother found.") + return FALSE + + sortTim(choices, GLOBAL_PROC_REF(cmp_text_asc)) + var/choice = tgui_input_list(admin, "Choose the blood brother.", "Brother", choices) + if(!choice) + return FALSE + + var/datum/mind/second_brother = choices[choice] + if(!second_brother) + stack_trace("Chosen second blood brother `[choice]` was `null` for some reason") + + var/datum/team/blood_brothers_team/brother_team = new(list(first_brother, second_brother), FALSE) + if(isnull(first_brother.add_antag_datum(src, brother_team))) + qdel(brother_team) + return FALSE + + if(isnull(second_brother.add_antag_datum(/datum/antagonist/blood_brother, brother_team))) + error("Antag datum couldn't be granted to second brother in `/datum/antagonist/blood_brother/proc/create_new_blood_brothers_team`") + alert(admin, "Second brother wasn't made into `Blood Brother` for some reason. Try again.") + return TRUE + + log_admin("[key_name(admin)] made [key_name(first_brother)] and [key_name(second_brother)] into blood brothers.") + return TRUE + +/datum/antagonist/blood_brother/proc/add_to_existing_blood_brothers_team(admin, datum/mind/brother_to_add) + PRIVATE_PROC(TRUE) + var/list/choices = list() + for(var/datum/team/blood_brothers_team/team in GLOB.antagonist_teams) + var/list/member_ckeys = team.get_member_ckeys() + choices["[team.name][length(member_ckeys) ? "([member_ckeys.Join(", ")])" : ""]"] = team + + if(!length(choices)) + alert(admin, "No blood brother teams found. Try creating new one.") + return FALSE + + sortTim(choices, GLOBAL_PROC_REF(cmp_text_asc)) + var/choice = tgui_input_list(admin, "Choose the blood brothers team.", "Blood Brothers Team", choices) + if(!choice) + return FALSE + + var/datum/team/blood_brothers_team/chosen_team = choices[choice] + if(!chosen_team) + stack_trace("Chosen blood brothers team `[choice]` was `null` for some reason.") + + + return !isnull(brother_to_add.add_antag_datum(src, chosen_team)) diff --git a/modular_ss220/antagonists/code/blood_brothers/blood_brothers_team.dm b/modular_ss220/antagonists/code/blood_brothers/blood_brothers_team.dm new file mode 100644 index 000000000000..5f3640ecd464 --- /dev/null +++ b/modular_ss220/antagonists/code/blood_brothers/blood_brothers_team.dm @@ -0,0 +1,105 @@ +/datum/team/proc/get_member_ckeys() + var/list/member_ckeys = list() + for(var/datum/mind/member as anything in members) + if(!member.current) + continue + + member_ckeys += member.current.ckey + + return member_ckeys + + +/datum/team/blood_brothers_team + name = "Blood Brothers" + antag_datum_type = /datum/antagonist/blood_brother + /// Amount of objectives to give + var/objectives_amount = 2 + /// Probability of hijack objective in percent + var/hijack_probability = 2 + /// Selected meeting area given to the team members + var/meeting_area = "Согласованная локация" + /// List of meeting areas that are randomly selected. + var/static/meeting_areas = list( + "Бар", + "Дормы", + "Док отбытия", + "Док прибытия", + "Голодек", + "Ассистентская", + "Храм", + "Библиотека", + ) + /// List of objective_path -> weight + var/static/list/available_objectives = list( + /datum/objective/maroon = 1, + /datum/objective/assassinate = 1, + /datum/objective/assassinateonce = 1, + /datum/objective/debrain = 1, + /datum/objective/steal = 1, + /datum/objective/protect = 1 + ) + +/datum/team/blood_brothers_team/New(list/starting_members, add_antag_datum) + . = ..() + pick_meeting_area() + forge_objectives() + +/datum/team/blood_brothers_team/add_member(datum/mind/new_member, add_antag_datum) + . = ..() + update_name() + +/datum/team/blood_brothers_team/remove_member(datum/mind/member) + . = ..() + update_name() + +/datum/team/blood_brothers_team/proc/get_brother_names_text(datum/mind/brother_to_exclude) + var/list/brother_names = list() + for(var/datum/mind/brother as anything in members) + if(brother == brother_to_exclude) + continue + + brother_names += brother.name + + return brother_names.Join(", ") + +/datum/team/blood_brothers_team/proc/pick_meeting_area() + PRIVATE_PROC(TRUE) + var/chosen_meeting_area = pick(meeting_areas) + if(istext(chosen_meeting_area)) + meeting_area = chosen_meeting_area + +/datum/team/blood_brothers_team/proc/update_name() + PRIVATE_PROC(TRUE) + var/new_name = get_brother_names_text() + if(!new_name) + name = initial(name) + return + + name = "[initial(name)] of [new_name]" + +/datum/team/blood_brothers_team/proc/forge_objectives() + PRIVATE_PROC(TRUE) + var/is_hijacker = prob(hijack_probability) + for(var/i in 1 to (objectives_amount - is_hijacker)) + forge_single_objective() + + if(is_hijacker) + add_team_objective(new /datum/objective/hijack) + else + add_team_objective(new /datum/objective/escape( + {"Сбегите на шаттле или спасательной капсуле вместе с братьями. + Вы должны быть живы и свободны(Не находиться в бриге шаттла и не быть закованными в наручники). + Если хотя бы один из вас не удовлетворяет условиям - задание будет провалено для всех! + "})) + +/datum/team/blood_brothers_team/proc/forge_single_objective() + PRIVATE_PROC(TRUE) + if(prob(10) && length(active_ais())) + add_team_objective(new /datum/objective/destroy) + else + var/datum/objective/objective_path = pickweight(available_objectives) + if(!ispath(objective_path)) + error("Wrong objective path in 'available_objectives' of '[type]'") + return + + add_team_objective(new objective_path()) diff --git a/modular_ss220/antagonists/code/configuration/antag_mix_configuration.dm b/modular_ss220/antagonists/code/configuration/antag_mix_configuration.dm new file mode 100644 index 000000000000..ac8fddc37435 --- /dev/null +++ b/modular_ss220/antagonists/code/configuration/antag_mix_configuration.dm @@ -0,0 +1,29 @@ +/datum/server_configuration + var/datum/configuration_section/antag_mix_gamemode_configuration/antag_mix_gamemode + +/datum/configuration_section/antag_mix_gamemode_configuration + protection_state = PROTECTION_READONLY + /// Antag mix budget multiplied. By default it's 1 - so budged is calculated without any modifications + var/budget_multiplier = 1 + /// Max antag fraction defines the percent of antags relatively to ready players. Must be value between 0 and 1. + /// 0 means that no antags can be present, 1 - all players can be antags. + var/max_antag_fraction = 0.1 + /// Assoc list of antag scenario config tag -> list of parameters of this scenarios + var/list/params_by_scenario = list() + +/datum/server_configuration/load_all_sections() + . = ..() + antag_mix_gamemode = new() + safe_load(antag_mix_gamemode, "antag_mix_gamemode_configuration") + +/datum/configuration_section/antag_mix_gamemode_configuration/load_data(list/data) + CONFIG_LOAD_NUM(budget_multiplier, data["budget_multiplier"]) + CONFIG_LOAD_NUM(max_antag_fraction, data["max_antag_fraction"]) + + for(var/list/scenario_params in data["antag_scenarios_configuration"]) + var/tag = scenario_params["tag"] + if(!tag) + error("`tag` missing in `antag_scenarios_configuration`.") + continue + + params_by_scenario[tag] = scenario_params["params"] diff --git a/modular_ss220/antagonists/code/mind/memory_edit.dm b/modular_ss220/antagonists/code/mind/memory_edit.dm new file mode 100644 index 000000000000..6ae3574b00f8 --- /dev/null +++ b/modular_ss220/antagonists/code/mind/memory_edit.dm @@ -0,0 +1,119 @@ +/datum/mind/edit_memory() + if(!SSticker || !SSticker.mode) + alert("Not before round-start!", "Alert") + return + + var/list/out = list("[name][(current && (current.real_name != name))?" (as [current.real_name])" : ""]") + out.Add("Mind currently owned by key: [key] [active ? "(synced)" : "(not synced)"]") + out.Add("Assigned role: [assigned_role]. Edit") + out.Add("Factions and special roles:") + + var/list/sections = list( + "implant", + "revolution", + "cult", + "wizard", + "changeling", + "vampire", // "traitorvamp", + "nuclear", + "traitor", // "traitorchan", + ) + var/mob/living/carbon/human/H = current + if(ishuman(current)) + /** Impanted**/ + sections["implant"] = memory_edit_implant(H) + /** REVOLUTION ***/ + sections["revolution"] = memory_edit_revolution(H) + /** WIZARD ***/ + sections["wizard"] = memory_edit_wizard(H) + /** CHANGELING ***/ + sections["changeling"] = memory_edit_changeling(H) + /** VAMPIRE ***/ + sections["vampire"] = memory_edit_vampire(H) + /** NUCLEAR ***/ + sections["nuclear"] = memory_edit_nuclear(H) + /** Abductors **/ + sections["abductor"] = memory_edit_abductor(H) + sections["eventmisc"] = memory_edit_eventmisc(H) + /** TRAITOR ***/ + sections["traitor"] = memory_edit_traitor() + /** BLOOD BROTHER **/ + sections["blood_brother"] = memory_edit_blood_brother() + if(!issilicon(current)) + /** CULT ***/ + sections["cult"] = memory_edit_cult(H) + /** SILICON ***/ + if(issilicon(current)) + sections["silicon"] = memory_edit_silicon() + /* + This prioritizes antags relevant to the current round to make them appear at the top of the panel. + Traitorchan and traitorvamp are snowflaked in because they have multiple sections. + */ + if(SSticker.mode.config_tag == "traitorchan") + if(sections["traitor"]) + out.Add(sections["traitor"]) + if(sections["changeling"]) + out.Add(sections["changeling"]) + sections -= "traitor" + sections -= "changeling" + // Elif technically unnecessary but it makes the following else look better + else if(SSticker.mode.config_tag == "traitorvamp") + if(sections["traitor"]) + out.Add(sections["traitor"]) + if(sections["vampire"]) + out.Add(sections["vampire"]) + sections -= "traitor" + sections -= "vampire" + else + if(sections[SSticker.mode.config_tag]) + out.Add(sections[SSticker.mode.config_tag]) + sections -= SSticker.mode.config_tag + + for(var/i in sections) + if(sections[i]) + out.Add(sections[i]) + + out.Add(memory_edit_uplink()) + + out.Add("Memory:") + out.Add(memory) + out.Add("Edit memory
") + out.Add("Objectives:") + out.Add(gen_objective_text(admin = TRUE)) + out.Add("Add objective
") + out.Add("Announce objectives
") + DIRECT_OUTPUT(usr, browse(out.Join("
"), "window=edit_memory[src];size=500x500")) + +/datum/mind/proc/memory_edit_blood_brother() + . = _memory_edit_header("blood brother") + if(has_antag_datum(/datum/antagonist/blood_brother)) + . += "BLOOD BROTHER|Remove" + else + . += "Make Blood Brother" + + . += _memory_edit_role_enabled(ROLE_BLOOD_BROTHER) + + +/datum/mind/Topic(href, href_list) + if(!check_rights(R_ADMIN)) + return + + if(href_list["blood_brother"]) + switch(href_list["blood_brother"]) + if("clear") + clear_antag_datum(/datum/antagonist/blood_brother) + if("make") + var/datum/antagonist/blood_brother/brother_antag_datum = new + if(!brother_antag_datum.admin_add(usr, src)) + qdel(brother_antag_datum) + + . = ..() + +/datum/mind/proc/clear_antag_datum(datum/antagonist/antag_datum_to_clear) + if(!has_antag_datum(antag_datum_to_clear)) + return + + remove_antag_datum(antag_datum_to_clear) + var/antag_name = initial(antag_datum_to_clear.name) + log_admin("[key_name(usr)] has removed [antag_name] from [key_name(current)]") + message_admins("[key_name_admin(usr)] has removed [antag_name] from [key_name_admin(current)]") diff --git a/modular_ss220/antagonists/sound/ambience/antag/blood_brothers_intro.ogg b/modular_ss220/antagonists/sound/ambience/antag/blood_brothers_intro.ogg new file mode 100644 index 000000000000..51e1f421563c Binary files /dev/null and b/modular_ss220/antagonists/sound/ambience/antag/blood_brothers_intro.ogg differ diff --git a/modular_ss220/awaymission_gun/code/items/awaymission_gun.dm b/modular_ss220/awaymission_gun/code/items/awaymission_gun.dm index d1a79a64a5b0..98913e4171b1 100644 --- a/modular_ss220/awaymission_gun/code/items/awaymission_gun.dm +++ b/modular_ss220/awaymission_gun/code/items/awaymission_gun.dm @@ -10,7 +10,6 @@ origin_tech = "combat=5;magnets=3;powerstorage=4" selfcharge = TRUE // Selfcharge is enabled and disabled, and used as the away mission tracker can_charge = 0 - emagged = FALSE /obj/item/gun/energy/laser/awaymission_aeg/Initialize(mapload) . = ..() @@ -18,17 +17,15 @@ onTransitZ(new_z = loc.z) /obj/item/gun/energy/laser/awaymission_aeg/onTransitZ(old_z, new_z) - if(emagged) - return if(is_away_level(new_z)) if(ismob(loc)) - to_chat(loc, span_notice("Ваш [name] активируется, начиная потреблять энергию от ближайшего беспроводного источника питания.")) + to_chat(loc, span_notice("Ваш [src] активируется, начиная аккумулировать энергию из материи сущего.")) selfcharge = TRUE else if(selfcharge) if(ismob(loc)) - to_chat(loc, span_danger("Ваш [name] деактивируется, так как он находится вне зоны действия источника питания.")) + to_chat(loc, span_danger("Ваш [src] деактивируется, так как он подавляется системами станции.")) cell.charge = 0 selfcharge = FALSE update_icon() @@ -38,54 +35,29 @@ var/mob/M = loc M.unEquip(src) -/obj/item/gun/energy/laser/awaymission_aeg/emag_act(mob/user) - . = ..() - if(emagged) - return - if(user) - if(prob(50)) - user.visible_message(span_warning("От [name] летят искры!"), span_notice("Вы взломали [name], что привело к перезаписи протоколов безопасности. Устройство может быть использовано вне ограничений")) - playsound(loc, 'sound/effects/sparks4.ogg', 30, 1) - do_sparks(5, 1, src) - emagged = TRUE - selfcharge = TRUE - else - user.visible_message(span_warning("От [name] летят искры... Он сейчас взорвётся!"), span_notice("Ой... Что-то пошло не так!")) - do_sparks(5, 1, src) - update_mob() - explosion(loc, -1, 0, 2) - qdel(src) - -/obj/item/gun/energy/laser/awaymission_aeg/emp_act(severity) - . = ..() - emag_act() - // GUNS /obj/item/gun/energy/laser/awaymission_aeg/rnd - name = "Exploreverse Mk I" - desc = "Первый прототип оружия с миниатюрным реактором для исследований в крайне отдаленных секторах. \ - \nДанную модель невозможно подключить к зарядной станции, во избежание истощения подключенных источников питания, \ - в связи с протоколами безопасности, опустошающие заряд при нахождении вне предназначенных мест использования устройств." - origin_tech = "combat=3;magnets=3;powerstorage=4" - force = 10 + name = "Exploreverse Mk.I" + desc = "Прототип оружия с миниатюрным реактором для исследований в крайне отдаленных секторах. \ + \n Данная модель использует экспериментальную систему обратного восполнения, работающую на принципе огромной аккумуляции энергии, но крайне уязвимую к радиопомехам, которыми кишит сектор станции, попростую не работая там." + origin_tech = "combat=2;powerstorage=3" /obj/item/gun/energy/laser/awaymission_aeg/rnd/mk2 - name = "Exploreverse Mk II" - desc = "Второй прототип оружия с миниатюрным реактором и ручным восполнением для исследований в крайне отдаленных секторах. \ - \nДанная модель оснащена системой ручного восполнения энергии типа \"Za.E.-8 A.L'sya\", \ - позволяющий в короткие сроки восполнить необходимую электроэнергию с помощью ручного труда, личной энергии и дергания за рычаг подключенного к системе зарядки. \ - \nСистему автозарядки невозможно использовать, в связи с протоколами безопасности, \ - опустошающие заряд при нахождении вне предназначенных мест использования устройств. \ + name = "Exploreverse Mk.II" + desc = "Второй прототип оружия с миниатюрным реактором и забавным рычагом для исследований в крайне отдаленных секторах. \ + \nДанная модель оснащена системой ручного восполнения энергии \"Za.E.-8 A.L'sya\", \ + позволяющей в короткие сроки восполнить необходимую электроэнергию с помощью ручного труда и конвертации личной энергии подключенного к системе зарядки. \ \nТеперь еще более нелепый дизайн с торчащими проводами!" icon_state = "laser_gate_mk2" - origin_tech = "combat=5;magnets=3;powerstorage=5;programming=3;engineering=5" - force = 10 + origin_tech = "combat=3;magnets=2;powerstorage=2;programming=3;" /obj/item/gun/energy/laser/awaymission_aeg/rnd/mk2/attack_self(mob/living/user) - var/msg_for_all = span_warning("[user.name] усердно давит на рычаг зарядки [name], но он не поддается!") - var/msg_for_user = span_notice("Вы пытаетесь надавить на рычаг зарядки [name], но он заблокирован.") + var/msg_for_all = span_warning("[user.name] усердно давит на рычаг зарядки [src], но он не поддается!") + var/msg_for_user = span_notice("Вы пытаетесь надавить на рычаг зарядки [src], но он заблокирован.") + var/msg_recharge_all = span_notice("[user.name] усердно давит на рычаг зарядки [src]...") + var/msg_recharge_user = span_notice("Вы со всей силы давите на рычаг зарядки [src], пытаясь зарядить её...") - if(!is_away_level(loc.z) && !emagged) + if(!is_away_level(loc.z)) user.visible_message(msg_for_all, msg_for_user) return FALSE @@ -93,14 +65,17 @@ user.visible_message(msg_for_all, msg_for_user) return FALSE - if(user.nutrition <= NUTRITION_LEVEL_HYPOGLYCEMIA) - user.visible_message(span_warning("[user.name] слабо давит на [name], но он ослаб!"), span_notice("Вы пытаетесь надавить на рычаг зарядки [name], но не можете из-за усталости!")) + if(user.nutrition <= NUTRITION_LEVEL_STARVING) + user.visible_message(span_warning("[user.name] слабо давит на [src], но бесполезно: слишком мало сил!"), span_notice("Вы пытаетесь надавить на рычаг зарядки [src], но не можете из-за голода и усталости!")) return FALSE + user.visible_message(msg_recharge_all, msg_recharge_user) playsound(loc, 'sound/effects/sparks3.ogg', 10, 1) do_sparks(1, 1, src) - cell.give(25) - user.adjust_nutrition(-2) - + if(!do_after_once(user, 3 SECONDS, target = src)) + return + cell.give(166) + on_recharge() + user.adjust_nutrition(-25) . = ..() diff --git a/modular_ss220/balance/_balance.dme b/modular_ss220/balance/_balance.dme index 21965e87513c..2d9559a712cb 100644 --- a/modular_ss220/balance/_balance.dme +++ b/modular_ss220/balance/_balance.dme @@ -4,4 +4,4 @@ #include "code/items/weapons.dm" #include "code/jobs/warden.dm" #include "code/mobs/aliens/larva.dm" -#include "code/species/nucleation.dm" +#include "code/species/machine.dm" diff --git a/modular_ss220/balance/code/species/machine.dm b/modular_ss220/balance/code/species/machine.dm new file mode 100644 index 000000000000..a33fb1f80e26 --- /dev/null +++ b/modular_ss220/balance/code/species/machine.dm @@ -0,0 +1,12 @@ +/datum/species/machine + speciesbox = /obj/item/storage/box/survival_ipc + +// Survival box for IPC +/obj/item/storage/box/survival_ipc + icon = 'modular_ss220/aesthetics/boxes/icons/boxes.dmi' + icon_state = "machine_box" + +/obj/item/storage/box/survival_ipc/populate_contents() + new /obj/item/weldingtool(src) + new /obj/item/stack/cable_coil/five(src) + new /obj/item/flashlight/flare/glowstick/emergency(src) diff --git a/modular_ss220/balance/code/species/nucleation.dm b/modular_ss220/balance/code/species/nucleation.dm deleted file mode 100644 index 208bc5411f79..000000000000 --- a/modular_ss220/balance/code/species/nucleation.dm +++ /dev/null @@ -1,2 +0,0 @@ -/datum/species/nucleation - blacklisted = FALSE diff --git a/modular_ss220/clothing/_clothing.dme b/modular_ss220/clothing/_clothing.dme index e84178f0c88e..59210474bced 100644 --- a/modular_ss220/clothing/_clothing.dme +++ b/modular_ss220/clothing/_clothing.dme @@ -9,3 +9,4 @@ #include "code/cloaks.dm" #include "code/garment_bag.dm" #include "code/hev_suit.dm" +#include "code/wallets.dm" diff --git a/modular_ss220/clothing/code/hev_suit.dm b/modular_ss220/clothing/code/hev_suit.dm index 87fe284ba079..c92cae7db2dd 100644 --- a/modular_ss220/clothing/code/hev_suit.dm +++ b/modular_ss220/clothing/code/hev_suit.dm @@ -35,8 +35,6 @@ var/list/sound_queue = list() - var/emag_doses_left = 5 - var/mob/living/carbon/owner var/obj/item/geiger_counter/GC @@ -61,7 +59,7 @@ var/sound_file = sound_data[1] var/sound_delay = sound_data[2] - playsound(src, sound_file, 50) + playsound(owner, sound_file, 20) sound_queue.Cut(1,2) @@ -70,16 +68,6 @@ addtimer(CALLBACK(src, PROC_REF(process_sound_queue)), sound_delay) -/obj/item/clothing/suit/space/hev/emag_act(mob/user, obj/item/card/emag/emag_card) - if(flags & emagged) - return FALSE - if(owner) - to_chat(owner, span_warning("You need to take off \the [name] before emagging it.")) - return FALSE - flags |= emagged - do_sparks(8, FALSE, get_turf(src)) - return TRUE - /obj/item/clothing/suit/space/hev/proc/add_queue(desired_file, desired_delay, purge_queue=FALSE) var/was_empty_sound_queue = !length(sound_queue) @@ -100,12 +88,10 @@ if(slot == SLOT_HUD_OUTER_SUIT && iscarbon(M)) for(var/voice in funny_signals) RegisterSignal(M, voice, funny_signals[voice]) - add_queue('modular_ss220/aesthetics_sounds/sound/hev/blip.ogg', 2 SECONDS, purge_queue=TRUE) owner = M + add_queue('modular_ss220/aesthetics_sounds/sound/hev/blip.ogg', 2 SECONDS, purge_queue=TRUE) add_queue('modular_ss220/aesthetics_sounds/sound/hev/01_hev_logon.ogg', 11 SECONDS) - add_queue('modular_ss220/aesthetics_sounds/sound/hev/03_atmospherics_on.ogg', 6 SECONDS) - add_queue('modular_ss220/aesthetics_sounds/sound/hev/08_communications_on.ogg', 5 SECONDS) - add_queue('modular_ss220/aesthetics_sounds/sound/hev/04_vitalsigns_on.ogg', 5 SECONDS) + add_queue('modular_ss220/aesthetics_sounds/sound/hev/04_vitalsigns_on.ogg', 4 SECONDS) add_queue('modular_ss220/aesthetics_sounds/sound/hev/09_safe_day.ogg', 8 SECONDS) else for(var/voice in funny_signals) @@ -124,15 +110,14 @@ //Mute /obj/item/clothing/suit/space/hev/proc/handle_speech(datum/source, mob/speech_args) SIGNAL_HANDLER - if(!(flags & emagged)) - var/static/list/cancel_messages = list( - "Вам трудно говорить, когда костюм туго сдавливает ваше горло...", - "Ваши связки ощущаются сдавленными, что пресекает любую попытку выдавить хоть какой-то звук...", - "Вы пытаетесь что-то сказать, но костюм сдавливает вам гортань..." - ) - - speech_args[SPEECH_MESSAGE] = "..." - to_chat(source, span_warning(pick(cancel_messages))) + var/static/list/cancel_messages = list( + "Вам трудно говорить, когда костюм туго сдавливает ваше горло...", + "Ваши связки ощущаются сдавленными, что пресекает любую попытку выдавить хоть какой-то звук...", + "Вы пытаетесь что-то сказать, но костюм сдавливает вам гортань..." + ) + + speech_args[SPEECH_MESSAGE] = "..." + to_chat(source, span_warning(pick(cancel_messages))) //Fire /obj/item/clothing/suit/space/hev/proc/handle_ignite(mob/living) diff --git a/modular_ss220/clothing/code/mask.dm b/modular_ss220/clothing/code/mask.dm index 5ec1f736a7f7..bb564a5bc64b 100644 --- a/modular_ss220/clothing/code/mask.dm +++ b/modular_ss220/clothing/code/mask.dm @@ -54,6 +54,14 @@ /datum/outfit/job/chef mask = /obj/item/clothing/mask/fakemoustache/chef +/obj/item/clothing/mask/breath/red_gas + name = "ПРС-1" + desc = "Стильная дыхательная маска в виде противогаза, не скрывает лицо." + icon = 'modular_ss220/clothing/icons/object/masks.dmi' + icon_state = "red_gas" + icon_override = 'modular_ss220/clothing/icons/mob/mask.dmi' + item_state = "red_gas" + /obj/item/clothing/mask/breath/breathscarf name = "шарф с системой дыхания" desc = "Стильный и инновационный шарф, который служит дыхательной маской в экстремальных ситуациях." diff --git a/modular_ss220/clothing/code/wallets.dm b/modular_ss220/clothing/code/wallets.dm new file mode 100644 index 000000000000..446912d266f0 --- /dev/null +++ b/modular_ss220/clothing/code/wallets.dm @@ -0,0 +1,30 @@ +/obj/item/storage/wallet + var/photo_overlay = "photo" + +/obj/item/storage/wallet/wallet_NT + name = "leather wallet NT" + desc = "Ваш кошелек настолько шикарен, что с ним вы выглядите просто потрясающе." + icon = 'modular_ss220/clothing/icons/object/wallets.dmi' + icon_state = "wallet_NT" + photo_overlay = "photo_NT" + +/obj/item/storage/wallet/wallet_USSP_1 + name = "leather wallet USSP" + desc = "Говорят, такие кошельки в СССП носят исключительно для зажигалок." + icon = 'modular_ss220/clothing/icons/object/wallets.dmi' + icon_state = "wallet_USSP_1" + photo_overlay = "photo_USSP" + storage_slots = 5 + +/datum/prize_item/wallet_USSP_1 + name = "Настоящий кошелёк СССП!" + desc = "Красота" + typepath = /obj/item/storage/wallet/wallet_USSP_1 + cost = 35 + +/obj/item/storage/wallet/wallet_USSP_2 + name = "leather wallet USSP" + desc = "Говорят, такие кошельки в СССП носят исключительно для зажигалок." + icon = 'modular_ss220/clothing/icons/object/wallets.dmi' + icon_state = "wallet_USSP_2" + photo_overlay = "photo_USSP" diff --git a/modular_ss220/clothing/icons/mob/mask.dmi b/modular_ss220/clothing/icons/mob/mask.dmi index a9c07931e17c..2362205420f4 100644 Binary files a/modular_ss220/clothing/icons/mob/mask.dmi and b/modular_ss220/clothing/icons/mob/mask.dmi differ diff --git a/modular_ss220/clothing/icons/object/masks.dmi b/modular_ss220/clothing/icons/object/masks.dmi index 72ab5940495c..9c82cc1ce066 100644 Binary files a/modular_ss220/clothing/icons/object/masks.dmi and b/modular_ss220/clothing/icons/object/masks.dmi differ diff --git a/modular_ss220/clothing/icons/object/wallets.dmi b/modular_ss220/clothing/icons/object/wallets.dmi new file mode 100644 index 000000000000..251d2b4733d1 Binary files /dev/null and b/modular_ss220/clothing/icons/object/wallets.dmi differ diff --git a/modular_ss220/devices/code/items/radio.dm b/modular_ss220/devices/code/items/radio.dm index 5e12a73a4daf..b31e99259ede 100644 --- a/modular_ss220/devices/code/items/radio.dm +++ b/modular_ss220/devices/code/items/radio.dm @@ -36,13 +36,13 @@ * Radio QoL improvement * So players can Alt+click to enable dynamic and Ctrl+Shift+click to enable speaker */ -/obj/item/radio/examine(mob/user) +/obj/item/radio/headset/examine(mob/user) . = ..() if(in_range(src, user) || loc == user) . += span_info("Alt-click on \the [name] to toggle broadcasting.") . += span_info("Ctrl-Shift-click on \the [src] to toggle speaker.") -/obj/item/radio/AltClick(mob/user) +/obj/item/radio/headset/AltClick(mob/user) if(!Adjacent(user)) return if(!iscarbon(usr) && !isrobot(usr)) @@ -53,7 +53,7 @@ broadcasting = !broadcasting to_chat(user, span_notice("You toggle broadcasting [broadcasting ? "on" : "off"].")) -/obj/item/radio/CtrlShiftClick(mob/user) +/obj/item/radio/headset/CtrlShiftClick(mob/user) if(!Adjacent(user)) return if(!iscarbon(usr) && !isrobot(usr)) diff --git a/modular_ss220/discord_link/code/discord.dm b/modular_ss220/discord_link/code/discord.dm index 43f8cd426908..7ad76fb9d8f6 100644 --- a/modular_ss220/discord_link/code/discord.dm +++ b/modular_ss220/discord_link/code/discord.dm @@ -41,7 +41,7 @@ return qdel(query_replace_token) - to_chat(usr, span_darkmblue("Для завершения, вставьте это:
") + span_boldannounce("/привязать token:[token]") + span_darkmblue("
В канал #дом-бота в Discord-сообществе!")) + to_chat(usr, span_darkmblue("Для завершения, вставьте это:
") + span_boldannounce("/привязать token:[token]") + span_darkmblue("
В канал #ss13-бот в Discord-сообществе!")) /mob/new_player/Topic(href, href_list) if(src != usr) diff --git a/modular_ss220/donor/code/client_procs.dm b/modular_ss220/donor/code/client_procs.dm index 97819cbc77b1..4088d6d80072 100644 --- a/modular_ss220/donor/code/client_procs.dm +++ b/modular_ss220/donor/code/client_procs.dm @@ -2,8 +2,10 @@ /datum/client_login_processor/donator_check/proc/CheckAutoDonatorLevel(client/C) + var/list/big_worker = list("Админ", "Старший Администратор", "Разработчик", "Бригадир мапперов", "Маппер") + if(C.holder) - C.donator_level = 2 + C.donator_level = (C.holder.rank in big_worker) ? BIG_WORKER_TIER : LITTLE_WORKER_TIER return var/is_wl = GLOB.configuration.overflow.reroute_cap == 0.5 ? TRUE : FALSE @@ -17,7 +19,7 @@ return while(rank_ckey_read.NextRow()) - C.donator_level = 2 + C.donator_level = (rank_ckey_read.item[1] in big_worker) ? BIG_WORKER_TIER : LITTLE_WORKER_TIER qdel(rank_ckey_read) @@ -42,7 +44,13 @@ if(10000 to INFINITY) donator_level = DONATOR_LEVEL_MAX - C.donator_level = max(donator_level, C.donator_level) + switch(C.donator_level) + if(LITTLE_WORKER_TIER) + C.donator_level = LITTLE_WORKER_TTS_LEVEL > donator_level ? C.donator_level : donator_level + if(BIG_WORKER_TIER) + C.donator_level = BIG_WORKER_TTS_LEVEL > donator_level ? C.donator_level : donator_level + else + C.donator_level = donator_level C.donor_loadout_points() @@ -77,6 +85,10 @@ prefs.max_gear_slots += 12 if(5) prefs.max_gear_slots += 16 + if(LITTLE_WORKER_TIER) + prefs.max_gear_slots += 1 + if(BIG_WORKER_TIER) + prefs.max_gear_slots += 5 /client/proc/donor_character_slots() if(!prefs) @@ -84,6 +96,12 @@ prefs.max_save_slots = MAX_SAVE_SLOTS_SS220 + 5 * donator_level + switch(donator_level) + if(LITTLE_WORKER_TIER) + prefs.max_save_slots = 7 + if(BIG_WORKER_TIER) + prefs.max_save_slots = 10 + prefs.character_saves.len = prefs.max_save_slots #undef MAX_SAVE_SLOTS_SS220 diff --git a/modular_ss220/emotes/code/emote_translations.dm b/modular_ss220/emotes/code/emote_translations.dm index 8d3033658ce4..eb6f3ce2bb5a 100644 --- a/modular_ss220/emotes/code/emote_translations.dm +++ b/modular_ss220/emotes/code/emote_translations.dm @@ -232,7 +232,7 @@ /datum/emote/living/carbon/yawn message = "зевает." muzzled_noises = list("устало", "медленно", "сонно") - emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH | EMOTE_SOUND + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH /datum/emote/living/carbon/exhale message = "выдыхает." @@ -503,31 +503,31 @@ /// Brain Emotes /// /////////////////// -/datum/emote/living/carbon/brain/alarm +/datum/emote/living/brain/alarm message = "подает сигнал тревоги." self_message = "Вы подаете сигнал тревоги." -/datum/emote/living/carbon/brain/alert +/datum/emote/living/brain/alert message = "издаёт страдальческий звук." self_message = "Вы издаёте страдальческий звук." -/datum/emote/living/carbon/brain/notice +/datum/emote/living/brain/notice message = "воспроизводит громкий звук." self_message = "Вы воспроизводите громкий звук." -/datum/emote/living/carbon/brain/flash +/datum/emote/living/brain/flash message = "начинает быстро мигать лампочками!" -/datum/emote/living/carbon/brain/whistle +/datum/emote/living/brain/whistle message = "свистит." self_message = "Вы свистите." - emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH | EMOTE_SOUND + emote_type = EMOTE_AUDIBLE | EMOTE_MOUTH sound = "modular_ss220/emotes/audio/whistle.ogg" -/datum/emote/living/carbon/brain/beep +/datum/emote/living/brain/beep message = "бипает." self_message = "Вы бипаете." -/datum/emote/living/carbon/brain/boop +/datum/emote/living/brain/boop message = "бупает." self_message = "вы бупаете." diff --git a/modular_ss220/gateway/_gateway.dme b/modular_ss220/gateway/_gateway.dme index a07e04caa1db..37a43303cb27 100644 --- a/modular_ss220/gateway/_gateway.dme +++ b/modular_ss220/gateway/_gateway.dme @@ -4,3 +4,4 @@ #include "code/gateway.dm" #include "code/gateway_config.dm" #include "code/gateway_initialize.dm" +#include "code/landmark.dm" diff --git a/modular_ss220/gateway/code/landmark.dm b/modular_ss220/gateway/code/landmark.dm new file mode 100644 index 000000000000..1ae8869fa663 --- /dev/null +++ b/modular_ss220/gateway/code/landmark.dm @@ -0,0 +1,10 @@ +/obj/effect/landmark/awaystart + name = "awaystart" + icon = 'icons/effects/spawner_icons.dmi' + icon_state = "Assistant" + +INITIALIZE_IMMEDIATE(/obj/effect/landmark/awaystart) //Without this away missions break + +/obj/effect/landmark/awaystart/Initialize(mapload) + GLOB.awaydestinations.Add(src) + return ..() diff --git a/modular_ss220/hairs/_hairs.dm b/modular_ss220/hairs/_hairs.dm index 9f082c589cac..2940bf0ff79b 100644 --- a/modular_ss220/hairs/_hairs.dm +++ b/modular_ss220/hairs/_hairs.dm @@ -1,4 +1,4 @@ /datum/modpack/hairs name = "Новые волосы" desc = "Добавляет новые типы волос" - author = "oricyUwU, FlutterSnedDraw" + author = "oricyUwU, FlutterSnedDraw, BR54FF" diff --git a/modular_ss220/hairs/_hairs.dme b/modular_ss220/hairs/_hairs.dme index 873e1c645e17..79396d10c85a 100644 --- a/modular_ss220/hairs/_hairs.dme +++ b/modular_ss220/hairs/_hairs.dme @@ -7,5 +7,8 @@ #include "_hairs.dm" #include "code/vulpkanin_hair.dm" #include "code/human_hair.dm" +#include "code/unathi_hair.dm" +#include "code/unathi_head_accessories.dm" +#include "code/unathi_facial_hair.dm" // END_INCLUDE diff --git a/modular_ss220/hairs/code/human_hair.dm b/modular_ss220/hairs/code/human_hair.dm index f481eb0cf9e1..cd3547a17c28 100644 --- a/modular_ss220/hairs/code/human_hair.dm +++ b/modular_ss220/hairs/code/human_hair.dm @@ -5,3 +5,453 @@ /datum/sprite_accessory/hair/crew icon = 'modular_ss220/hairs/icons/human_hair.dmi' icon_state = "crewcut" + +/datum/sprite_accessory/hair/short + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/cut + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/long + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/longalt + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/longer + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/longeralt + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/longest + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/longfringe + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/longestalt + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/halfbang + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/halfbangalt + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/ponytail1 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/ponytail2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/ponytail3 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/sideponytail + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/highponytail + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/wisp + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/parted + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/pompadour + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/quiff + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bedhead + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bedhead2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bedhead3 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/beehive + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bobcurl + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bob + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bowl + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/braid2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/buzz + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/crew + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/combover + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/devillock + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/dreadlocks + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/curls + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/afro + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/afro2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/afro_large + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/sergeant + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/emo + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/flow + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/feather + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/hitop + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/mohawk + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/jensen + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/cia + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/mulder + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/gelled + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/spiky + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/kusanagi + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/kagami + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/himecut + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/braid + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/odango + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/ombre + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/updo + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/skinhead + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/balding + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/longemo + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +////////////////////////////// +//////START VG HAIRSTYLES///// +////////////////////////////// +/datum/sprite_accessory/hair/birdnest + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/unkept + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/modern + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/unshavenmohawk + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/drills + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/minidrills + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") +////////////////////////////// +//////END VG HAIRSTYLES/////// +////////////////////////////// + +/////////////////////////////////// +//////START POLARIS HAIRSTYLES///// +////////////////////////////////// + +/datum/sprite_accessory/hair/rosa + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/jade + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/manbun + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/thinningback + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/thinningfront + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/thinning + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bowlcut2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/ronin + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/topknot + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/regulationmohawk + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/rowbraid + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/rowdualbraid + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/rowbun + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/hightight + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/partfade + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/undercut3 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/undercut2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/undercut1 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/tightbun + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/trimmed + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/trimflat + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/nofade + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/baldfade + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/highfade + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/medfade + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/lowfade + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/oxton + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/doublebun + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/halfshaved + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/shortbangs + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/longeralt2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/nia + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/eighties + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/volaju + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/joestar + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/nitori + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/scully + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/vegeta + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/crono + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/poofy2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/poofy + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/fringetail + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/mahdrills + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/familyman + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/grandebraid + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/fringeemo + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/emo2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/rows2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/rows + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/reversemohawk + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/father + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/beehive2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/sleeze + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/tresshoulder + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/oneshoulder + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/ponytail6 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/ponytail5 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/ponytail4 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/country + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bedheadlong + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/flair + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/twintail + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/short2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bun2 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bun3 + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/shavehair + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/veryshortovereyealternate + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/veryshortovereye + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/shortovereye + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/longovereye + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/father + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/bun4 // Due to a vulp hairstyle called bun + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/////////////////////////////////// +//////END POLARIS HAIRSTYLES/////// +////////////////////////////////// + +////////////////////// +////Ume hairstyles//// +////////////////////// + +/datum/sprite_accessory/hair/eighties_ponytail + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/eighties_ponytailalt + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/big_bow + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/himecut_long + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/himecut_long_ponytail + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/amanita_short + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/long_curls + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") + +/datum/sprite_accessory/hair/long_curls_alt + species_allowed = list("Human", "Slime People", "Tajaran", "Vulpkanin") diff --git a/modular_ss220/hairs/code/unathi_facial_hair.dm b/modular_ss220/hairs/code/unathi_facial_hair.dm new file mode 100644 index 000000000000..6e790056d901 --- /dev/null +++ b/modular_ss220/hairs/code/unathi_facial_hair.dm @@ -0,0 +1,23 @@ +/datum/sprite_accessory/facial_hair/unathi/una_frills_webbed_short_alt + icon = 'modular_ss220/hairs/icons/unathi_facial_hair.dmi' + name = "Short Webbed Frills Alt" + icon_state = "shortfrillsalt" + secondary_theme = "webbing" + +/datum/sprite_accessory/facial_hair/unathi/una_frills_webbed_big + icon = 'modular_ss220/hairs/icons/unathi_facial_hair.dmi' + name = "Big Webbed Frills" + icon_state = "bigfrills" + secondary_theme = "webbing" + +/datum/sprite_accessory/facial_hair/unathi/una_frills_webbed_neckfull + icon = 'modular_ss220/hairs/icons/unathi_facial_hair.dmi' + name = "Neckfull Webbed Frills" + icon_state = "neckfullfrills" + secondary_theme = "webbing" + +/datum/sprite_accessory/facial_hair/unathi/una_frills_webbed_neck + icon = 'modular_ss220/hairs/icons/unathi_facial_hair.dmi' + name = "Neck Webbed Frills" + icon_state = "neckfrills" + secondary_theme = "webbing" diff --git a/modular_ss220/hairs/code/unathi_hair.dm b/modular_ss220/hairs/code/unathi_hair.dm new file mode 100644 index 000000000000..9b36a1829c49 --- /dev/null +++ b/modular_ss220/hairs/code/unathi_hair.dm @@ -0,0 +1,66 @@ +/datum/sprite_accessory/hair/unathi/knight + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Knight" + icon_state = "knight_horns" + +/datum/sprite_accessory/hair/unathi/drake + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Drake" + icon_state = "drake_horns" + +/datum/sprite_accessory/hair/unathi/long + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Long" + icon_state = "long_horns" + +/datum/sprite_accessory/hair/unathi/largecurled + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Large curled" + icon_state = "largecurled_horns" + +/datum/sprite_accessory/hair/unathi/newcurly + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "New curly" + icon_state = "newcurly_horns" + +/datum/sprite_accessory/hair/unathi/guilmon + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Guimon" + icon_state = "guilmon_horns" + +/datum/sprite_accessory/hair/unathi/straight + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Straight" + icon_state = "straight_horns" + +/datum/sprite_accessory/hair/unathi/straightdouble + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Straight double" + icon_state = "straight_double_horns" + +/datum/sprite_accessory/hair/unathi/broken + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken" + icon_state = "broken_horns" + +/datum/sprite_accessory/hair/unathi/brokenl + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken left" + icon_state = "brokenl_horns" + +/datum/sprite_accessory/hair/unathi/brokenr + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken right" + icon_state = "brokenr_horns" + +/datum/sprite_accessory/hair/unathi/una_cobra_ears + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Unathi Cobra Ears" + icon_state = "cobraears" + secondary_theme = "webbing" + +/datum/sprite_accessory/hair/unathi/una_cobra_hood_alt + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Unathi Cobra Hood Smooth" + icon_state = "cobrahood_alt" + secondary_theme = "webbing" diff --git a/modular_ss220/hairs/code/unathi_head_accessories.dm b/modular_ss220/hairs/code/unathi_head_accessories.dm new file mode 100644 index 000000000000..b4fd251c772d --- /dev/null +++ b/modular_ss220/hairs/code/unathi_head_accessories.dm @@ -0,0 +1,164 @@ +/datum/sprite_accessory/head_accessory/unathi/knight + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Knight" + icon_state = "knight_horns" + +/datum/sprite_accessory/head_accessory/unathi/drake + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Drake" + icon_state = "drake_horns" + +/datum/sprite_accessory/head_accessory/unathi/long + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Long" + icon_state = "long_horns" + +/datum/sprite_accessory/head_accessory/unathi/largecurled + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Large curled" + icon_state = "largecurled_horns" + +/datum/sprite_accessory/head_accessory/unathi/newcurly + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "New curly" + icon_state = "newcurly_horns" + +/datum/sprite_accessory/head_accessory/unathi/guilmon + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Guimon" + icon_state = "guilmon_horns" + +/datum/sprite_accessory/head_accessory/unathi/straight + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Straight" + icon_state = "straight_horns" + +/datum/sprite_accessory/head_accessory/unathi/straightdouble + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Straight double" + icon_state = "straight_double_horns" + +/datum/sprite_accessory/head_accessory/unathi/broken + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken" + icon_state = "broken_horns" + +/datum/sprite_accessory/head_accessory/unathi/brokenl + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken left" + icon_state = "brokenl_horns" + +/datum/sprite_accessory/head_accessory/unathi/brokenr + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken right" + icon_state = "brokenr_horns" + +/datum/sprite_accessory/head_accessory/unathi/knight + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Knight" + icon_state = "knight_horns" + +/datum/sprite_accessory/head_accessory/unathi/drake + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Drake" + icon_state = "drake_horns" + +/datum/sprite_accessory/head_accessory/unathi/long + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Long" + icon_state = "long_horns" + +/datum/sprite_accessory/head_accessory/unathi/largecurled + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Large curled" + icon_state = "largecurled_horns" + +/datum/sprite_accessory/head_accessory/unathi/newcurly + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "New curly" + icon_state = "newcurly_horns" + +/datum/sprite_accessory/head_accessory/unathi/guilmon + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Guimon" + icon_state = "guilmon_horns" + +/datum/sprite_accessory/head_accessory/unathi/straight + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Straight" + icon_state = "straight_horns" + +/datum/sprite_accessory/head_accessory/unathi/straightdouble + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Straight double" + icon_state = "straight_double_horns" + +/datum/sprite_accessory/head_accessory/unathi/broken + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken" + icon_state = "broken_horns" + +/datum/sprite_accessory/head_accessory/unathi/brokenl + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken left" + icon_state = "brokenl_horns" + +/datum/sprite_accessory/head_accessory/unathi/brokenr + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken right" + icon_state = "brokenr_horns" + +/datum/sprite_accessory/head_accessory/unathi/knight + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Knight" + icon_state = "knight_horns" + +/datum/sprite_accessory/head_accessory/unathi/drake + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Drake" + icon_state = "drake_horns" + +/datum/sprite_accessory/head_accessory/unathi/long + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Long" + icon_state = "long_horns" + +/datum/sprite_accessory/head_accessory/unathi/largecurled + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Large curled" + icon_state = "largecurled_horns" + +/datum/sprite_accessory/head_accessory/unathi/newcurly + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "New curly" + icon_state = "newcurly_horns" + +/datum/sprite_accessory/head_accessory/unathi/guilmon + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Guimon" + icon_state = "guilmon_horns" + +/datum/sprite_accessory/head_accessory/unathi/straight + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Straight" + icon_state = "straight_horns" + +/datum/sprite_accessory/head_accessory/unathi/straightdouble + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Straight double" + icon_state = "straight_double_horns" + +/datum/sprite_accessory/head_accessory/unathi/broken + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken" + icon_state = "broken_horns" + +/datum/sprite_accessory/head_accessory/unathi/brokenl + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken left" + icon_state = "brokenl_horns" + +/datum/sprite_accessory/head_accessory/unathi/brokenr + icon = 'modular_ss220/hairs/icons/unathi_hair.dmi' + name = "Broken right" + icon_state = "brokenr_horns" diff --git a/modular_ss220/hairs/icons/unathi_facial_hair.dmi b/modular_ss220/hairs/icons/unathi_facial_hair.dmi new file mode 100644 index 000000000000..03f488a46217 Binary files /dev/null and b/modular_ss220/hairs/icons/unathi_facial_hair.dmi differ diff --git a/modular_ss220/hairs/icons/unathi_hair.dmi b/modular_ss220/hairs/icons/unathi_hair.dmi new file mode 100644 index 000000000000..39b83e328209 Binary files /dev/null and b/modular_ss220/hairs/icons/unathi_hair.dmi differ diff --git a/modular_ss220/jobs/_jobs.dm b/modular_ss220/jobs/_jobs.dm index 47f40207e7b0..803bc7f75729 100644 --- a/modular_ss220/jobs/_jobs.dm +++ b/modular_ss220/jobs/_jobs.dm @@ -2,3 +2,13 @@ name = "Работы" desc = "Новые джобки и изменения старых" author = "furior, PhantomRU" + +/datum/modpack/jobs/initialize() + . = ..() + + GLOB.security_positions |= GLOB.security_positions_ss220 + GLOB.active_security_positions |= GLOB.security_positions_ss220 + + GLOB.medical_positions |= GLOB.medical_positions_ss220 + GLOB.engineering_positions |= GLOB.engineering_positions_ss220 + GLOB.science_positions |= GLOB.science_positions_ss220 diff --git a/modular_ss220/jobs/_jobs.dme b/modular_ss220/jobs/_jobs.dme index 5d7beee17f91..7a0fc3422801 100644 --- a/modular_ss220/jobs/_jobs.dme +++ b/modular_ss220/jobs/_jobs.dme @@ -1,13 +1,24 @@ #include "_jobs.dm" #include "code/access.dm" -// #include "code/cards_ids.dm" -// #include "code/jobs.dm" -// #include "code/clothing/engineering_clothing.dm" -// #include "code/clothing/medical_clothing.dm" -// #include "code/clothing/science_clothing.dm" -// #include "code/clothing/security_clothing.dm" -// #include "code/job/engineering_jobs.dm" -// #include "code/job/medical_jobs.dm" -// #include "code/job/science_jobs.dm" -// #include "code/job/security_jobs.dm" +#include "code/card_computer.dm" +#include "code/card_id.dm" +#include "code/departaments.dm" +#include "code/jobs_global_list.dm" +#include "code/jobs_character.dm" +#include "code/jobs_gamemodes.dm" +#include "code/jobs.dm" +#include "code/clothing/engineering_clothing.dm" +#include "code/clothing/medical_clothing.dm" +#include "code/clothing/science_clothing.dm" +#include "code/clothing/security_clothing.dm" +#include "code/job/engineering_jobs.dm" +#include "code/job/medical_jobs.dm" +#include "code/job/science_jobs.dm" +#include "code/job/security_jobs.dm" +#include "code/objects/job_objects.dm" +#include "code/objects/engineering_job_objects.dm" +#include "code/objects/medical_job_objects.dm" +#include "code/objects/science_job_objects.dm" +#include "code/objects/security_job_objects.dm" +#include "code/objects/wardrobe_vendors.dm" diff --git a/modular_ss220/jobs/code/card_computer.dm b/modular_ss220/jobs/code/card_computer.dm new file mode 100644 index 000000000000..e9c9e834e77c --- /dev/null +++ b/modular_ss220/jobs/code/card_computer.dm @@ -0,0 +1,21 @@ +/obj/machinery/computer/card/ui_data(mob/user) + var/list/data = ..() + + if(mode == IDCOMPUTER_SCREEN_TRANSFER) // JOB TRANSFER + if(modify && scan && !target_dept) + data["card_skins"] |= format_card_skins(GLOB.card_skins_ss220) + + return data + +/obj/machinery/computer/card/ui_act(action, params) + . = ..() + switch(action) + if("skin") + if(!modify) + return FALSE + var/skin = params["skin_target"] + if(!skin || !(skin in GLOB.card_skins_ss220)) + return FALSE + + modify.icon_state = skin//get_card_skins_ss220(skin) + return TRUE diff --git a/modular_ss220/jobs/code/card_id.dm b/modular_ss220/jobs/code/card_id.dm new file mode 100644 index 000000000000..f00685c26674 --- /dev/null +++ b/modular_ss220/jobs/code/card_id.dm @@ -0,0 +1,56 @@ +/mob/living/carbon/human/sec_hud_set_ID() + var/image/holder = hud_list[ID_HUD] + holder.icon = 'icons/mob/hud/sechud.dmi' + if(wear_id && (wear_id.get_job_name() in GLOB.jobs_positions_ss220)) + holder.icon = 'modular_ss220/jobs/icons/hud.dmi' + . = ..() + +/obj/item/get_job_name() //Used in secHUD icon generation + var/assignmentName = get_ID_assignment(if_no_id = "Unknown") + var/rankName = get_ID_rank(if_no_id = "Unknown") + + var/list/titles = GLOB.jobs_positions_ss220 + + if(assignmentName in titles) //Check if the job has a hud icon + return assignmentName + if(rankName in titles) + return rankName + + . = ..() + +GLOBAL_LIST_INIT(card_skins_ss220, list( + "intern", "student", "trainee", "cadet", +)) + +/obj/item/card/id/medical/intern + name = "Intern ID" + registered_name = "Intern" + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "intern" + item_state = "intern-id" + rank = "Intern" + +/obj/item/card/id/research/student + name = "Student ID" + registered_name = "Student" + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "student" + item_state = "student-id" + +/obj/item/card/id/engineering/trainee + name = "Trainee ID" + registered_name = "Trainee" + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "trainee" + item_state = "trainee-id" + +/obj/item/card/id/security/cadet + name = "Cadet ID" + registered_name = "Cadet" + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "cadet" + item_state = "cadet-id" + +/obj/item/card/id/syndicate/Initialize() + . = ..() + appearances |= GLOB.card_skins_ss220 diff --git a/modular_ss220/jobs/code/cards_ids.dm b/modular_ss220/jobs/code/cards_ids.dm deleted file mode 100644 index 5eec7f64ea30..000000000000 --- a/modular_ss220/jobs/code/cards_ids.dm +++ /dev/null @@ -1,101 +0,0 @@ -// Для отрисовки ХУД'ов. -GLOBAL_LIST_INIT(Jobs_SS220, list("intern", "cadet", "trainee", "student")) -GLOBAL_LIST_INIT(Jobs_titles_SS220, list("Intern", "Security Cadet", "Trainee Engineer", "Student Scientist")) - -/proc/get_all_medical_novice_titles() - return list("Intern", "Medical Assistant", "Student Medical Doctor") - -/proc/get_all_security_novice_titles() - return list("Security Cadet", "Security Assistant", "Security Graduate") - -/proc/get_all_engineering_novice_titles() - return list("Trainee Engineer", "Engineer Assistant", "Technical Assistant", "Engineer Student", "Technical Student", "Technical Trainee") - -/proc/get_all_science_novice_titles() - return list("Student Scientist", "Scientist Assistant", "Scientist Pregraduate", "Scientist Graduate", "Scientist Postgraduate") - -/proc/get_all_novice_titles() - return get_all_medical_novice_titles() + get_all_security_novice_titles() + get_all_engineering_novice_titles() + get_all_science_novice_titles() - -/mob/living/carbon/human/sec_hud_set_ID() - var/image/holder = hud_list[ID_HUD] - holder.icon = 'icons/mob/hud/sechud.dmi' - if(wear_id && (wear_id.get_job_name() in GLOB.Jobs_SS220)) - holder.icon = 'modular_ss220/jobs/icons/hud.dmi' - . = ..() - -/obj/item/get_job_name() //Used in secHUD icon generation - var/assignmentName = get_ID_assignment(if_no_id = "Unknown") - var/rankName = get_ID_rank(if_no_id = "Unknown") - - var/novmed = get_all_medical_novice_titles() - var/novsec = get_all_security_novice_titles() - var/noveng = get_all_engineering_novice_titles() - var/novrnd = get_all_science_novice_titles() - - if((assignmentName in novmed) || (rankName in novmed)) - return "intern" - if((assignmentName in novsec) || (rankName in novsec)) - return "cadet" - if((assignmentName in noveng) || (rankName in noveng)) - return "trainee" - if((assignmentName in novrnd) || (rankName in novrnd)) - return "student" - - . = ..() - -/obj/machinery/computer/card/ui_data(mob/user) - var/list/data = ..() - - if(mode == IDCOMPUTER_SCREEN_TRANSFER) // JOB TRANSFER - if(modify && scan && !target_dept) - data["jobs_engineering"] |= "Trainee Engineer" - data["jobs_medical"] |= "Intern" - data["jobs_science"] |= "Student Scientist" - data["jobs_security"] |= "Security Cadet" - data["card_skins"] |= format_card_skins(GLOB.Jobs_SS220) // + format_card_skins(list("intern", "cadet", "trainee", "student")) - - return data - -/obj/machinery/computer/card/ui_act(action, params) - . = ..() - - switch(action) - if("skin") - if(!modify) - return FALSE - var/skin = params["skin_target"] - if(!skin || !(skin in GLOB.Jobs_SS220)) - return FALSE - - modify.icon_state = skin - return TRUE - -/obj/item/card/id/medical/intern - name = "Intern ID" - registered_name = "Intern" - icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' - icon_state = "intern" - item_state = "intern-id" - rank = "Intern" - -/obj/item/card/id/research/student - name = "Student ID" - registered_name = "Student" - icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' - icon_state = "student" - item_state = "student-id" - -/obj/item/card/id/engineering/trainee - name = "Trainee ID" - registered_name = "Trainee" - icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' - icon_state = "trainee" - item_state = "trainee-id" - -/obj/item/card/id/security/cadet - name = "Cadet ID" - registered_name = "Cadet" - icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' - icon_state = "cadet" - item_state = "cadet-id" diff --git a/modular_ss220/jobs/code/clothing/engineering_clothing.dm b/modular_ss220/jobs/code/clothing/engineering_clothing.dm index 7e7078bec5c8..9d01c2a5f5d9 100644 --- a/modular_ss220/jobs/code/clothing/engineering_clothing.dm +++ b/modular_ss220/jobs/code/clothing/engineering_clothing.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/under/rank/engineer/trainee +/obj/item/clothing/under/rank/engineering/engineer/trainee name = "engineer trainee jumpsuit" icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi' icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi' @@ -8,18 +8,18 @@ item_color = "trainee" sprite_sheets = null -/obj/item/clothing/under/rank/engineer/trainee/skirt +/obj/item/clothing/under/rank/engineering/engineer/trainee/skirt name = "engineer trainee jumpskirt" icon_state = "traineef_s" item_color = "traineef" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS -/obj/item/clothing/under/rank/engineer/trainee/assistant +/obj/item/clothing/under/rank/engineering/engineer/trainee/assistant name = "engineer assistant jumpsuit" icon_state = "eng_ass_s" item_color = "eng_ass" -/obj/item/clothing/under/rank/engineer/trainee/assistant/skirt +/obj/item/clothing/under/rank/engineering/engineer/trainee/assistant/skirt name = "engineer assistant jumpskirt" icon_state = "eng_ass_f_s" item_color = "eng_ass_f" diff --git a/modular_ss220/jobs/code/clothing/medical_clothing.dm b/modular_ss220/jobs/code/clothing/medical_clothing.dm index 43e99519aacf..f9ffc439ad70 100644 --- a/modular_ss220/jobs/code/clothing/medical_clothing.dm +++ b/modular_ss220/jobs/code/clothing/medical_clothing.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/under/rank/medical/intern +/obj/item/clothing/under/rank/medical/doctor/intern icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi' icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi' //lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' @@ -9,18 +9,18 @@ icon_state = "intern_s" item_color = "intern" -/obj/item/clothing/under/rank/medical/intern/skirt +/obj/item/clothing/under/rank/medical/doctor/intern/skirt name = "intern jumpskirt" icon_state = "internf_s" item_color = "internf" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS -/obj/item/clothing/under/rank/medical/intern/assistant +/obj/item/clothing/under/rank/medical/doctor/intern/assistant name = "medical assistant jumpsuit" icon_state = "med_ass_s" item_color = "med_ass" -/obj/item/clothing/under/rank/medical/intern/assistant/skirt +/obj/item/clothing/under/rank/medical/doctor/intern/assistant/skirt name = "medical assistant jumpskirt" icon_state = "med_ass_f_s" item_color = "med_ass_f" diff --git a/modular_ss220/jobs/code/clothing/science_clothing.dm b/modular_ss220/jobs/code/clothing/science_clothing.dm index d885bff41bbf..4f501916c7b3 100644 --- a/modular_ss220/jobs/code/clothing/science_clothing.dm +++ b/modular_ss220/jobs/code/clothing/science_clothing.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/under/rank/scientist/student +/obj/item/clothing/under/rank/rnd/scientist/student name = "scientist student jumpsuit" icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi' icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi' @@ -8,18 +8,18 @@ item_color = "student" sprite_sheets = null -/obj/item/clothing/under/rank/scientist/student/skirt +/obj/item/clothing/under/rank/rnd/scientist/student/skirt name = "scientist student jumpskirt" icon_state = "studentf_s" item_color = "studentf" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS -/obj/item/clothing/under/rank/scientist/student/assistant +/obj/item/clothing/under/rank/rnd/scientist/student/assistant name = "scientist assistant jumpsuit" icon_state = "sci_ass_s" item_color = "sci_ass" -/obj/item/clothing/under/rank/scientist/student/assistant/skirt +/obj/item/clothing/under/rank/rnd/scientist/student/assistant/skirt name = "scientist assistant jumpskirt" icon_state = "sci_ass_f_s" item_color = "sci_ass_f" diff --git a/modular_ss220/jobs/code/clothing/security_clothing.dm b/modular_ss220/jobs/code/clothing/security_clothing.dm index 681b4581b9ef..a767485df6eb 100644 --- a/modular_ss220/jobs/code/clothing/security_clothing.dm +++ b/modular_ss220/jobs/code/clothing/security_clothing.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/under/rank/security/cadet +/obj/item/clothing/under/rank/security/officer/cadet name = "security cadet jumpsuit" icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi' icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi' @@ -7,19 +7,21 @@ icon_state = "cadet_s" item_color = "cadet" sprite_sheets = null + sensor_mode = SENSOR_COORDS + random_sensor = FALSE -/obj/item/clothing/under/rank/security/cadet/skirt +/obj/item/clothing/under/rank/security/officer/cadet/skirt name = "security cadet jumpskirt" icon_state = "cadetf_s" item_color = "cadetf" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS -/obj/item/clothing/under/rank/security/cadet/assistant +/obj/item/clothing/under/rank/security/officer/cadet/assistant name = "security assistant jumpsuit" icon_state = "sec_ass_s" item_color = "sec_ass" -/obj/item/clothing/under/rank/security/cadet/assistant/skirt +/obj/item/clothing/under/rank/security/officer/cadet/assistant/skirt name = "security assistant jumpskirt" icon_state = "sec_ass_f_s" item_color = "sec_ass_f" diff --git a/modular_ss220/jobs/code/departaments.dm b/modular_ss220/jobs/code/departaments.dm new file mode 100644 index 000000000000..1624d0353f92 --- /dev/null +++ b/modular_ss220/jobs/code/departaments.dm @@ -0,0 +1,15 @@ +/datum/station_department/engineering/New() + . = ..() + department_roles |= GLOB.engineering_positions_ss220 + get_all_engineering_alt_titles_ss220() + +/datum/station_department/medical/New() + . = ..() + department_roles |= GLOB.medical_positions_ss220 + get_all_medical_alt_titles_ss220() + +/datum/station_department/science/New() + . = ..() + department_roles |= GLOB.science_positions_ss220 + get_all_science_alt_titles_ss220() + +/datum/station_department/security/New() + . = ..() + department_roles |= GLOB.security_positions_ss220 + get_all_security_alt_titles_ss220() diff --git a/modular_ss220/jobs/code/job/engineering_jobs.dm b/modular_ss220/jobs/code/job/engineering_jobs.dm index 8b472cde20cf..eb4c3c280f99 100644 --- a/modular_ss220/jobs/code/job/engineering_jobs.dm +++ b/modular_ss220/jobs/code/job/engineering_jobs.dm @@ -1,37 +1,56 @@ -/datum/job/engineer/New() - . = ..() - alt_titles |= get_all_engineering_novice_titles() +/datum/job/engineer/trainee + title = "Trainee Engineer" + flag = JOB_TRAINEE + total_positions = 0 + spawn_positions = 3 + //selection_color = "#dbd6c4" + alt_titles = list("Engineer Assistant", "Technical Assistant", "Engineer Student", "Technical Student", "Technical Trainee") + exp_map = list(EXP_TYPE_CREW = NOVICE_JOB_MINUTES) + outfit = /datum/outfit/job/engineer/trainee + important_information = "Ваша должность ограничена во всех взаимодействиях с рабочим имуществом отдела и экипажем станции, при отсутствии приставленного к нему квалифицированного сотрудника или полученного разрешения от вышестоящего начальства." -/datum/station_department/engineering/New() - . = ..() - department_roles |= get_all_engineering_novice_titles() +/datum/outfit/job/engineer/trainee + name = "Trainee Engineer" + jobtype = /datum/job/engineer/trainee -/datum/outfit/job/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee + suit = /obj/item/clothing/suit/storage/hazardvest + belt = /obj/item/storage/belt/utility/full + shoes = /obj/item/clothing/shoes/workboots + gloves = /obj/item/clothing/gloves/color/orange + head = /obj/item/clothing/head/hardhat/orange + l_ear = /obj/item/radio/headset/headset_eng + id = /obj/item/card/id/engineering/trainee + l_pocket = /obj/item/t_scanner + pda = /obj/item/pda/engineering + + backpack = /obj/item/storage/backpack/industrial + satchel = /obj/item/storage/backpack/satchel_eng + dufflebag = /obj/item/storage/backpack/duffel/engineering + box = /obj/item/storage/box/engineer + +/datum/outfit/job/engineer/trainee/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - if(H.mind && H.mind.role_alt_title) - if(H.mind.role_alt_title in get_all_engineering_novice_titles()) - uniform = /obj/item/clothing/under/rank/engineer/trainee - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/engineer/trainee/skirt - id = /obj/item/card/id/engineering/trainee - gloves = /obj/item/clothing/gloves/color/orange - switch(H.mind.role_alt_title) - if("Engineer Assistant") - uniform = /obj/item/clothing/under/rank/engineer/trainee/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/engineer/trainee/assistant/skirt - if("Technical Assistant") - uniform = /obj/item/clothing/under/rank/engineer/trainee/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/engineer/trainee/assistant/skirt - head = /obj/item/clothing/head/soft/orange - if("Technical Student", "Technical Trainee") - head = /obj/item/clothing/head/soft/orange - if("Engineer Student") - head = /obj/item/clothing/head/beret/eng + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/skirt -// Identification jobs for console -/datum/job/engineer/trainee - title = "Trainee Engineer" - hidden_from_job_prefs = TRUE + switch(H.mind.role_alt_title) + if("Engineer Assistant") + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant/skirt + if("Technical Assistant") + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant/skirt + head = /obj/item/clothing/head/soft/orange + if("Technical Student", "Technical Trainee") + head = /obj/item/clothing/head/soft/orange + if("Engineer Student") + head = /obj/item/clothing/head/beret/eng + +/datum/outfit/job/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/engineering/engineer/skirt diff --git a/modular_ss220/jobs/code/job/medical_jobs.dm b/modular_ss220/jobs/code/job/medical_jobs.dm index c1f674bb28c7..1d3623e7f038 100644 --- a/modular_ss220/jobs/code/job/medical_jobs.dm +++ b/modular_ss220/jobs/code/job/medical_jobs.dm @@ -1,37 +1,49 @@ -/datum/job/doctor/New() - . = ..() - alt_titles |= get_all_medical_novice_titles() +/datum/job/doctor/intern + title = "Intern" + flag = JOB_INTERN + total_positions = 0 + spawn_positions = 3 + //selection_color = "#ebe2e3" + alt_titles = list("Medical Assistant", "Student Medical Doctor") + exp_map = list(EXP_TYPE_CREW = NOVICE_JOB_MINUTES) + outfit = /datum/outfit/job/doctor/intern + important_information = "Ваша должность ограничена во всех взаимодействиях с рабочим имуществом отдела и экипажем станции, при отсутствии приставленного к нему квалифицированного сотрудника или полученного разрешения от вышестоящего начальства." -/datum/station_department/medical/New() - . = ..() - department_roles |= get_all_medical_novice_titles() +/datum/outfit/job/doctor/intern + name = "Intern" + jobtype = /datum/job/doctor/intern -/datum/outfit/job/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly) + uniform = /obj/item/clothing/under/rank/medical/doctor/intern + suit = /obj/item/clothing/suit/storage/labcoat + mask = /obj/item/clothing/mask/surgical + gloves = /obj/item/clothing/gloves/color/latex + shoes = /obj/item/clothing/shoes/white + l_ear = /obj/item/radio/headset/headset_med + id = /obj/item/card/id/medical/intern + suit_store = /obj/item/flashlight/pen + l_hand = /obj/item/storage/firstaid/o2 + pda = /obj/item/pda/medical + + backpack = /obj/item/storage/backpack/medic + satchel = /obj/item/storage/backpack/satchel_med + dufflebag = /obj/item/storage/backpack/duffel/medical + +/datum/outfit/job/doctor/intern/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - if(H.mind && H.mind.role_alt_title) - if(H.mind.role_alt_title in get_all_medical_novice_titles()) - uniform = /obj/item/clothing/under/rank/medical/intern - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/medical/intern/skirt - id = /obj/item/card/id/medical/intern - l_hand = /obj/item/storage/firstaid/o2 - mask = /obj/item/clothing/mask/surgical - gloves = /obj/item/clothing/gloves/color/latex - switch(H.mind.role_alt_title) - if("Intern") - uniform = /obj/item/clothing/under/rank/medical/intern - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/medical/intern/skirt - if("Medical Assistant") - uniform = /obj/item/clothing/under/rank/medical/intern/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/medical/intern/assistant/skirt - if("Student Medical Doctor") - head = /obj/item/clothing/head/surgery/green/light - uniform = /obj/item/clothing/under/rank/medical/scrubs/green/light + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/medical/doctor/intern/skirt -// Identification jobs for console -/datum/job/doctor/intern - title = "Intern" - hidden_from_job_prefs = TRUE + switch(H.mind.role_alt_title) + if("Medical Assistant") + uniform = /obj/item/clothing/under/rank/medical/doctor/intern/assistant + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/medical/doctor/intern/assistant/skirt + if("Student Medical Doctor") + head = /obj/item/clothing/head/surgery/green/light + uniform = /obj/item/clothing/under/rank/medical/scrubs/green/light + +/datum/outfit/job/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/medical/doctor/skirt diff --git a/modular_ss220/jobs/code/job/science_jobs.dm b/modular_ss220/jobs/code/job/science_jobs.dm index b3387f831acc..fc4cb90bb06c 100644 --- a/modular_ss220/jobs/code/job/science_jobs.dm +++ b/modular_ss220/jobs/code/job/science_jobs.dm @@ -1,27 +1,42 @@ -/datum/job/scientist/New() - . = ..() - alt_titles |= get_all_science_novice_titles() +/datum/job/scientist/student + title = "Student Scientist" + flag = JOB_STUDENT + total_positions = 0 + spawn_positions = 4 + //selection_color = "#ece5ec" + alt_titles = list("Scientist Assistant", "Scientist Pregraduate", "Scientist Graduate", "Scientist Postgraduate") + exp_map = list(EXP_TYPE_CREW = NOVICE_JOB_MINUTES) + outfit = /datum/outfit/job/scientist/student + important_information = "Ваша должность ограничена во всех взаимодействиях с рабочим имуществом отдела и экипажем станции, при отсутствии приставленного к нему квалифицированного сотрудника или полученного разрешения от вышестоящего начальства." -/datum/station_department/science/New() - . = ..() - department_roles |= get_all_science_novice_titles() +/datum/outfit/job/scientist/student + name = "Student Scientist" + jobtype = /datum/job/scientist/student -/datum/outfit/job/scientist/pre_equip(mob/living/carbon/human/H, visualsOnly) + uniform = /obj/item/clothing/under/rank/rnd/scientist/student + suit = /obj/item/clothing/suit/storage/labcoat/science + shoes = /obj/item/clothing/shoes/white + l_ear = /obj/item/radio/headset/headset_sci + id = /obj/item/card/id/research/student + pda = /obj/item/pda/toxins + + backpack = /obj/item/storage/backpack/science + satchel = /obj/item/storage/backpack/satchel_tox + dufflebag = /obj/item/storage/backpack/duffel/science + +/datum/outfit/job/scientist/student/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - if(H.mind && H.mind.role_alt_title) - if(H.mind.role_alt_title in get_all_science_novice_titles()) - uniform = /obj/item/clothing/under/rank/scientist/student - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/scientist/student/skirt - id = /obj/item/card/id/research/student - switch(H.mind.role_alt_title) - if("Scientist Assistant") - uniform = /obj/item/clothing/under/rank/scientist/student/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/scientist/student/assistant/skirt + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/rnd/scientist/student/skirt -// Identification jobs for console -/datum/job/scientist/student - title = "Student Scientist" - hidden_from_job_prefs = TRUE + switch(H.mind.role_alt_title) + if("Scientist Assistant") + uniform = /obj/item/clothing/under/rank/rnd/scientist/student/assistant + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/rnd/scientist/student/assistant/skirt + +/datum/outfit/job/scientist/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/rnd/scientist/skirt diff --git a/modular_ss220/jobs/code/job/security_jobs.dm b/modular_ss220/jobs/code/job/security_jobs.dm index 6b5e68ba1cea..6cbf63cce39c 100644 --- a/modular_ss220/jobs/code/job/security_jobs.dm +++ b/modular_ss220/jobs/code/job/security_jobs.dm @@ -1,31 +1,51 @@ -/datum/job/officer/New() - . = ..() - alt_titles = get_all_security_novice_titles() // =, а не |=, т.к. отсутствуют альт. названия +/datum/job/officer/cadet + title = "Security Cadet" + flag = JOB_CADET + total_positions = 0 // miss add slots + spawn_positions = 2 + //selection_color = "#efe6e6" + alt_titles = list("Security Assistant", "Security Graduate") + exp_map = list(EXP_TYPE_CREW = NOVICE_CADET_JOB_MINUTES) + outfit = /datum/outfit/job/officer/cadet + important_information = "Космический закон это необходимость, а не рекомендация. Ваша должность ограничена во всех взаимодействиях с рабочим имуществом отдела и экипажем станции, при отсутствии приставленного к нему квалифицированного сотрудника или полученного разрешения от вышестоящего начальства." -/datum/station_department/security/New() - . = ..() - department_roles |= get_all_security_novice_titles() +/datum/outfit/job/officer/cadet + name = "Security Cadet" + jobtype = /datum/job/officer/cadet + uniform = /obj/item/clothing/under/rank/security/officer/cadet + suit = /obj/item/clothing/suit/armor/vest/security + gloves = /obj/item/clothing/gloves/color/black + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/soft/sec + l_ear = /obj/item/radio/headset/headset_sec/alt + id = /obj/item/card/id/security/cadet + l_pocket = /obj/item/reagent_containers/spray/pepper + suit_store = /obj/item/gun/energy/disabler + pda = /obj/item/pda/security + backpack_contents = list( + /obj/item/restraints/handcuffs = 1 + ) + //box = /obj/item/storage/box/survival_security/cadet -/datum/outfit/job/officer/pre_equip(mob/living/carbon/human/H, visualsOnly) + +/datum/outfit/job/officer/cadet/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - if(H.mind && H.mind.role_alt_title) - if(H.mind.role_alt_title in get_all_security_novice_titles()) - uniform = /obj/item/clothing/under/rank/security/cadet + + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/security/officer/cadet/skirt + + switch(H.mind.role_alt_title) + if("Security Assistant") + uniform = /obj/item/clothing/under/rank/security/officer/cadet/assistant if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/security/cadet/skirt - head = /obj/item/clothing/head/soft/sec - id = /obj/item/card/id/security/cadet - l_pocket = /obj/item/reagent_containers/spray/pepper - //box = /obj/item/storage/box/survival_security/cadet - switch(H.mind.role_alt_title) - if("Security Assistant") - uniform = /obj/item/clothing/under/rank/security/cadet/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/security/cadet/assistant/skirt - if("Security Graduate") - head = /obj/item/clothing/head/beret/sec + uniform = /obj/item/clothing/under/rank/security/officer/cadet/assistant/skirt + if("Security Graduate") + head = /obj/item/clothing/head/beret/sec -// Identification jobs for console -/datum/job/officer/cadet - title = "Security Cadet" - hidden_from_job_prefs = TRUE +/datum/job/officer + alt_titles = list("Security Trainer", "Junior Security Officer") + +/datum/outfit/job/officer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/security/officer/skirt diff --git a/modular_ss220/jobs/code/jobs.dm b/modular_ss220/jobs/code/jobs.dm index 75e8d8db2f55..c1b8d290b371 100644 --- a/modular_ss220/jobs/code/jobs.dm +++ b/modular_ss220/jobs/code/jobs.dm @@ -1,24 +1,76 @@ /datum/nttc_configuration/New() . = ..() var/list/job_radio_dict = list() - - for(var/i in get_all_medical_novice_titles()) + for(var/i in (GLOB.medical_positions_ss220 + get_all_medical_alt_titles_ss220())) job_radio_dict.Add(list("[i]" = "medradio")) - for(var/i in get_all_security_novice_titles()) + for(var/i in (GLOB.security_positions_ss220 + get_all_security_alt_titles_ss220())) job_radio_dict.Add(list("[i]" = "secradio")) - for(var/i in get_all_engineering_novice_titles()) + for(var/i in (GLOB.engineering_positions_ss220 + get_all_engineering_alt_titles_ss220())) job_radio_dict.Add(list("[i]" = "engradio")) - for(var/i in get_all_science_novice_titles()) + for(var/i in (GLOB.science_positions_ss220 + get_all_science_alt_titles_ss220())) job_radio_dict.Add(list("[i]" = "scirradio")) all_jobs |= job_radio_dict + +// ======================================= +// relate jobs for relate job slots +// ======================================= +/datum/job/proc/try_relate_jobs() + return FALSE + +/datum/job + var/relate_job // for novice role and etc + +/datum/job/doctor + relate_job = "Intern" +/datum/job/doctor/intern + relate_job = "Medical Doctor" + +/datum/job/scientist + relate_job = "Student Scientist" +/datum/job/scientist/student + relate_job = "Scientist" + +/datum/job/engineer + relate_job = "Trainee Engineer" +/datum/job/engineer/trainee + relate_job = "Station Engineer" + +/datum/job/officer + relate_job = "Security Cadet" +/datum/job/officer/cadet + relate_job = "Security Officer" + /datum/job/is_position_available() - . = ..() + if(job_banned_gamemode) + return FALSE + if(check_hidden_from_job_prefs()) + return FALSE + + return relate_job ? check_relate_positions() : ..() + +/datum/job/proc/check_relate_positions() + var/datum/job/temp = SSjobs.GetJob(relate_job) + + var/current_count_positions = current_positions + temp.current_positions + var/total_count_positions = total_positions + temp.total_positions + + if(total_positions == -1) + total_count_positions = -1 + + return (current_count_positions < total_count_positions) || (total_count_positions == -1) + +/datum/job/proc/check_hidden_from_job_prefs() if(hidden_from_job_prefs) - for(var/job_title in GLOB.Jobs_titles_SS220) + for(var/job_title in GLOB.jobs_positions_ss220) if(job_title in alt_titles) - return FALSE - if(title in GLOB.Jobs_titles_SS220) - return FALSE + return TRUE + if(title in GLOB.jobs_positions_ss220) + return TRUE + return FALSE + +// OFFICIAL parameters: 17 / HOS, Bart / 400 / 700 +/datum/character_save/SetChoices(mob/user, limit = 18, list/splitJobs = list("Head of Security", "Bartender"), widthPerColumn = 450, height = 700) + . = ..() diff --git a/modular_ss220/jobs/code/jobs_character.dm b/modular_ss220/jobs/code/jobs_character.dm new file mode 100644 index 000000000000..4e526b4c4aa1 --- /dev/null +++ b/modular_ss220/jobs/code/jobs_character.dm @@ -0,0 +1,110 @@ +// Будь прокляты те кто вставлял списки прямо в код. Это не ТОГЭ. Поэтому оставь здравомыслие всяк сюда входящий. +/datum/species/plasmaman/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + var/current_job = J.title + var/datum/outfit/plasmaman/O = new /datum/outfit/plasmaman + switch(current_job) + + if("Security Cadet") + O = new /datum/outfit/plasmaman/security + + if("Intern") + O = new /datum/outfit/plasmaman/medical + + if("Student Scientist") + O = new /datum/outfit/plasmaman/science + + if("Trainee Engineer") + O = new /datum/outfit/plasmaman/engineering + + H.equipOutfit(O, visualsOnly) + H.internal = H.r_hand + H.update_action_buttons_icon() + return FALSE + + +// это копипаст мерзопакости. Я не буду рефакторить это в модуле, я шо, ебанутый? +// Оно работает и ладно. И я не буду этот комментарий на английский переводить. +// Эту хуйню должен видеть каждый кто сюда зайдет и полезет посмотреть какой в родителе оригинальный код на 1000 строчек. +/datum/character_save/update_preview_icon(for_observer=0) + . = ..() + + // qdel(preview_icon_front) + // qdel(preview_icon_side) + // qdel(preview_icon) + + var/g = "" + if(gender == FEMALE) + g = "f" + + var/icon/clothes_s = null + + if(job_medsci_high) + switch(job_medsci_high) + if(JOB_STUDENT) + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "student[g]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "metroid"), ICON_OVERLAY) + switch(backbag) + if(2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY) + if(3) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-tox"), ICON_OVERLAY) + if(4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + if(JOB_INTERN) + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "intern[g]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY) + switch(backbag) + if(2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "medicalpack"), ICON_OVERLAY) + if(3) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-med"), ICON_OVERLAY) + if(4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + else if(job_engsec_high) + switch(job_engsec_high) + if(JOB_CADET) + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "cadet[g]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "justice_up"), ICON_OVERLAY) + else + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "secsoft"), ICON_OVERLAY) + switch(backbag) + if(2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "securitypack"), ICON_OVERLAY) + if(3) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-sec"), ICON_OVERLAY) + if(4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + if(JOB_TRAINEE) + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "trainee[g]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "orange"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "hardhat0_orange"), ICON_OVERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "orangegloves"), ICON_OVERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "hazard"), ICON_OVERLAY) + switch(backbag) + if(2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "engiepack"), ICON_OVERLAY) + if(3) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-eng"), ICON_OVERLAY) + if(4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + if(clothes_s) + preview_icon.Blend(clothes_s, ICON_OVERLAY) + + preview_icon_front = new(preview_icon, dir = SOUTH) + preview_icon_side = new(preview_icon, dir = WEST) + + qdel(clothes_s) diff --git a/modular_ss220/jobs/code/jobs_gamemodes.dm b/modular_ss220/jobs/code/jobs_gamemodes.dm new file mode 100644 index 000000000000..4db68643f8f3 --- /dev/null +++ b/modular_ss220/jobs/code/jobs_gamemodes.dm @@ -0,0 +1,27 @@ +/datum/game_mode/changeling/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/cult/New() + . = ..() + restricted_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/revolution/New() + . = ..() + restricted_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/traitor/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/trifecta/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/traitor/vampire/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/vampire/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 diff --git a/modular_ss220/jobs/code/jobs_global_list.dm b/modular_ss220/jobs/code/jobs_global_list.dm new file mode 100644 index 000000000000..3ae7787fba1f --- /dev/null +++ b/modular_ss220/jobs/code/jobs_global_list.dm @@ -0,0 +1,41 @@ +GLOBAL_LIST_INIT(medical_positions_ss220, list( + "Intern", +)) + +GLOBAL_LIST_INIT(science_positions_ss220, list( + "Student Scientist", +)) + +GLOBAL_LIST_INIT(engineering_positions_ss220, list( + "Trainee Engineer", +)) + +GLOBAL_LIST_INIT(security_positions_ss220, list( + "Security Cadet", +)) + +GLOBAL_LIST_INIT(jobs_positions_ss220, (list() + ( + medical_positions_ss220 + science_positions_ss220 + engineering_positions_ss220 + security_positions_ss220))) + +/proc/get_alt_titles(list/positions) + var/list/all_titles = list() + for(var/rank in positions) + var/datum/job/job = SSjobs.GetJob(rank) + if(length(job.alt_titles)) + all_titles |= job.alt_titles + return all_titles + +/proc/get_all_medical_alt_titles_ss220() + return get_alt_titles(GLOB.medical_positions_ss220) + +/proc/get_all_security_alt_titles_ss220() + return get_alt_titles(GLOB.security_positions_ss220) + +/proc/get_all_engineering_alt_titles_ss220() + return get_alt_titles(GLOB.engineering_positions_ss220) + +/proc/get_all_science_alt_titles_ss220() + return get_alt_titles(GLOB.science_positions_ss220) + +/proc/get_all_alt_titles_ss220() + return get_all_medical_alt_titles_ss220() + get_all_security_alt_titles_ss220() + get_all_engineering_alt_titles_ss220() + get_all_science_alt_titles_ss220() diff --git a/modular_ss220/jobs/code/objects/engineering_job_objects.dm b/modular_ss220/jobs/code/objects/engineering_job_objects.dm new file mode 100644 index 000000000000..907234ddf11b --- /dev/null +++ b/modular_ss220/jobs/code/objects/engineering_job_objects.dm @@ -0,0 +1,47 @@ +// others +/obj/item/envelope/engineering/Initialize(mapload) + . = ..() + job_list |= GLOB.engineering_positions_ss220 + +/datum/uplink_item/jobspecific/powergloves/New() + . = ..() + job |= GLOB.engineering_positions_ss220 + +/datum/theft_objective/supermatter_sliver/New() + . = ..() + protected_jobs |= GLOB.engineering_positions_ss220 + + +// loadout +/datum/gear/accessory/armband_job/engineering/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/mug/department/eng/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/hat/hhat_yellow/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/hat/hhat_orange/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/hat/hhat_blue/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/hat/beret_job/eng/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/suit/coat/job/engi/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/uniform/skirt/job/eng/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + diff --git a/modular_ss220/jobs/code/objects/job_objects.dm b/modular_ss220/jobs/code/objects/job_objects.dm new file mode 100644 index 000000000000..fe18b83d9c6a --- /dev/null +++ b/modular_ss220/jobs/code/objects/job_objects.dm @@ -0,0 +1,31 @@ +/obj/machinery/computer/arcade/recruiter/Initialize(mapload) + . = ..() + jobs |= GLOB.jobs_positions_ss220 + get_all_alt_titles_ss220() + incorrect_jobs |= list( + "Medical Sasistant", "Shitcurity Cadet", "Traneer Enginer", "Assistant Captain", "Engineer Cadet", + "Traine Engener", "Intarn", "Entern", "Student Directar", "Head of Scientest", "Junior Codet" + ) + +/obj/effect/mob_spawn/human/intern + name = "Intern" + mob_name = "Intern" + id_job = "Intern" + outfit = /datum/outfit/job/doctor/intern + +/obj/effect/mob_spawn/human/trainee + name = "Trainee Engineer" + mob_name = "Trainee Engineer" + id_job = "Trainee Engineer" + outfit = /datum/outfit/job/engineer/trainee + +/obj/effect/mob_spawn/human/student + name = "Student Scientist" + mob_name = "Student Scientist" + id_job = "Student Scientist" + outfit = /datum/outfit/job/scientist/student + +/obj/effect/mob_spawn/human/cadet + name = "Security Cadet" + mob_name = "Security Cadet" + id_job = "Security Cadet" + outfit = /datum/outfit/job/officer/cadet diff --git a/modular_ss220/jobs/code/objects/medical_job_objects.dm b/modular_ss220/jobs/code/objects/medical_job_objects.dm new file mode 100644 index 000000000000..253c25a5aa49 --- /dev/null +++ b/modular_ss220/jobs/code/objects/medical_job_objects.dm @@ -0,0 +1,58 @@ +// others +/obj/item/envelope/medical/Initialize(mapload) + . = ..() + job_list |= GLOB.medical_positions_ss220 + +/datum/uplink_item/jobspecific/viral_injector/New() + . = ..() + job |= GLOB.medical_positions_ss220 + + +// loadout +/datum/gear/accessory/stethoscope/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/accessory/armband_job/medical/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/glasses/goggles_job/medhudgoggles/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/mug/department/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/hat/beret_job/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/hat/surgicalcap_purple/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/hat/surgicalcap_green/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/racial/taj/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/suit/coat/job/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/uniform/skirt/job/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/uniform/medical/pscrubs/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/uniform/medical/gscrubs/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 diff --git a/modular_ss220/jobs/code/objects/science_job_objects.dm b/modular_ss220/jobs/code/objects/science_job_objects.dm new file mode 100644 index 000000000000..861a8c1fabe4 --- /dev/null +++ b/modular_ss220/jobs/code/objects/science_job_objects.dm @@ -0,0 +1,35 @@ +// others +/obj/item/envelope/science/Initialize(mapload) + . = ..() + job_list |= GLOB.science_positions_ss220 + +/datum/uplink_item/jobspecific/stims/New() + . = ..() + job |= GLOB.science_positions_ss220 + +/datum/theft_objective/reactive/New() + . = ..() + protected_jobs |= GLOB.science_positions_ss220 + + +// loadout +/datum/gear/accessory/armband_job/sci/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + +/datum/gear/glasses/goggles_job/diaghudgoggles/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + +/datum/gear/mug/department/sci/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + +/datum/gear/hat/beret_job/sci/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + +/datum/gear/suit/coat/job/sci/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + diff --git a/modular_ss220/jobs/code/objects/security_job_objects.dm b/modular_ss220/jobs/code/objects/security_job_objects.dm new file mode 100644 index 000000000000..f25df87d296f --- /dev/null +++ b/modular_ss220/jobs/code/objects/security_job_objects.dm @@ -0,0 +1,75 @@ +/obj/item/envelope/security/Initialize(mapload) + . = ..() + job_list |= GLOB.security_positions_ss220 + +/datum/gear/accessory/holobadge/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/accessory/holobadge_n/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/accessory/armband_job/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/glasses/sechud/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/glasses/goggles_job/sechudgoggles/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/mug/department/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/hat/capcsec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/hat/capsec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/hat/beret_job/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/racial/taj/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/suit/coat/job/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/suit/bomber/job/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/suit/secjacket/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/skirt/job/security/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/sec/formal/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/sec/secorporate/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/sec/dispatch/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/sec/casual/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 diff --git a/modular_ss220/jobs/code/objects/wardrobe_vendors.dm b/modular_ss220/jobs/code/objects/wardrobe_vendors.dm new file mode 100644 index 000000000000..f508f3d87774 --- /dev/null +++ b/modular_ss220/jobs/code/objects/wardrobe_vendors.dm @@ -0,0 +1,40 @@ +/obj/machinery/economy/vending/medidrobe/Initialize(mapload) + . = ..() + products |= list( + /obj/item/clothing/under/rank/medical/doctor/intern = 5, + /obj/item/clothing/under/rank/medical/doctor/intern/skirt = 5, + /obj/item/clothing/under/rank/medical/doctor/intern/assistant = 5, + /obj/item/clothing/under/rank/medical/doctor/intern/assistant/skirt = 5, + /obj/item/clothing/head/surgery/green/light = 5, + /obj/item/clothing/under/rank/medical/scrubs/green/light = 5, + ) + + +/obj/machinery/economy/vending/secdrobe/Initialize(mapload) + . = ..() + products |= list( + /obj/item/clothing/under/rank/security/officer/cadet = 5, + /obj/item/clothing/under/rank/security/officer/cadet/skirt = 5, + /obj/item/clothing/under/rank/security/officer/cadet/assistant = 5, + /obj/item/clothing/under/rank/security/officer/cadet/assistant/skirt = 5, + ) + + +/obj/machinery/economy/vending/scidrobe/Initialize(mapload) + . = ..() + products |= list( + /obj/item/clothing/under/rank/rnd/scientist/student = 5, + /obj/item/clothing/under/rank/rnd/scientist/student/skirt = 5, + /obj/item/clothing/under/rank/rnd/scientist/student/assistant = 5, + /obj/item/clothing/under/rank/rnd/scientist/student/assistant/skirt = 5, + ) + + +/obj/machinery/economy/vending/engidrobe/Initialize(mapload) + . = ..() + products |= list( + /obj/item/clothing/under/rank/engineering/engineer/trainee = 5, + /obj/item/clothing/under/rank/engineering/engineer/trainee/skirt = 5, + /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant = 5, + /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant/skirt = 5, + ) diff --git a/modular_ss220/jobs/icons/hud.dmi b/modular_ss220/jobs/icons/hud.dmi index b2a80ca3a66d..cc08b6d4a546 100644 Binary files a/modular_ss220/jobs/icons/hud.dmi and b/modular_ss220/jobs/icons/hud.dmi differ diff --git a/modular_ss220/loadout/code/donor.dm b/modular_ss220/loadout/code/donor.dm index f77a9b5d3652..a91ab89928cf 100644 --- a/modular_ss220/loadout/code/donor.dm +++ b/modular_ss220/loadout/code/donor.dm @@ -63,6 +63,16 @@ path = /obj/item/storage/wallet cost = 12 +/datum/gear/donor/Wallet_NT + display_name = "Бумажник NT" + path = /obj/item/storage/wallet/wallet_NT + cost = 12 + +/datum/gear/donor/Wallet_USSP + display_name = "Бумажник СССП" + path = /obj/item/storage/wallet/wallet_USSP_2 + cost = 12 + /datum/gear/donor/firefirstaid display_name = "Набор первой медицинской помощи от премиальной страховки" path = /obj/item/storage/firstaid/regular/donor @@ -103,6 +113,17 @@ path = /obj/item/healthanalyzer cost = 2 +/datum/gear/donor/breathscarf + display_name = "Шарф с системой дыхания" + path = /obj/item/clothing/mask/breath/breathscarf + cost = 2 + +/datum/gear/donor/kitty_ears + display_name = "Кошачьи ушки" + path = /obj/item/clothing/head/kitty + donator_tier = 2 + cost = 1 + // ID Skins /datum/gear/donor/id_decal_colored display_name = "Наклейка на карту (Голографическая)" @@ -114,6 +135,16 @@ path = /obj/item/id_skin/donut cost = 2 +/datum/gear/donor/id_decal_business + display_name = "Бизнесменская наклейка на карту" + path = /obj/item/id_skin/business + cost = 2 + +/datum/gear/donor/id_decal_ussp + display_name = "Коммунистическая наклейка на карту" + path = /obj/item/id_skin/ussp + cost = 2 + /datum/gear/donor/id_decal_silver_colored display_name = "Серебрянная наклейка на карту (Голографическая)" path = /obj/item/id_skin/colored/silver @@ -132,24 +163,12 @@ donator_tier = 3 cost = 2 -/datum/gear/donor/id_decal_business - display_name = "Бизнесменская наклейка на карту" - path = /obj/item/id_skin/business - donator_tier = 3 - cost = 2 - /datum/gear/donor/id_decal_lifetime display_name = "Стильная наклейка на карту" path = /obj/item/id_skin/lifetime donator_tier = 3 cost = 2 -/datum/gear/donor/id_decal_ussp - display_name = "Коммунистическая наклейка на карту" - path = /obj/item/id_skin/ussp - donator_tier = 3 - cost = 2 - /datum/gear/donor/id_decal_clown display_name = "Клоунская наклейка на карту" path = /obj/item/id_skin/clown @@ -186,55 +205,72 @@ donator_tier = 3 cost = 2 -/datum/gear/donor/id_decal_rainbow - display_name = "Радужная наклейка на карту" - path = /obj/item/id_skin/rainbow - donator_tier = 4 - cost = 3 - -/datum/gear/donor/id_decal_space - display_name = "КОСМИЧЕСКАЯ наклейка на карту" - path = /obj/item/id_skin/space - donator_tier = 4 - cost = 3 - /datum/gear/donor/id_decal_kitty display_name = "Кото-клейка на карту" path = /obj/item/id_skin/kitty - donator_tier = 4 - cost = 3 + donator_tier = 3 + cost = 4 /datum/gear/donor/id_decal_kitty_colored display_name = "Кото-клейка на карту (Голографическая)" path = /obj/item/id_skin/colored/kitty - donator_tier = 4 - cost = 3 + donator_tier = 3 + cost = 4 /datum/gear/donor/id_decal_anime display_name = "Анимешная наклейка на карту" path = /obj/item/id_skin/cursedmiku + donator_tier = 3 + cost = 4 + +/datum/gear/donor/id_decal_jokerge + display_name = "Джокерге наклейка на карту" + path = /obj/item/id_skin/jokerge + donator_tier = 3 + cost = 4 + +/datum/gear/donor/id_decal_rainbow + display_name = "Радужная наклейка на карту" + path = /obj/item/id_skin/rainbow donator_tier = 4 - cost = 3 + cost = 4 + +/datum/gear/donor/id_decal_space + display_name = "КОСМИЧЕСКАЯ наклейка на карту" + path = /obj/item/id_skin/space + donator_tier = 4 + cost = 4 /datum/gear/donor/id_decal_snake display_name = "Бегущая наклейка на карту" path = /obj/item/id_skin/colored/snake donator_tier = 4 - cost = 3 + cost = 4 /datum/gear/donor/id_decal_magic display_name = "Магическая наклейка на карту" path = /obj/item/id_skin/magic donator_tier = 4 - cost = 3 + cost = 4 /datum/gear/donor/id_decal_terminal display_name = "Наклейка на карту в виде терминала" path = /obj/item/id_skin/terminal donator_tier = 4 - cost = 3 + cost = 4 /datum/gear/donor/breathscarf display_name = "Шарф с системой дыхания" path = /obj/item/clothing/mask/breath/breathscarf cost = 2 + +/datum/gear/donor/red_gas + display_name = "ПРС-1" + path = /obj/item/clothing/mask/breath/red_gas + donator_tier = 2 + +/datum/gear/donor/id_decal_boykisser + display_name = "BoyKisser наклейка на карту" + path = /obj/item/id_skin/boykisser + donator_tier = 4 + cost = 5 diff --git a/modular_ss220/maps220/_maps220.dme b/modular_ss220/maps220/_maps220.dme index 5b95af74ec3f..070df167bf47 100644 --- a/modular_ss220/maps220/_maps220.dme +++ b/modular_ss220/maps220/_maps220.dme @@ -8,6 +8,7 @@ #include "code/Station/cyberiad.dm" #include "code/Station/delta.dm" #include "code/Station/metastation.dm" +#include "code/Station/cerestation.dm" #include "code/corpses.dm" #include "code/directions.dm" #include "code/helpers.dm" diff --git a/modular_ss220/maps220/code/Station/cerestation.dm b/modular_ss220/maps220/code/Station/cerestation.dm new file mode 100644 index 000000000000..aa86c4387186 --- /dev/null +++ b/modular_ss220/maps220/code/Station/cerestation.dm @@ -0,0 +1,2 @@ +/datum/map/cerestation + voteable = FALSE diff --git a/modular_ss220/maps220/code/layers.dm b/modular_ss220/maps220/code/layers.dm index c382ce338c0e..91094d005b78 100644 --- a/modular_ss220/maps220/code/layers.dm +++ b/modular_ss220/maps220/code/layers.dm @@ -1,2 +1,10 @@ /obj/structure/barricade/wooden layer = ABOVE_OBJ_LAYER + +/obj/machinery/door/window + layer = CLOSED_DOOR_LAYER + closingLayer = CLOSED_DOOR_LAYER + +/obj/machinery/door/poddoor + layer = BLASTDOOR_LAYER + closingLayer = SHUTTER_LAYER diff --git a/modular_ss220/maps220/code/mobs.dm b/modular_ss220/maps220/code/mobs.dm index a1c7e2d342da..b3e139f41fbe 100644 --- a/modular_ss220/maps220/code/mobs.dm +++ b/modular_ss220/maps220/code/mobs.dm @@ -662,11 +662,18 @@ var/alert_cooldown = 3 SECONDS var/alert_cooldown_time + +/mob/living/simple_animal/hostile/blackmesa/Initialize(mapload) + . = ..() + add_language("Sol Common") + default_language = GLOB.all_languages["Sol Common"] + /mob/living/simple_animal/hostile/blackmesa/Aggro() - if(alert_sounds) - if(!(world.time > alert_cooldown_time)) - playsound(src, pick(alert_sounds), 70) - alert_cooldown_time = world.time + alert_cooldown + if(!alert_sounds) + return + if(world.time > alert_cooldown_time) + playsound(src, pick(alert_sounds), 70) + alert_cooldown_time = world.time + alert_cooldown //Humans /mob/living/simple_animal/hostile/blackmesa/hecu name = "HECU Grunt" @@ -681,8 +688,8 @@ speed = 0 stat_attack = UNCONSCIOUS robust_searching = 1 - maxHealth = 110 - health = 110 + maxHealth = 90 + health = 90 harm_intent_damage = 5 melee_damage_lower = 10 melee_damage_upper = 15 @@ -741,8 +748,8 @@ turns_per_move = 5 speed = 0 robust_searching = 1 - maxHealth = 80 - health = 80 + maxHealth = 70 + health = 70 harm_intent_damage = 5 melee_damage_lower = 10 melee_damage_upper = 10 @@ -847,20 +854,20 @@ icon = 'modular_ss220/maps220/icons/simple_human.dmi' icon_state = "zombie" icon_living = "zombie" - maxHealth = 100 - health = 100 + maxHealth = 70 + health = 70 mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) environment_smash = ENVIRONMENT_SMASH_STRUCTURES icon_dead = "zombie_dead" speak_chance = 1 speak_emote = list("growls") - speed = 1.8 + speed = 1 + move_to_delay = 3.8 emote_taunt = list("growls", "snarls", "grumbles") taunt_chance = 100 melee_damage_lower = 15 melee_damage_upper = 21 attack_sound = 'modular_ss220/mobs/sound/creatures/zombie_attack.ogg' - gold_core_spawnable = HOSTILE_SPAWN alert_cooldown_time = 8 SECONDS alert_sounds = list( 'modular_ss220/mobs/sound/creatures/zombie_idle1.ogg',, @@ -877,35 +884,32 @@ icon_state = "scientist_zombie" icon_living = "scientist_zombie" loot = list(/obj/effect/gibspawner/human) - del_on_death = TRUE /mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/guard name = "zombified guard" desc = "About that brain I owed ya!" icon_state = "security_zombie" icon_living = "security_zombie" - maxHealth = 120 // Armor! - health = 120 + maxHealth = 100 // Armor! + health = 100 loot = list(/obj/effect/gibspawner/human) - del_on_death = TRUE /mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/hecu name = "zombified marine" desc = "MY. ASS. IS. DEAD." icon_state = "hecu_zombie" icon_living = "hecu_zombie" - maxHealth = 150 // More armor! - health = 150 + maxHealth = 130 // More armor! + health = 130 loot = list(/obj/effect/gibspawner/human) - del_on_death = TRUE /mob/living/simple_animal/hostile/blackmesa/xen/headcrab_zombie/hev name = "zombified hazardous environment specialist" desc = "User death... surpassed." icon_state = "hev_zombie" icon_living = "hev_zombie" - maxHealth = 200 - health = 200 + maxHealth = 160 + health = 160 alert_sounds = list( 'modular_ss220/aesthetics_sounds/sound/mobs/zombies/hzv1.ogg', 'modular_ss220/aesthetics_sounds/sound/mobs/zombies/hzv2.ogg', @@ -922,7 +926,7 @@ 'modular_ss220/aesthetics_sounds/sound/mobs/zombies/hzv13.ogg', 'modular_ss220/aesthetics_sounds/sound/mobs/zombies/hzv14.ogg', ) - del_on_death = TRUE + //Bullsquid /mob/living/simple_animal/hostile/blackmesa/xen/bullsquid @@ -946,6 +950,7 @@ melee_damage_lower = 15 melee_damage_upper = 15 ranged = TRUE + del_on_death = FALSE retreat_distance = 5 minimum_distance = 5 dodging = TRUE @@ -1000,6 +1005,7 @@ melee_damage_lower = 20 melee_damage_upper = 20 rapid_melee = 2 + del_on_death = FALSE butcher_results = list(/obj/item/reagent_containers/food/snacks/monstermeat/xenomeat = 3) attack_sound = 'sound/weapons/bite.ogg' gold_core_spawnable = HOSTILE_SPAWN @@ -1033,11 +1039,12 @@ ranged_message = "fires" taunt_chance = 100 turns_per_move = 3 - maxHealth = 100 - health = 100 + maxHealth = 80 + health = 80 speed = 2 ranged = TRUE dodging = TRUE + del_on_death = FALSE harm_intent_damage = 15 melee_damage_lower = 10 melee_damage_upper = 10 @@ -1047,6 +1054,7 @@ vision_range = 8 attack_sound = 'sound/weapons/bite.ogg' loot = list(/obj/item/stack/sheet/bone) + gold_core_spawnable = HOSTILE_SPAWN alert_sounds = list( 'modular_ss220/aesthetics_sounds/sound/mobs/vortigaunt/alert01.ogg', 'modular_ss220/aesthetics_sounds/sound/mobs/vortigaunt/alert01b.ogg', @@ -1070,8 +1078,8 @@ bound_height = 32 bound_width = 32 icon_dead = "bullsquid_dead" - maxHealth = 2500 - health = 2500 + maxHealth = 2000 + health = 2000 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) universal_speak = TRUE projectilesound = 'sound/weapons/lasercannonfire.ogg' @@ -1086,7 +1094,6 @@ attacktext = "lathes" attack_sound = 'sound/weapons/punch1.ogg' status_flags = NONE - del_on_death = TRUE wander = TRUE loot = list(/obj/effect/gibspawner/xeno, /obj/item/stack/ore/bluespace_crystal/refined = 30, /obj/item/card/id/xen_key, /obj/item/gun/energy/wormhole_projector) flying = TRUE @@ -1114,11 +1121,11 @@ if(!(world.time > alert_cooldown_time)) alert_cooldown_time = world.time + alert_cooldown switch(health) - if(0 to 999) + if(0 to 499) playsound(src, pick(list('modular_ss220/aesthetics_sounds/sound/mobs/nihilanth/nihilanth_pain01.ogg', 'modular_ss220/aesthetics_sounds/sound/mobs/nihilanth/nihilanth_freeeemmaan01.ogg')), 100) - if(1000 to 1499) + if(500 to 999) playsound(src, pick(list('modular_ss220/aesthetics_sounds/sound/mobs/nihilanth/nihilanth_youalldie01.ogg', 'modular_ss220/aesthetics_sounds/sound/mobs/nihilanth/nihilanth_foryouhewaits01.ogg')), 100) - if(1500 to 1999) + if(1000 to 1999) playsound(src, pick(list('modular_ss220/aesthetics_sounds/sound/mobs/nihilanth/nihilanth_whathavedone01.ogg', 'modular_ss220/aesthetics_sounds/sound/mobs/nihilanth/nihilanth_deceiveyou01.ogg')), 100) else playsound(src, pick(list('modular_ss220/aesthetics_sounds/sound/mobs/nihilanth/nihilanth_thetruth01.ogg', 'modular_ss220/aesthetics_sounds/sound/mobs/nihilanth/nihilanth_iamthelast01.ogg')), 100) @@ -1141,7 +1148,6 @@ wander = FALSE attack_sound = 'sound/weapons/genhit3.ogg' loot = list(/obj/item/crowbar/freeman/ultimate) - gold_core_spawnable = NO_SPAWN /obj/structure/xen_pylon/freeman shield_range = 30 diff --git a/modular_ss220/maps220/code/objects.dm b/modular_ss220/maps220/code/objects.dm index e95d4534c2a8..7ff1fb2de788 100644 --- a/modular_ss220/maps220/code/objects.dm +++ b/modular_ss220/maps220/code/objects.dm @@ -581,6 +581,8 @@ var/shield_count = 0 faction = list("xen") tts_seed = "Vortiger" + gold_core_spawnable = NO_SPAWN + del_on_death = TRUE /mob/living/simple_animal/hostile/blackmesa/xen/update_overlays() . = ..() @@ -593,7 +595,7 @@ shielded = FALSE update_appearance() -/mob/living/simple_animal/hostile/blackmesa/xen/apply_damage(damage = 0, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharp = NONE, attack_direction = null, attacking_item) +/mob/living/simple_animal/hostile/blackmesa/xen/apply_damage(damage = 0, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharp = NONE, used_weapon, attack_direction = null, attacking_item) if(shielded) visible_message("ineffective!") return FALSE @@ -626,7 +628,7 @@ if(!ismob(entered_atom)) return var/mob/living/simple_animal/hostile/blackmesa/xen/entered_xen_mob = entered_atom - if(!entered_xen_mob.can_be_shielded) + if(!entered_xen_mob) return register_mob(entered_xen_mob) @@ -644,6 +646,14 @@ RegisterSignal(created_beam, COMSIG_PARENT_QDELETING, PROC_REF(beam_died), override = TRUE) RegisterSignal(mob_to_register, COMSIG_PARENT_QDELETING, PROC_REF(mob_died), override = TRUE) +/obj/structure/xen_pylon/proc/beam_died(datum/beam/beam_to_kill) + SIGNAL_HANDLER + for(var/mob/living/simple_animal/hostile/blackmesa/xen/iterating_mob as anything in shielded_mobs) + // if(shielded_mobs[iterating_mob] == beam_to_kill) + iterating_mob.lose_shield() + shielded_mobs[iterating_mob] = null + shielded_mobs -= iterating_mob + /obj/structure/xen_pylon/proc/mob_died(atom/movable/source, force) SIGNAL_HANDLER var/datum/beam/beam = shielded_mobs[source] @@ -651,14 +661,6 @@ shielded_mobs[source] = null shielded_mobs -= source -/obj/structure/xen_pylon/proc/beam_died(datum/beam/beam_to_kill) - SIGNAL_HANDLER - for(var/mob/living/simple_animal/hostile/blackmesa/xen/iterating_mob as anything in shielded_mobs) - if(shielded_mobs[iterating_mob] == beam_to_kill) - iterating_mob.lose_shield() - shielded_mobs[iterating_mob] = null - shielded_mobs -= iterating_mob - /obj/structure/xen_pylon/Destroy() for(var/mob/living/simple_animal/hostile/blackmesa/xen/iterating_mob as anything in shielded_mobs) iterating_mob.lose_shield() diff --git a/modular_ss220/mobs/code/pet_carrier.dm b/modular_ss220/mobs/code/pet_carrier.dm index 2c9563653baa..453499dd4c88 100644 --- a/modular_ss220/mobs/code/pet_carrier.dm +++ b/modular_ss220/mobs/code/pet_carrier.dm @@ -68,6 +68,9 @@ if(target.mob_size > mob_size) to_chat(user, "Ваша переноска слишком мала!") return FALSE + if(!istype(target, /mob/living/simple_animal/pet)) + to_chat(user, "Это существо не очень похоже на ручное животное.") + return FALSE //if(target.mob_size < mob_size) // to_chat(user, "Ваша переноска слишком большая!") // return FALSE diff --git a/modular_ss220/mobs/code/simple_animal/pets/security_dogs.dm b/modular_ss220/mobs/code/simple_animal/pets/security_dogs.dm index 64deb877e871..a7ad0195f406 100644 --- a/modular_ss220/mobs/code/simple_animal/pets/security_dogs.dm +++ b/modular_ss220/mobs/code/simple_animal/pets/security_dogs.dm @@ -49,7 +49,16 @@ tts_seed = "Thrall" /mob/living/simple_animal/pet/dog/security/detective/show_inv(mob/user) - return + if(user.incapacitated() || !Adjacent(user)) + return + user.set_machine(src) + + var/dat = {"
Inventory of [name]

"} + dat += "
Collar: [pcollar]" : "add_inv=collar'>Nothing"]" + + var/datum/browser/popup = new(user, "mob[UID()]", "[src]", 440, 250) + popup.set_content(dat) + popup.open() /mob/living/simple_animal/pet/dog/security/show_inv(mob/user) if(user.incapacitated() || !Adjacent(user)) diff --git a/modular_ss220/modular_ss220.dme b/modular_ss220/modular_ss220.dme index 55018b78a458..53a170e02283 100644 --- a/modular_ss220/modular_ss220.dme +++ b/modular_ss220/modular_ss220.dme @@ -63,7 +63,6 @@ #include "logs/_logs.dme" #include "mobs/_mobs.dme" #include "pixel_shift/_pixel_shift.dme" -#include "radio_sound/radio_sound.dme" #include "screentip_change/_screentip_change.dme" #include "smart_equip_targeted/_smart_equip_targeted.dme" #include "sm_space_drop/sm_space_drop.dme" @@ -76,6 +75,8 @@ #include "mecha_skins/mecha_skins.dme" #include "queue/_queue.dme" #include "phrases/_phrases.dme" +#include "species_whitelist/_species_whitelist.dme" +#include "antagonists/_antagonists.dme" // --- PRIME --- // // #define MODPACK_MAIN_ONLY @@ -99,19 +100,3 @@ ---------------------------------------------------------------------*/ // #include "crit_rework/_crit_rework.dme" - -// in jobs modpack -/*------------------------------------------------------------------ - - #include "code/cards_ids.dm" - #include "code/jobs.dm" - #include "code/clothing/engineering_clothing.dm" - #include "code/clothing/medical_clothing.dm" - #include "code/clothing/science_clothing.dm" - #include "code/clothing/security_clothing.dm" - #include "code/job/engineering_jobs.dm" - #include "code/job/medical_jobs.dm" - #include "code/job/science_jobs.dm" - #include "code/job/security_jobs.dm" - - ---------------------------------------------------------------------*/ diff --git a/modular_ss220/objects/_objects.dme b/modular_ss220/objects/_objects.dme index ebf82ed46905..793ef407590f 100644 --- a/modular_ss220/objects/_objects.dme +++ b/modular_ss220/objects/_objects.dme @@ -18,3 +18,4 @@ #include "code/tribune.dm" #include "code/weapons.dm" #include "code/key.dm" +#include "code/musician.dm" diff --git a/modular_ss220/objects/code/card_skins.dm b/modular_ss220/objects/code/card_skins.dm index 961bd430af39..13e23126a197 100644 --- a/modular_ss220/objects/code/card_skins.dm +++ b/modular_ss220/objects/code/card_skins.dm @@ -279,6 +279,20 @@ pronoun_name = "наклейку в виде терминала" info = "Эта карта похожа на терминал." +/obj/item/id_skin/jokerge + name = "\improper джокерге наклейка на карту" + desc = "Jokerge." + icon_state = "jokerge" + pronoun_name = "наклейку в виде Джокерге" + info = "Jokerge." + +/obj/item/id_skin/boykisser + name = "\improper бойкиссерская наклейка на карту" + desc = "Наклеив её на карту, у вас с почти 100% вероятностью, появится желание целовать мальчиков." + icon_state = "boykisser" + pronoun_name = "наклейку в виде бойкиссера" + info = "Он любит целовать мальчиков." + // Supply Crate /datum/supply_packs/misc/randomised/id_skins name = "Наклейки на карточку" @@ -289,20 +303,20 @@ /obj/item/id_skin/colored, /obj/item/id_skin/colored, /obj/item/id_skin/colored, - /obj/item/id_skin/colored, - /obj/item/id_skin/donut, /obj/item/id_skin/donut, /obj/item/id_skin/donut, /obj/item/id_skin/donut, /obj/item/id_skin/donut, + /obj/item/id_skin/ussp, + /obj/item/id_skin/ussp, + /obj/item/id_skin/business, + /obj/item/id_skin/business, /obj/item/id_skin/colored/silver, /obj/item/id_skin/colored/silver, - /obj/item/id_skin/colored/silver, + /obj/item/id_skin/silver, /obj/item/id_skin/silver, /obj/item/id_skin/gold, - /obj/item/id_skin/business, /obj/item/id_skin/lifetime, - /obj/item/id_skin/ussp, /obj/item/id_skin/clown, /obj/item/id_skin/neon, /obj/item/id_skin/colored/neon, @@ -316,7 +330,9 @@ /obj/item/id_skin/cursedmiku, /obj/item/id_skin/colored/snake, /obj/item/id_skin/magic, - /obj/item/id_skin/terminal) + /obj/item/id_skin/terminal, + /obj/item/id_skin/jokerge, + /obj/item/id_skin/boykisser) cost = 2000 containername = "ящик с наклейками" @@ -327,13 +343,13 @@ icon_state = "ID_Random" result = list( /obj/item/id_skin/colored = 10, - /obj/item/id_skin/donut = 10, + /obj/item/id_skin/donut = 5, + /obj/item/id_skin/business = 5, + /obj/item/id_skin/ussp = 5, /obj/item/id_skin/colored/silver = 5, - /obj/item/id_skin/silver = 1, + /obj/item/id_skin/silver = 5, /obj/item/id_skin/gold = 1, - /obj/item/id_skin/business = 1, /obj/item/id_skin/lifetime = 1, - /obj/item/id_skin/ussp = 1, /obj/item/id_skin/clown = 1, /obj/item/id_skin/neon = 1, /obj/item/id_skin/colored/neon = 1, @@ -347,19 +363,21 @@ /obj/item/id_skin/cursedmiku = 1, /obj/item/id_skin/colored/snake = 1, /obj/item/id_skin/magic = 1, - /obj/item/id_skin/terminal = 1) + /obj/item/id_skin/terminal = 1, + /obj/item/id_skin/jokerge = 1, + /obj/item/id_skin/boykisser = 1) /obj/effect/spawner/random_spawners/id_skins/no_chance result = list( /datum/nothing = 80, /obj/item/id_skin/colored = 10, - /obj/item/id_skin/donut = 10, + /obj/item/id_skin/donut = 5, + /obj/item/id_skin/business = 5, + /obj/item/id_skin/ussp = 5, /obj/item/id_skin/colored/silver = 5, - /obj/item/id_skin/silver = 1, + /obj/item/id_skin/silver = 5, /obj/item/id_skin/gold = 1, - /obj/item/id_skin/business = 1, /obj/item/id_skin/lifetime = 1, - /obj/item/id_skin/ussp = 1, /obj/item/id_skin/clown = 1, /obj/item/id_skin/neon = 1, /obj/item/id_skin/colored/neon = 1, @@ -373,4 +391,6 @@ /obj/item/id_skin/cursedmiku = 1, /obj/item/id_skin/colored/snake = 1, /obj/item/id_skin/magic = 1, - /obj/item/id_skin/terminal = 1) + /obj/item/id_skin/terminal = 1, + /obj/item/id_skin/jokerge = 1, + /obj/item/id_skin/boykisser = 1) diff --git a/modular_ss220/objects/code/musician.dm b/modular_ss220/objects/code/musician.dm new file mode 100644 index 000000000000..067f88e19585 --- /dev/null +++ b/modular_ss220/objects/code/musician.dm @@ -0,0 +1,11 @@ +/obj/structure/musician/piano + allowed_instrument_ids = "crgrand1" + +/obj/item/instrument/guitar + allowed_instrument_ids = "csteelgt" + +/obj/item/instrument/trumpet + allowed_instrument_ids = "crtrumpet" + +/obj/item/instrument/trombone + allowed_instrument_ids = "crtrombone" diff --git a/modular_ss220/objects/code/papershredder.dm b/modular_ss220/objects/code/papershredder.dm index b9bdc6566d78..fa12cc38edbc 100644 --- a/modular_ss220/objects/code/papershredder.dm +++ b/modular_ss220/objects/code/papershredder.dm @@ -114,7 +114,7 @@ if(resistance_flags & ON_FIRE) add_fingerprint(user) return - if(is_hot(shredp, user)) + if(shredp.get_heat()) add_fingerprint(user) user.visible_message(span_danger("\The [user] burns right through [src], turning it to ash. It flutters through the air before settling on the floor in a heap."), span_danger("You burn right through [src], turning it to ash. It flutters through the air before settling on the floor in a heap.")) fire_act() diff --git a/modular_ss220/objects/code/posters.dm b/modular_ss220/objects/code/posters.dm index 0182282f99f6..f2afb7ad5b6a 100644 --- a/modular_ss220/objects/code/posters.dm +++ b/modular_ss220/objects/code/posters.dm @@ -26,6 +26,24 @@ icon = 'modular_ss220/objects/icons/posters.dmi' icon_state = "contraband4" +/obj/structure/sign/poster/contraband/soulless_figures + name = "Бездушные фигуры" + desc = "Плакат изображает множество безвольно слоняющихся тёмных фигур. Кажется они смотрят прямо на тебя, жуть..." + icon = 'modular_ss220/objects/icons/posters.dmi' + icon_state = "contraband5" + +/obj/structure/sign/poster/contraband/your_fate + name = "Твоя судьба" + desc = "На плакате изображается дом и ряд одинаковых домов уходящих вдаль, расположенных на кровавом полотне. Ниже можно разглядеть тень искореженной руки.\nНад домами возвышаются существа чертоватого вида, а надпись снизу гласит: \"Твоя судьба?\"" + icon = 'modular_ss220/objects/icons/posters.dmi' + icon_state = "contraband6" + +/obj/structure/sign/poster/contraband/watching_eye + name = "Всевидящее Око" + desc = "На плакате изображен глаз, излучающий свет. Текст на плакате гласит: \"Оно следит за\", \"Тобой\"." + icon = 'modular_ss220/objects/icons/posters.dmi' + icon_state = "contraband7" + // Legit /obj/structure/sign/poster/official/mars name = "Плакат Марса" diff --git a/modular_ss220/objects/icons/id_skins.dmi b/modular_ss220/objects/icons/id_skins.dmi index a014e9073b82..64662e5e46e0 100644 Binary files a/modular_ss220/objects/icons/id_skins.dmi and b/modular_ss220/objects/icons/id_skins.dmi differ diff --git a/modular_ss220/objects/icons/posters.dmi b/modular_ss220/objects/icons/posters.dmi index 7e4031b46fb5..0ba068450f0c 100644 Binary files a/modular_ss220/objects/icons/posters.dmi and b/modular_ss220/objects/icons/posters.dmi differ diff --git a/modular_ss220/pixel_shift/code/pixel_shift_mob.dm b/modular_ss220/pixel_shift/code/pixel_shift_mob.dm index 97d1b61f4592..1180d44cf9a4 100644 --- a/modular_ss220/pixel_shift/code/pixel_shift_mob.dm +++ b/modular_ss220/pixel_shift/code/pixel_shift_mob.dm @@ -6,3 +6,8 @@ /mob/living/silicon/ai/add_pixel_shift_component() return + +/datum/species/moth/spec_Process_Spacemove(mob/living/carbon/human/H) + . = ..() + if(has_gravity(H)) + return FALSE diff --git a/modular_ss220/radio_sound/code/radiosound.dm b/modular_ss220/radio_sound/code/radiosound.dm deleted file mode 100644 index a14449df95d7..000000000000 --- a/modular_ss220/radio_sound/code/radiosound.dm +++ /dev/null @@ -1,16 +0,0 @@ -/obj/item/radio/headset - var/radiosound = 'modular_ss220/radio_sound/sound/common.ogg' - -/obj/item/radio/headset/syndicate //disguised to look like a normal headset for stealth ops - radiosound = 'modular_ss220/radio_sound/sound/syndie.ogg' - -/obj/item/radio/headset/headset_sec - radiosound = 'modular_ss220/radio_sound/sound/security.ogg' - -/obj/item/radio/headset/talk_into(mob/living/M as mob, list/message_pieces, channel, verbage = "says") - if(!on) - return FALSE // the device has to be on - - if(radiosound && listening) - playsound(M, radiosound, rand(20, 30)) - . = ..() diff --git a/modular_ss220/radio_sound/radio_sound.dme b/modular_ss220/radio_sound/radio_sound.dme deleted file mode 100644 index f296671ade56..000000000000 --- a/modular_ss220/radio_sound/radio_sound.dme +++ /dev/null @@ -1,3 +0,0 @@ -// BEGIN INCLUDE -#include "code/radiosound.dm" -// END_INCLUDE diff --git a/modular_ss220/radio_sound/sound/common.ogg b/modular_ss220/radio_sound/sound/common.ogg deleted file mode 100644 index 20a1d1da0a06..000000000000 Binary files a/modular_ss220/radio_sound/sound/common.ogg and /dev/null differ diff --git a/modular_ss220/radio_sound/sound/security.ogg b/modular_ss220/radio_sound/sound/security.ogg deleted file mode 100644 index e905d018a81e..000000000000 Binary files a/modular_ss220/radio_sound/sound/security.ogg and /dev/null differ diff --git a/modular_ss220/radio_sound/sound/syndie.ogg b/modular_ss220/radio_sound/sound/syndie.ogg deleted file mode 100644 index 818ec11c1561..000000000000 Binary files a/modular_ss220/radio_sound/sound/syndie.ogg and /dev/null differ diff --git a/modular_ss220/sechailer/code/sechailer.dm b/modular_ss220/sechailer/code/sechailer.dm index 217f009b64aa..102f95e1b3b4 100644 --- a/modular_ss220/sechailer/code/sechailer.dm +++ b/modular_ss220/sechailer/code/sechailer.dm @@ -1,32 +1,36 @@ GLOBAL_LIST_EMPTY(sechailers) /datum/action/item_action/dispatch - name = "Signal dispatch" - desc = "Opens up a quick select wheel for reporting crimes, including your current location, to your fellow security officers." + name = "Signal Dispatch" + desc = "Открывает колесо быстрого выбора для сообщения о преступлениях, включая ваше текущее местоположение." button_icon_state = "dispatch" icon_icon = 'modular_ss220/sechailer/icons/sechailer.dmi' use_itemicon = FALSE /obj/item/clothing/mask/gas/sechailer - name = "\improper security gas mask" - var/obj/item/radio/radio //For engineering alerts. - var/dispatch_cooldown = 250 - var/last_dispatch = 0 + var/obj/item/radio/radio // For dispatch to work + var/dispatch_cooldown = 25 SECONDS + var/on_cooldown = FALSE + var/emped = FALSE + var/static/list/available_dispatch_messages = list( + "502 (Убийство)", + "101 (Сопротивление Аресту)", + "308 (Вторжение)", + "305 (Мятеж)", + "402 (Нападение на Офицера)") actions_types = list(/datum/action/item_action/dispatch, /datum/action/item_action/halt, /datum/action/item_action/adjust, /datum/action/item_action/selectphrase) /obj/item/clothing/mask/gas/sechailer/hos - name = "\improper head of security's SWAT mask" - actions_types = list(/datum/action/item_action/dispatch, /datum/action/item_action/halt, /datum/action/item_action/adjust, /datum/action/item_action/selectphrase) + actions_types = list(/datum/action/item_action/dispatch, /datum/action/item_action/halt, /datum/action/item_action/selectphrase) /obj/item/clothing/mask/gas/sechailer/warden - name = "\improper warden's SWAT mask" - actions_types = list(/datum/action/item_action/dispatch, /datum/action/item_action/halt, /datum/action/item_action/adjust, /datum/action/item_action/selectphrase) + actions_types = list(/datum/action/item_action/dispatch, /datum/action/item_action/halt, /datum/action/item_action/selectphrase) /obj/item/clothing/mask/gas/sechailer/swat - actions_types = list(/datum/action/item_action/dispatch, /datum/action/item_action/halt, /datum/action/item_action/adjust, /datum/action/item_action/selectphrase) + actions_types = list(/datum/action/item_action/dispatch, /datum/action/item_action/halt, /datum/action/item_action/selectphrase) /obj/item/clothing/mask/gas/sechailer/blue - actions_types = list(/datum/action/item_action/dispatch, /datum/action/item_action/halt, /datum/action/item_action/adjust, /datum/action/item_action/selectphrase) + actions_types = list(/datum/action/item_action/dispatch, /datum/action/item_action/halt, /datum/action/item_action/selectphrase) /obj/item/clothing/mask/gas/sechailer/Destroy() qdel(radio) @@ -41,25 +45,62 @@ GLOBAL_LIST_EMPTY(sechailers) radio.config(list("Security" = 0)) radio.follow_target = src - /obj/item/clothing/mask/gas/sechailer/proc/dispatch(mob/user) - var/area/A = get_area(src) - if(world.time < last_dispatch + dispatch_cooldown) - to_chat(user, "Dispatch radio broadcasting systems are recharging.") - return FALSE - var/list/options = list() - for(var/option in list("502 (Убийство)", "101 (Сопротивление Аресту)", "308 (Вторжение)", "305 (Мятеж)", "402 (Нападение на Офицера)")) //Just hardcoded for now! - options[option] = image(icon = 'modular_ss220/sechailer/icons/menu.dmi', icon_state = option) - var/message = show_radial_menu(user, src, options) + for(var/option in available_dispatch_messages) + available_dispatch_messages[option] = image(icon = 'modular_ss220/sechailer/icons/menu.dmi', icon_state = option) + var/message = show_radial_menu(user, src, available_dispatch_messages) + var/location_name = get_location_name(src, TRUE) // get_location_name works better as Affected says + if(!message) - return FALSE - radio.autosay("Диспетчер, [user], код [message] в [A], запрашивается помощь.", src, "Security", list(z)) - last_dispatch = world.time + return + if(on_cooldown) + var/list/cooldown_info = list("Ожидайте. Система оповещения ") + if(emped) + cooldown_info += "в защитном режиме, " + else + cooldown_info += "перезаряжается, " + // Cooldown not updating realtime, and i don't want to rewrite it just for the sake of it + cooldown_info += "примерное время восстановления: [dispatch_cooldown / 10] секунд." + to_chat(user, span_notice(cooldown_info.Join())) + return + + on_cooldown = TRUE + addtimer(CALLBACK(src, PROC_REF(reboot)), dispatch_cooldown) + // This code if fucking hell, but it works as intended for(var/atom/movable/hailer in GLOB.sechailers) - if(hailer.loc && ismob(hailer.loc)) - playsound(hailer.loc, "modular_ss220/sechailer/sound/dispatch_please_respond.ogg", 55, FALSE) + var/security_channel_found = FALSE + if(!hailer.loc || !ismob(hailer.loc)) + continue + // Check if mob has a radio, then check if the radio has the right channels + for(var/obj/item/radio/my_radio in user) + for(var/chan in 1 to length(my_radio.channels)) + var/channel_name = my_radio.channels[chan] + if(channel_name == DEPARTMENT_SECURITY) + security_channel_found = TRUE + break + if(security_channel_found) + radio.autosay("Центр, Код [message], офицер [user] запрашивает помощь в [location_name].", "Система Оповещения", DEPARTMENT_SECURITY, list(z)) + playsound(hailer.loc, 'modular_ss220/sechailer/sound/dispatch_please_respond.ogg', 55, FALSE) + break + else + to_chat(user, span_warning("Внимание: Невозможно установить соединение с каналом службы безопасности, требуется подключение!")) + playsound(hailer.loc, 'modular_ss220/sechailer/sound/radio_static.ogg', 30, TRUE) + +/obj/item/clothing/mask/gas/sechailer/proc/reboot() + on_cooldown = FALSE + emped = FALSE /obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, actiontype) . = ..() if(actiontype == /datum/action/item_action/dispatch) dispatch(user) + +/obj/item/clothing/mask/gas/sechailer/emp_act(severity) + if(on_cooldown) + return + on_cooldown = TRUE + emped = TRUE + addtimer(CALLBACK(src, PROC_REF(reboot)), dispatch_cooldown) + if(ishuman(loc)) + var/mob/living/carbon/human/user = loc + to_chat(user, span_userdanger("Обнаружен электромагнитный импульс, система оповещения отключена для сохранения работоспособности...")) diff --git a/modular_ss220/sechailer/sound/radio_static.ogg b/modular_ss220/sechailer/sound/radio_static.ogg new file mode 100644 index 000000000000..8bc2eebb26f1 Binary files /dev/null and b/modular_ss220/sechailer/sound/radio_static.ogg differ diff --git a/modular_ss220/species_whitelist/_species_whitelist.dm b/modular_ss220/species_whitelist/_species_whitelist.dm new file mode 100644 index 000000000000..308df37ef295 --- /dev/null +++ b/modular_ss220/species_whitelist/_species_whitelist.dm @@ -0,0 +1,4 @@ +/datum/modpack/discord_link + name = "Вайтлист на расы" + desc = "Добавление вайтлиста на расы" + author = "legendaxe" diff --git a/modular_ss220/species_whitelist/_species_whitelist.dme b/modular_ss220/species_whitelist/_species_whitelist.dme new file mode 100644 index 000000000000..4d322dfee0df --- /dev/null +++ b/modular_ss220/species_whitelist/_species_whitelist.dme @@ -0,0 +1,4 @@ +#include "_species_whitelist.dm" + +#include "code/species_whitelist_configuration.dm" +#include "code/species_whitelist_preferences.dm" diff --git a/modular_ss220/species_whitelist/code/species_whitelist_configuration.dm b/modular_ss220/species_whitelist/code/species_whitelist_configuration.dm new file mode 100644 index 000000000000..50bcfb171b4b --- /dev/null +++ b/modular_ss220/species_whitelist/code/species_whitelist_configuration.dm @@ -0,0 +1,14 @@ +/datum/server_configuration + /// Holder for the gateway configuration datum + var/datum/configuration_section/species_whitelist_configuration/species_whitelist + +/datum/server_configuration/load_all_sections() + . = ..() + species_whitelist = new() + safe_load(species_whitelist, "species_whitelist_configuration") + +/datum/configuration_section/species_whitelist_configuration + var/species_whitelist_enabled = FALSE + +/datum/configuration_section/species_whitelist_configuration/load_data(list/data) + CONFIG_LOAD_BOOL(species_whitelist_enabled, data["species_whitelist_enabled"]) diff --git a/modular_ss220/species_whitelist/code/species_whitelist_preferences.dm b/modular_ss220/species_whitelist/code/species_whitelist_preferences.dm new file mode 100644 index 000000000000..62a7ea75c89e --- /dev/null +++ b/modular_ss220/species_whitelist/code/species_whitelist_preferences.dm @@ -0,0 +1,30 @@ +/datum/preferences + var/species_whitelist + +/datum/preferences/proc/get_species_whitelist() + . = TRUE + + if(species_whitelist) + return + + var/datum/db_query/preferences_query = SSdbcore.NewQuery("SELECT species_whitelist FROM player WHERE ckey=:ckey", list( + "ckey" = parent.ckey + )) + + if(!preferences_query.warn_execute()) + qdel(preferences_query) + return FALSE + + while(preferences_query.NextRow()) + var/species_whitelist_json = preferences_query.item[1] + if(species_whitelist_json) + species_whitelist = json_decode(preferences_query.item[1]) + + qdel(preferences_query) + +/datum/preferences/load_preferences(datum/db_query/query) + . = ..() + if(!.) + return + + return get_species_whitelist() diff --git a/modular_ss220/text_to_speech/code/_defines.dm b/modular_ss220/text_to_speech/code/_defines.dm index 76aa786cfde3..46fee09c1c0f 100644 --- a/modular_ss220/text_to_speech/code/_defines.dm +++ b/modular_ss220/text_to_speech/code/_defines.dm @@ -34,6 +34,20 @@ #define TTS_CATEGORY_LEFT4DEAD "Left 4 Dead" #define TTS_CATEGORY_SPONGEBOB "SpongeBob" #define TTS_CATEGORY_TINYBUNNY "Tiny Bunny" +#define TTS_CATEGORY_BALDURS_GATE_3 "Baldur's gate 3" +#define TTS_CATEGORY_PORTAL "Portal" +#define TTS_CATEGORY_TMNT "Teenage mutant ninja turtle" +#define TTS_CATEGORY_STAR_WARS "Star Wars" +#define TTS_CATEGORY_TRANSFORMERS "Transformers" +#define TTS_CATEGORY_LOTR "The Lord of the rings" +#define TTS_CATEGORY_SHREK "Shrek" +#define TTS_CATEGORY_POTC "Pirates of the Caribbean" +#define TTS_CATEGORY_HARRY_POTTER "Harry Potter" +#define TTS_CATEGORY_X3 "X3" +#define TTS_CATEGORY_OVERLORD2 "The Overlord 2" +#define TTS_CATEGORY_MARVEL "Marvel" +#define TTS_CATEGORY_WOW "World of Warcraft" +#define TTS_CATEGORY_TREASURE_ISLAND "Treasure Island" #define TTS_GENDER_ANY "Любой" #define TTS_GENDER_MALE "Мужской" diff --git a/modular_ss220/text_to_speech/code/seeds/silero.dm b/modular_ss220/text_to_speech/code/seeds/silero.dm index 538192ccd911..d98ba34466d9 100644 --- a/modular_ss220/text_to_speech/code/seeds/silero.dm +++ b/modular_ss220/text_to_speech/code/seeds/silero.dm @@ -4327,3 +4327,503 @@ category = TTS_CATEGORY_WITCHER gender = TTS_GENDER_MALE required_donator_level = 1 + +/datum/tts_seed/silero/gale + name = "Gale" + value = "en_Gale" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/jaheira + name = "Jaheira" + value = "en_Jaheira" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/laezel + name = "Laezel" + value = "en_Laezel" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/karlach + name = "Karlach" + value = "en_Karlach" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/shadowheart + name = "Shadowheart" + value = "en_Shadowheart" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/wyll + name = "Wyll" + value = "en_Wyll" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/minthara + name = "Minthara" + value = "en_Minthara" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/minsc + name = "Minsc" + value = "en_Minsc" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/astarion + name = "Astarion" + value = "en_Astarion" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/halsin + name = "Halsin" + value = "en_Halsin" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/emperor_bg3 + name = "Mind Flayer Emperor" + value = "en_Emperor" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/ketheric + name = "Ketheric" + value = "en_Ketheric" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/gortash + name = "Gortash" + value = "en_Gortash" + category = TTS_CATEGORY_BALDURS_GATE_3 + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/cave_johnson + name = "Cave johnson" + value = "portal_cave_johnson" + category = TTS_CATEGORY_PORTAL + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/shredder + name = "Shredder" + value = "Ninja_Turtles_shredder" + category = TTS_CATEGORY_TMNT + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/han_solo + name = "Han Solo" + value = "Star_Wars_Han_Solo" + category = TTS_CATEGORY_STAR_WARS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/darth_sidious + name = "Darth Sidious" + value = "Star_Wars_Darth_Sidious" + category = TTS_CATEGORY_STAR_WARS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/luke_skywalker + name = "Luke Skywalker" + value = "Star_Wars_Luke_Skywalker" + category = TTS_CATEGORY_STAR_WARS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/yoda + name = "Yoda" + value = "Star_Wars_Yoda" + category = TTS_CATEGORY_STAR_WARS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/darth_vader + name = "Darth Vader" + value = "Star_Wars_Darth_Vader" + category = TTS_CATEGORY_STAR_WARS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/obiwan_kenobi + name = "Obi-wan Kenobi" + value = "Star_Wars_Obi-Wan_Kenobi" + category = TTS_CATEGORY_STAR_WARS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/anakin_skywalker + name = "Anakin Skywalker" + value = "Star_Wars_Anakin_Skywalker" + category = TTS_CATEGORY_STAR_WARS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/optimus_prime + name = "Optimus Prime" + value = "Transformers_War_of_Cybertron_optimusprime" + category = TTS_CATEGORY_TRANSFORMERS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/megatron + name = "Megatron" + value = "Transformers_War_of_Cybertron_megatron" + category = TTS_CATEGORY_TRANSFORMERS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/soundwave + name = "Soundwave" + value = "Transformers_War_of_Cybertron_soundwave" + category = TTS_CATEGORY_TRANSFORMERS + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/aragorn + name = "Aragorn" + value = "The_Lord_of_the_Rings_Aragorn" + category = TTS_CATEGORY_LOTR + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/elrond + name = "Elrond" + value = "The_Lord_of_the_Rings_Elrond" + category = TTS_CATEGORY_LOTR + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/gandalf + name = "Gandalf" + value = "The_Lord_of_the_Rings_Gandalf" + category = TTS_CATEGORY_LOTR + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/gimli + name = "Gimli" + value = "The_Lord_of_the_Rings_Gimli" + category = TTS_CATEGORY_LOTR + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/gollum + name = "Gollum" + value = "The_Lord_of_the_Rings_Gollum" + category = TTS_CATEGORY_LOTR + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/legolas + name = "Legolas" + value = "The_Lord_of_the_Rings_Legolas" + category = TTS_CATEGORY_LOTR + gender = TTS_GENDER_MALE + + +/datum/tts_seed/silero/gingerbread_man + name = "Gingerbread Man" + value = "Srek_Gingerbread_Man" + category = TTS_CATEGORY_SHREK + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/fiona + name = "Fiona" + value = "Srek_Fiona" + category = TTS_CATEGORY_SHREK + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/donkey + name = "Donkey" + value = "Srek_Donkey" + category = TTS_CATEGORY_SHREK + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/fairy_godmother + name = "Fairy Godmother" + value = "Srek_Fairy_Godmother" + category = TTS_CATEGORY_SHREK + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/srek_king + name = "King" + value = "Srek_King" + category = TTS_CATEGORY_SHREK + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/srek_narrator + name = "Shrek Narrator" + value = "Srek_Narrator" + category = TTS_CATEGORY_SHREK + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/puss_in_boots + name = "Puss in Boots" + value = "Srek_Puss_in_Boots" + category = TTS_CATEGORY_SHREK + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/shrek + name = "Shrek" + value = "Srek_Shrek" + category = TTS_CATEGORY_SHREK + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/jack_sparrow + name = "Jack Sparrow" + value = "Pirats_of_the_caribbean_Jack_Sparrow" + category = TTS_CATEGORY_POTC + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/barbossa + name = "Barbossa" + value = "Pirats_of_the_caribbean_Barbossa" + category = TTS_CATEGORY_POTC + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/tiadalma + name = "Tiadalma" + value = "Pirats_of_the_caribbean_Tiadalma" + category = TTS_CATEGORY_POTC + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/davy_jones + name = "Davy Jones" + value = "Pirats_of_the_caribbean_Davy_Jones" + category = TTS_CATEGORY_POTC + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/sirius_black + name = "Sirius Black" + value = "Harry_Potter_Sirius_Black" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/dobby + name = "Dobby" + value = "Harry_Potter_Dobby" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/severus_snape_film + name = "Злодеус Злей(фильм)" + value = "Harry_Potter_Severus_Snape_film" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/harry_potter + name = "Harry Potter" + value = "Harry_Potter_Harry_Potter" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/dumbledore + name = "Albus Dumbledore" + value = "Harry_Potter_Albus_Dumbledore" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/voldemort + name = "Voldemort" + value = "Harry_Potter_Lord_Voldemort" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/severus_snape + name = "Злодеус Злей" + value = "Harry_Potter_Severus_Snape" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/flitwick + name = "Filius Flitwick" + value = "Harry_Potter_Filius_Flitwick" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/minerva_mcgonagall + name = "Minnerva McGonagall" + value = "Harry_Potter_Minerva_McGonagall" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/horace_slughorn + name = "Horace Slughorn" + value = "Harry_Potter_Horace_Slughorn" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/cedric + name = "Cedric" + value = "Harry_Potter_Cedric" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/alastor + name = "Alastor Mad-eye Moody" + value = "Harry_Potter_Alastor_Mad-Eye_Moody" + category = TTS_CATEGORY_HARRY_POTTER + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/x3_betty + name = "Betty" + value = "X3_reunion_Betty" + category = TTS_CATEGORY_X3 + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/overlord_gnarl + name = "Gnarl" + value = "Overlord_2_Gnarl" + category = TTS_CATEGORY_OVERLORD2 + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/tony_stark + name = "Tony Stark" + value = "Marvel_Tony_Stark" + category = TTS_CATEGORY_MARVEL + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/sabellian + name = "Sabellian" + value = "Dragons_Sabellian" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/ysera + name = "Ysera" + value = "Dragons_Ysera" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/malygos_wotlk + name = "Malygos(WOTLK)" + value = "Dragons_MalygosWrath_of_the_Lich_King" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/ebyssian + name = "Ebyssian" + value = "Dragons_Ebyssian" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/deathwing + name = "Deathwing" + value = "Dragons_Deathwing" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/nozdormu + name = "Nozdormu" + value = "Dragons_Nozdormu" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/malygos + name = "Malygos" + value = "Dragons_Malygos" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/calderax + name = "Calderax" + value = "Draconids_Calderax" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/bazentus + name = "Bazentus" + value = "Draconids_Bazentus" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/kazra + name = "Kazra" + value = "Draconids_Kazra" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/seltherex + name = "Seltherex" + value = "Draconids_Seltherex" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/sendrax + name = "Sendrax" + value = "Draconids_Sendrax" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/evantkis + name = "Evantkis" + value = "Draconids_Evantkis" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/drine + name = "Drine" + value = "Draconids_Drine" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/lethanak + name = "Lethanak" + value = "Draconids_Lethanak" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/wrathion_echo + name = "Wrathion(echo)" + value = "Dragons2_Wrathion_echo" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/alexstraza + name = "Alexstraza" + value = "Dragons2_Alexstraza" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/kalecgos + name = "Kalecgos" + value = "Dragons2_Kalecgos" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/wrathion + name = "Wrathion" + value = "Dragons2_Wrathion" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/kalechos_echo + name = "Kalecgos(echo)" + value = "Dragons2_Kalecgos_echo" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/alextraza + name = "Alextraza(echo)" + value = "Dragons2_Alextraza_echo" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_FEMALE + +/datum/tts_seed/silero/neltharion_echo + name = "Neltharion(echo)" + value = "Dragons2_Neltharion_echo" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/wrathion_deathwing + name = "Wration Deathwing" + value = "Dragons2_Wrathion_Deathwing" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/neltharion + name = "Neltharion" + value = "Dragons2_Neltharion" + category = TTS_CATEGORY_WOW + gender = TTS_GENDER_MALE + +/datum/tts_seed/silero/livsy + name = "Livsy" + value = "Treasure_Island_Livsy" + category = TTS_CATEGORY_TREASURE_ISLAND + gender = TTS_GENDER_MALE + diff --git a/modular_ss220/text_to_speech/code/tts_preferences.dm b/modular_ss220/text_to_speech/code/tts_preferences.dm index 7e86aed414fb..c19f23b3d7c3 100644 --- a/modular_ss220/text_to_speech/code/tts_preferences.dm +++ b/modular_ss220/text_to_speech/code/tts_preferences.dm @@ -101,7 +101,16 @@ client.prefs.ShowChoices(src) return FALSE var/datum/tts_seed/seed = SStts220.tts_seeds[client.prefs.active_character.tts_seed] - if(client.donator_level < seed.required_donator_level) + + switch(client.donator_level) + if(LITTLE_WORKER_TIER) + if(LITTLE_WORKER_TTS_LEVEL >= seed.required_donator_level) + return TRUE + if(BIG_WORKER_TIER) + if(BIG_WORKER_TTS_LEVEL >= seed.required_donator_level) + return TRUE + + if(client.donator_level < seed.required_donator_level || client.donator_level > DONATOR_LEVEL_MAX) to_chat(usr, span_danger("Выбранный голос персонажа более недоступен на текущем уровне подписки!")) client.prefs.ShowChoices(src) return FALSE diff --git a/modular_ss220/text_to_speech/code/tts_seed.dm b/modular_ss220/text_to_speech/code/tts_seed.dm index 89406dd70316..d9f806aff8a5 100644 --- a/modular_ss220/text_to_speech/code/tts_seed.dm +++ b/modular_ss220/text_to_speech/code/tts_seed.dm @@ -21,7 +21,7 @@ else tts_seeds = SStts220.get_available_seeds(src) - var/new_tts_seed = tgui_input_list(user || src, "Выберите голос:", "Настройка персонажа", tts_seeds) + var/new_tts_seed = input(user || src, "Выберите голос:", "Настройка персонажа", tts_seed) as null|anything in tts_seeds if(!new_tts_seed) return null if(!silent_target && ismob(src) && src != user) diff --git a/modular_ss220/text_to_speech/code/tts_subsystem.dm b/modular_ss220/text_to_speech/code/tts_subsystem.dm index f6712b290cb7..e37caed029b5 100644 --- a/modular_ss220/text_to_speech/code/tts_subsystem.dm +++ b/modular_ss220/text_to_speech/code/tts_subsystem.dm @@ -114,6 +114,8 @@ SUBSYSTEM_DEF(tts220) "detective" = "Детектив", "forensic technician" = "Криминалист", "security officer" = "Офицер службы безопасности", + "security trainer" = "Тренер службы безопасности", + "junior security officer" = "Младший офицер службы безопасности", "security cadet" = "Кадет службы безопасности", "Security Assistant" = "Ассистент службы безопасности", "Security Graduate" = "Выпускник кадетской академии", diff --git a/modular_ss220/title_screen/_title_screen.dme b/modular_ss220/title_screen/_title_screen.dme index 3ce7fa5f8752..e7740ff637de 100644 --- a/modular_ss220/title_screen/_title_screen.dme +++ b/modular_ss220/title_screen/_title_screen.dme @@ -6,5 +6,4 @@ #include "code/mob.dm" #include "code/new_player.dm" #include "code/title_screen_controls.dm" -#include "code/title_screen_html.dm" #include "code/title_screen_subsystem.dm" diff --git a/modular_ss220/title_screen/code/_title_screen_defines.dm b/modular_ss220/title_screen/code/_title_screen_defines.dm index aadc5b919a68..02bb9871eb24 100644 --- a/modular_ss220/title_screen/code/_title_screen_defines.dm +++ b/modular_ss220/title_screen/code/_title_screen_defines.dm @@ -1,5 +1,4 @@ #define DEFAULT_TITLE_SCREEN_IMAGE 'modular_ss220/title_screen/icons/default.dmi' -#define DEFAULT_TITLE_LOADING_SCREEN 'modular_ss220/title_screen/icons/loading_screen.gif' #define DEFAULT_TITLE_HTML {" diff --git a/modular_ss220/title_screen/code/mob.dm b/modular_ss220/title_screen/code/mob.dm index 17f02d8b2b9f..316772269203 100644 --- a/modular_ss220/title_screen/code/mob.dm +++ b/modular_ss220/title_screen/code/mob.dm @@ -1,3 +1,5 @@ +#define TITLE_SCREEN_BG_FILE_NAME "bg_file_name" + /** * Shows the titlescreen to a new player. */ @@ -12,13 +14,31 @@ update_title_screen() +/** + * Get the HTML of title screen. + */ +/mob/proc/get_title_html() + var/dat = SStitle.title_html + dat += {""} + + if(SStitle.current_notice) + dat += {" +

+ +
+ "} + + dat += "" + + return dat + /** * Hard updates the title screen HTML, it causes visual glitches if used. */ /mob/proc/update_title_screen() var/dat = get_title_html() - src << browse(SStitle.current_title_screen, "file=loading_screen.gif;display=0") + src << browse(SStitle.current_title_screen, "file=[TITLE_SCREEN_BG_FILE_NAME];display=0") src << browse(dat, "window=title_browser") /datum/asset/simple/lobby @@ -33,3 +53,5 @@ if(client?.mob) winset(client, "title_browser", "is-disabled=true;is-visible=false") winset(client, "status_bar", "is-visible=true") + +#undef TITLE_SCREEN_BG_FILE_NAME diff --git a/modular_ss220/title_screen/code/new_player.dm b/modular_ss220/title_screen/code/new_player.dm index aeff79c5ae94..8dc07b7195a0 100644 --- a/modular_ss220/title_screen/code/new_player.dm +++ b/modular_ss220/title_screen/code/new_player.dm @@ -1,14 +1,3 @@ -GLOBAL_LIST_EMPTY(new_player_list) - -/mob/new_player/Initialize(mapload) - GLOB.new_player_list += src - show_title_screen() - . = ..() - -/mob/new_player/Destroy() - GLOB.new_player_list -= src - . = ..() - /mob/new_player/Login() . = ..() show_title_screen() diff --git a/modular_ss220/title_screen/code/title_screen_controls.dm b/modular_ss220/title_screen/code/title_screen_controls.dm index f2be6e8d47d8..579cba432ff5 100644 --- a/modular_ss220/title_screen/code/title_screen_controls.dm +++ b/modular_ss220/title_screen/code/title_screen_controls.dm @@ -39,7 +39,7 @@ SStitle.set_notice(new_notice) if(!new_notice) return - for(var/mob/new_player/new_player in GLOB.new_player_list) + for(var/mob/new_player/new_player in GLOB.player_list) to_chat(new_player, span_boldannounce("TITLE NOTICE UPDATED: [new_notice]")) SEND_SOUND(new_player, sound('sound/items/bikehorn.ogg')) diff --git a/modular_ss220/title_screen/code/title_screen_html.dm b/modular_ss220/title_screen/code/title_screen_html.dm deleted file mode 100644 index bde98fd53895..000000000000 --- a/modular_ss220/title_screen/code/title_screen_html.dm +++ /dev/null @@ -1,16 +0,0 @@ -// FOR MOR INFO ON HTML CUSTOMISATION, SEE: https://github.com/Skyrat-SS13/Skyrat-tg/pull/4783 - -/mob/proc/get_title_html() - var/dat = SStitle.title_html - dat += {""} - - if(SStitle.current_notice) - dat += {" -
- -
- "} - - dat += "" - - return dat diff --git a/modular_ss220/title_screen/code/title_screen_subsystem.dm b/modular_ss220/title_screen/code/title_screen_subsystem.dm index 54fe207c2e01..bf3288137af6 100644 --- a/modular_ss220/title_screen/code/title_screen_subsystem.dm +++ b/modular_ss220/title_screen/code/title_screen_subsystem.dm @@ -1,9 +1,8 @@ +#define TITLE_SCREENS_LOCATION "config/title_screens/images/" + /datum/controller/subsystem/title flags = SS_NO_FIRE init_order = INIT_ORDER_TITLE - - var/file_path - /// The current title screen being displayed, as a file path text. var/current_title_screen /// The current notice text, or null. @@ -14,35 +13,26 @@ var/title_screens = list() /datum/controller/subsystem/title/Initialize() - var/dat if(!fexists("config/title_html.txt")) - to_chat(world, span_boldwarning("CRITICAL ERROR: Unable to read title_html.txt, reverting to backup title html, please check your server config and ensure this file exists.")) - dat = DEFAULT_TITLE_HTML + error(span_boldwarning("Unable to read title_html.txt, reverting to backup title html, please check your server config and ensure this file exists.")) + title_html = DEFAULT_TITLE_HTML else - dat = file2text("config/title_html.txt") - - title_html = dat + title_html = file2text("config/title_html.txt") - var/list/provisional_title_screens = flist("config/title_screens/images/") var/list/local_title_screens = list() - - for(var/screen in provisional_title_screens) - var/list/formatted_list = splittext(screen, "+") - if((LAZYLEN(formatted_list) == 1 && (formatted_list[1] != "exclude" && formatted_list[1] != "blank.png"))) + for(var/screen in flist(TITLE_SCREENS_LOCATION)) + var/list/screen_name_parts = splittext(screen, "+") + if((LAZYLEN(screen_name_parts) == 1 && (screen_name_parts[1] != "exclude" && screen_name_parts[1] != "blank.png"))) local_title_screens += screen - if(length(local_title_screens)) - for(var/i in local_title_screens) - var/file_path = "config/title_screens/images/[i]" - ASSERT(fexists(file_path)) - var/icon/title2use = new(fcopy_rsc(file_path)) - title_screens += title2use + for(var/title_screen in local_title_screens) + var/file_path = "[TITLE_SCREENS_LOCATION][title_screen]" + ASSERT(fexists(file_path)) + title_screens += fcopy_rsc(file_path) change_title_screen() /datum/controller/subsystem/title/Recover() - file_path = SStitle.file_path - current_title_screen = SStitle.current_title_screen current_notice = SStitle.current_notice title_html = SStitle.title_html @@ -52,7 +42,7 @@ * Show the title screen to all new players. */ /datum/controller/subsystem/title/proc/show_title_screen() - for(var/mob/new_player/new_player in GLOB.new_player_list) + for(var/mob/new_player/new_player in GLOB.player_list) INVOKE_ASYNC(new_player, TYPE_PROC_REF(/mob/new_player, show_title_screen)) /** @@ -75,3 +65,5 @@ current_title_screen = DEFAULT_TITLE_SCREEN_IMAGE show_title_screen() + +#undef TITLE_SCREENS_LOCATION diff --git a/modular_ss220/title_screen/icons/loading_screen.gif b/modular_ss220/title_screen/icons/loading_screen.gif deleted file mode 100644 index c8a2c487037b..000000000000 Binary files a/modular_ss220/title_screen/icons/loading_screen.gif and /dev/null differ diff --git a/modular_ss220/verbs/code/verbs.dm b/modular_ss220/verbs/code/verbs.dm index 96951343c0a1..c68b15645012 100644 --- a/modular_ss220/verbs/code/verbs.dm +++ b/modular_ss220/verbs/code/verbs.dm @@ -36,3 +36,47 @@ M.key = key return + +// Pick darkness list +/mob/dead/observer/pick_darkness() + set name = "Pick Darkness" + set desc = "Choose how much darkness you want to see." + set category = "Ghost" + + if(!client) + return + + var/darkness_level = tgui_input_list(usr, "Choose your darkness", "Pick Darkness", list("Darkness", "Twilight", "Brightness", "Custom")) + if(!darkness_level) + return + + var/new_darkness + switch(darkness_level) + if("Darkness") + new_darkness = 255 + if("Twilight") + new_darkness = 210 + if("Brightness") + new_darkness = 0 + if("Custom") + new_darkness = input(usr, "Введите новое значение (0 - 255). Больше - темнее.", "Pick Darkness") as null|num + + if(isnull(new_darkness)) + return + + client.prefs.ghost_darkness_level = new_darkness + client.prefs.save_preferences(src) + lighting_alpha = client.prefs.ghost_darkness_level + update_sight() + +/mob/dead/observer/dead_tele() + set category = "Ghost" + set name = "Teleport" + set desc= "Teleport to a location" + + if(!isobserver(usr)) + to_chat(usr, "Ты ещё не мёртв!") + return + + var/target = tgui_input_list(usr, "Куда телепортируемся?", "Телепортация", SSmapping.ghostteleportlocs) + teleport(SSmapping.ghostteleportlocs[target]) diff --git a/modular_ss220/whitelist/code/whitelist.dm b/modular_ss220/whitelist/code/whitelist.dm index 95840bf37e51..b51b5c26067b 100644 --- a/modular_ss220/whitelist/code/whitelist.dm +++ b/modular_ss220/whitelist/code/whitelist.dm @@ -57,6 +57,6 @@ /world/IsBanned(key, address, computer_id, type, check_ipintel, check_2fa, check_guest, log_info, check_tos) var/ckey = ckey(key) if(GLOB.configuration.overflow.reroute_cap == 0.5 && ckey && !(ckey in GLOB.configuration.overflow.overflow_whitelist)) - return list("reason"="no-whitelist", "desc"="\nПричина: Вас ([key]) нет в вайтлисте этого сервера. Приобрести доступ возможно у одного из стримеров Банды за баллы канала.") + return list("reason"="no-whitelist", "desc"="\nПричина: Вас ([key]) нет в вайтлисте этого сервера. Приобрести доступ возможно у одного из стримеров Банды за баллы канала или записаться самостоятельно с помощью команды в дискорде, доступной сабам бусти, начиная со второго тира.") . = ..() diff --git a/paradise.dme b/paradise.dme index 438f05c686b1..78c0854ed145 100644 --- a/paradise.dme +++ b/paradise.dme @@ -132,7 +132,6 @@ #include "code\__HELPERS\colour_helpers.dm" #include "code\__HELPERS\constants.dm" #include "code\__HELPERS\debugger.dm" -#include "code\__HELPERS\experimental.dm" #include "code\__HELPERS\files.dm" #include "code\__HELPERS\filters.dm" #include "code\__HELPERS\game.dm" @@ -1361,9 +1360,11 @@ #include "code\modules\antagonists\_common\antag_spawner.dm" #include "code\modules\antagonists\_common\antag_team.dm" #include "code\modules\antagonists\changeling\changeling_power.dm" +#include "code\modules\antagonists\changeling\changeling_power_category.dm" #include "code\modules\antagonists\changeling\datum_changeling.dm" #include "code\modules\antagonists\changeling\evolution_menu.dm" #include "code\modules\antagonists\changeling\powers\absorb.dm" +#include "code\modules\antagonists\changeling\powers\apex_predator.dm" #include "code\modules\antagonists\changeling\powers\augmented_eyesight.dm" #include "code\modules\antagonists\changeling\powers\become_headslug.dm" #include "code\modules\antagonists\changeling\powers\biodegrade.dm" @@ -1546,7 +1547,6 @@ #include "code\modules\client\preference\link_processing.dm" #include "code\modules\client\preference\preferences.dm" #include "code\modules\client\preference\preferences_mysql.dm" -#include "code\modules\client\preference\preferences_spawnpoints.dm" #include "code\modules\client\preference\preferences_toggles.dm" #include "code\modules\client\preference\preferences_volume_mixer.dm" #include "code\modules\client\preference\loadout\gear_tweaks.dm" @@ -1751,6 +1751,7 @@ #include "code\modules\food_and_drinks\food\foods\candy.dm" #include "code\modules\food_and_drinks\food\foods\desserts.dm" #include "code\modules\food_and_drinks\food\foods\ethnic.dm" +#include "code\modules\food_and_drinks\food\foods\frozen.dm" #include "code\modules\food_and_drinks\food\foods\ingredients.dm" #include "code\modules\food_and_drinks\food\foods\junkfood.dm" #include "code\modules\food_and_drinks\food\foods\meat.dm" @@ -2018,6 +2019,16 @@ #include "code\modules\mob\living\login.dm" #include "code\modules\mob\living\stat_states.dm" #include "code\modules\mob\living\taste.dm" +#include "code\modules\mob\living\brain\brain_death.dm" +#include "code\modules\mob\living\brain\brain_emote.dm" +#include "code\modules\mob\living\brain\brain_life.dm" +#include "code\modules\mob\living\brain\brain_login.dm" +#include "code\modules\mob\living\brain\brain_say.dm" +#include "code\modules\mob\living\brain\brain_update_status.dm" +#include "code\modules\mob\living\brain\living_brain.dm" +#include "code\modules\mob\living\brain\MMI.dm" +#include "code\modules\mob\living\brain\MMI_radio.dm" +#include "code\modules\mob\living\brain\robotic_brain.dm" #include "code\modules\mob\living\carbon\_defines.dm" #include "code\modules\mob\living\carbon\carbon.dm" #include "code\modules\mob\living\carbon\carbon_death.dm" @@ -2056,16 +2067,6 @@ #include "code\modules\mob\living\carbon\alien\larva\larva_update_icons.dm" #include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm" #include "code\modules\mob\living\carbon\alien\special\facehugger.dm" -#include "code\modules\mob\living\carbon\brain\brain_death.dm" -#include "code\modules\mob\living\carbon\brain\brain_emote.dm" -#include "code\modules\mob\living\carbon\brain\brain_life.dm" -#include "code\modules\mob\living\carbon\brain\brain_login.dm" -#include "code\modules\mob\living\carbon\brain\brain_say.dm" -#include "code\modules\mob\living\carbon\brain\brain_update_status.dm" -#include "code\modules\mob\living\carbon\brain\carbon_brain.dm" -#include "code\modules\mob\living\carbon\brain\MMI.dm" -#include "code\modules\mob\living\carbon\brain\MMI_radio.dm" -#include "code\modules\mob\living\carbon\brain\robotic_brain.dm" #include "code\modules\mob\living\carbon\human\appearance.dm" #include "code\modules\mob\living\carbon\human\body_accessories.dm" #include "code\modules\mob\living\carbon\human\human_damage.dm" diff --git a/rust_g.dll b/rust_g.dll index a3807b502507..c77db3ec9c65 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/sound/effects/clingscream.ogg b/sound/effects/clingscream.ogg new file mode 100644 index 000000000000..6215a93f2520 Binary files /dev/null and b/sound/effects/clingscream.ogg differ diff --git a/sound/weapons/armblade.ogg b/sound/weapons/armblade.ogg new file mode 100644 index 000000000000..39a3248d2a9f Binary files /dev/null and b/sound/weapons/armblade.ogg differ diff --git a/strings/tips.txt b/strings/tips.txt index 93aa54aa7596..1780b71740ce 100644 --- a/strings/tips.txt +++ b/strings/tips.txt @@ -1,195 +1,208 @@ -Space map levels' connections are randomized between rounds, but are otherwise kept consistent in the same round. -You can catch thrown items by toggling on your throw mode with an empty hand active. -To crack the safe in the vault, use a stethoscope or thermal drill. -You can climb onto a table by dragging yourself onto one. This takes some time. Clicking on a table that someone else is climbing onto will knock them down. -You can drag other players onto yourself to open the strip menu, letting you remove their equipment or force them to wear something. Note that exosuits or helmets will block your access to the clothing beneath them, and that certain items take longer to strip or put on than others. -Clicking on a windoor rather than bumping into it will keep it open. You can click it again to close it. -You can spray a fire extinguisher, throw items, or fire a gun while floating through space to change your direction. Simply fire in the opposite direction of where you want to go. -You can change the control scheme by pressing tab. One uses WASD for movement, while the other uses the arrow keys. Keep in mind that hotkeys are also changed with this. -Firesuits and winter coats offer mild protection from the cold, allowing you to spend longer periods of time near breaches and space than if wearing nothing at all. -Glass shards can be welded to make glass, and metal rods can be welded to make metal. Ores can be welded too, but this takes a lot of fuel. -If you need to drag multiple people either to safety or to space, bring a locker over and stuff them all in before hauling them off. -You can grab someone by clicking on them with the grab intent, then upgrade the grab by clicking on the grab itself. An aggressive grab will allow you to place them on a table by clicking on it, or throw them by toggling on throwing. -Holding alt and left clicking a tile will allow you to see its contents in the top right window panel, which is much faster than right clicking. -The resist button will allow you to resist out of handcuffs, being buckled to a chair or bed, out of locked lockers and more. Whenever you're stuck, try resisting! -You can move an item out of the way by dragging it and then clicking on an adjacent tile with an empty hand. -You can recolor certain items like jumpsuits and gloves in washing machines by also throwing in a crayon. -Maintenance is full of equipment that is randomized every round. Look around and see if anything is worth using. -Some roles cannot be antagonists by default, but antag selection is decided first. For instance, you can set Security Officer to High without affecting your chances of becoming an antag -- the game will just select a different role. -There are many places around the station to hide contraband. A few for starters: linen boxes, toilet cisterns, body bags. Experiment to find more! -When in doubt about technical issues, clear your cache (byond launcher > cogwheel > preferences > game prefs), update your BYOND, and relog. -Most things have special interactions with your middle mouse button, alt, shift, and control click. Experiment! -If you find yourself in a fistfight with another player, running away and calling for help is a perfectly viable option. -Different weapons have different strengths. Some weapons, such as spears, floor tiles, and throwing stars, deal more damage when thrown compared to when attacked normally. -Clicking on a tile on harm intent with a glass of water can make a slippery tile, allowing you to slow down your pursuers in a pinch. -When dealing with security, you can often get your sentence negated entirely through cooperation and deception. -We were all new once, be patient and guide new players in the right direction. -On most clothing items that go in the exosuit slot, you can put certain small items into your suit storage, such as a spraycan, your emergency oxygen tank, or a flashlight. -Most job-related exosuit clothing can fit job-related items into it. For example, the atmospheric technician's hardsuit/winter coat can hold an RPD, and labcoats can hold most medicine. -If there's something you need from another department, try asking! This game isn't singleplayer and you'd be surprised what you can get accomplished together! -You'll quickly lose your interest in the game if you play to win and kill. If you find yourself doing this, take a step back and talk to people - it's a much better experience! -Don't be afraid to ask for help, whether from your peers or from mentors. -As the Captain, you are one of the highest priority targets on the station. Everything from nuclear operatives to traitors that need to rob you of your unique lasergun or your life are things to worry about. -As the Captain, always take the nuclear disk and pinpointer with you every shift. It's a good idea to give one of these to another head or Blueshield you can trust with keeping it safe. -As the Captain, you have absolute access and control over the station, but this does not mean that being a horrible person won't result in mutiny and a ban. -As the Chief Medical Officer, your hypospray is like a refillable instant injection syringe that can hold 30 units and the unlike standard hypospray, yours is able to be filled with harmful reagents and can inject someone without telling anyone what you exactly injected the person with. -As the Chief Medical Officer, coordinate and communicate with your doctors, chemists, and geneticists during a nuclear emergency, blob infestation, or some other crisis to keep people alive and fighting. -As a Medical Doctor, you can surgically implant or extract things from people's chests. This can range from putting in a bomb to pulling out an alien larva. -As a Medical Doctor, you must target the correct limb and be on help intent when trying to perform surgery on someone. -As a Medical Doctor, corpses with the "...and their soul has departed" description no longer have a ghost attached to them and aren't revivable or clonable right now, but they might be clonable later. -As a Medical Doctor, remember to have either a shower or fire extinguisher at the ready when cloning plasmamen along with their envirosuit. -As a Chemist, there are dozens of chemicals that can heal, and even more that can cause harm. Experiment! -As a Chemist, some chemicals can only be synthesized by heating up the contents with a chemical heater or manually with lighters and similar tools. -As a Chemist, you will be expected to supply crew with certain chemicals. For example, cryoxadone and mannitol for the cryo tubes, unstable mutagen and saltpetre for botany as well as healing pills and patches for the front desk. -As a Chemist, Water and Potassium mixed together will create an explosion, with power scaling by amount used. Don't do it. -As a Geneticist, becoming a hulk makes you capable of dealing high melee damage, stunlocking people, and punching through walls. However, you can't fire guns and will lose your hulk status if you go into critical condition. Being hulk also does not allow you to break any server rules and go berserk as non-antagonist. -As the Virologist, your viruses can range from healing powers so great that you can heal out of critical status, to diseases so dangerous they can kill the entire crew with airborne spontaneous combustion. Experiment! -As the Research Director, you can take AIs out of their cores by loading them into an intelliCard, which lets you see their laws, even ion/syndicate ones. It can then be placed into an AI system integrity restorer computer to revive and/or repair them. -As the Research Director, you can lock down cyborgs instead of blowing them up. Then you can have their laws reset or if that doesn't work, safely dismantled. -As the Research Director, you can spy on and even forge PDA communications with the message monitor console! The key is in your office. -As a Scientist, you can maximize the number of uses you get out of a slime by feeding it slime steroid, created from purple slimes, while alive. You can then apply extract enhancer, created from cerulean slimes, on each extract. -As a Scientist, you can disable anomalies by scanning them with an analyzer, then send a signal on the frequency it gives you with a remote signaling device. This will leave behind an anomaly core, which can be used to construct nifty gadgets! -As a Scientist, researchable stock parts can seriously improve the efficiency and speed of machines around the station. In some cases, it can even unlock new functions. -As a Roboticist, keep an ear out for anomaly announcements. If you get your hands on a bluespace anomaly core, you can build a Phazon mech! -As a Roboticist, you can repair your cyborgs with a welding tool. If they have taken burn damage, you can remove their battery, expose the wiring with a screwdriver and replace their wires with a cable coil. -As a Roboticist, you can reset a cyborg's module by cutting and mending the reset wire with a wire cutter or using a cyborg reset module. -As a Roboticist, you can augment people with cyborg limbs. Augmented limbs can easily be repaired with cables and welders. -As the AI, you can click on people's names to look at them. This only works if there are cameras that can see them, they aren't wearing agent IDs, or aren't using digital camouflage as changelings. -As the AI, you can quickly open and close doors by holding shift while clicking them, bolt them when holding ctrl, and even shock them while holding alt. -As the AI, you can take pictures with your camera and upload them to newscasters. -As a Cyborg, choose your module carefully, as only a cyborg reset module will let you repick it. -As a Cyborg, you are immune to most forms of stunning, and excel at almost everything far better than humans. However, flashes can easily stunlock you and you cannot do any precision work as you lack hands. -As a Cyborg, you are impervious to fires and heat. If you are rogue, you can release plasma fires everywhere and walk through them without a care in the world! -As a Cyborg, you are extremely vulnerable to EMPs as EMPs both stun you and damage you. The ion rifle in the armory or a traitor with an EMP kit can kill you in seconds. -As an Engineering Cyborg, you can attach air alarm/fire alarm/APC frames to walls by using your magnetic gripper. -As a Medical Cyborg, the Hydrocodone in your Cyborg you can perform most surgery procedures even in the field with the help of your cyborg hypospray's Hydrocodone and roller bed rack module. -As a Janitor Cyborg, you are the bane of all slaughter demons. Cleaning up blood stains will severely hinder them. -As the Chief Engineer, you can rename areas or create entirely new ones using your station blueprints. -As the Chief Engineer, your hardsuit is significantly better than everybody else's. It has the best features of both engineering and atmospherics hardsuits, boasting nigh-invulnerability to radiation and all atmospheric conditions. It even has a built in jet-pack! -As the Chief Engineer, using the power monitor consoles gives you a good overview of all the station APC units and their status. You can also use your PDA to remotely view this by connecting to a monitor console. -As an Engineer, you can electrify grilles and fences by placing wire "nodes" beneath them: the big seemingly unconnected bulges from a half completed wiring job. The wire will be need to be connected to an active power source in order to function. -As an Engineer, return to Engineering once in a while to check on the engines and SMES cells. It's always a good idea to make sure containment isn't compromised or if the SM is still properly being cooled. -As an Engineer, you can power the station solely with the solar arrays. They will provide just enough electricity to power the station, however their output is still much worse compared to the true engine. -As an Engineer, you can cool a supermatter shard by spraying it with a fire extinguisher. Only for the brave! -As an Engineer, you can repair windows by using a welding tool on them while on help intent. -As an Engineer, you can lock APCs, fire alarms, emitters, and radiation collectors using your ID card to prevent others from disabling them. -As an Engineer, don't underestimate the humble P.A.C.M.A.N. generators. With upgraded parts, a couple units working in tandem are sufficient to take over for an exploded engine or shattered solars. -As an Engineer, you can pry open secure storage blast doors by turning off the secure storage APC's enviroment power channel. -As an Atmospheric Technician, look into replacing your gas pumps with volumetric gas pumps, as those move air in flat numerical amounts, rather than percentages which leave trace gases. -As an Atmospheric Technician, you are better suited to fighting fires than anyone else. As such, you have access to better firesuits, backpack firefighter tanks, and a completely heat and fire proof hardsuit. -As an Atmospheric Technician, your backpack firefighter tank can launch cryofrost. This resin will extinguish fires and very quickly; it's ideal for plasma fires! -As an Atmospheric Technician, your ATMOS holofan projector blocks gases while allowing objects to pass through. With it, you can quickly contain gas spills, fires and hull breaches. Or, use it to seal a plasmaman cloning room. -As the Head of Security, you are expected to coordinate your security force to handle any threat that comes to the station. Sometimes it means making use of the armory to handle a blob, sometimes it means being ruthless during a vampire or cult incursion. -As the Head of Security, don't let the power go to your head. You may have high access, great equipment, and a miniature army at your side, but being a terrible person without a good reason is grounds for banning. -As the Warden, your duty is to be the watchdog of the brig and handler of prisoners when little is happening, and to hand out equipment and weapons to the security officers when a crisis strikes. -As the Warden, keep a close eye on the armory at all times, as it is a favored strike point of nuclear operatives and cocky traitors. -As the Warden, if a prisoner's crimes are heinous enough you can put them in permabrig or the gulag. Make sure to check on them once in a while! -As the Warden, you can implant criminals you suspect might re-offend with devices that will track their location and allow you to remotely inject them with disabling chemicals. -As a Security Officer, communicate and coordinate with your fellow officers using the security channel (:s) to avoid confusion. -As a Security Officer, your sechuds or HUDsunglasses let you see crewmates' job assignments, their criminal status, and whether they have a mindshield or not. A flashing green border around their job icon means they are mindshielded. -As a Security Officer, mindshield implants can only prevent someone from being turned into a cultist. It will not de-cult them if they have already been converted. -As a Security Officer, examining someone while wearing sechuds or HUDsunglasses will let you set their arrest level, which will cause Beepsky and other security bots to chase after them. -As the Detective, keep in mind that people leave fingerprints everywhere and on everything. With the exception of white latex, gloves will hide them. All is not lost, however, as gloves leave fibers specific to their kind such as black or nitrile, pointing to a general department. -As the Detective, you can use your forensics scanner from a distance. -As the Detective, your energy revolver has a tracking mode. Shoot a fleeing suspect with it and use a crew pinpointer to track their position! -As the IAA, try to negotiate with the Warden if sentences seem too high for the crime. -As the IAA, you can try to convince the Captain and Head of Security to hold trials for prisoners in the courtroom. -As the Head of Personnel, you are not higher ranking than other heads of staff, even though you are expected to take the Captain's place first should he go missing. If the situation seems too rough for you, consider allowing another head to become temporary Captain. -As the Head of Personnel, you are just as large a target as the Captain because of the potential power your ID and computer can hand out. -As the Mime, your invisible wall power blocks people as well as projectiles. You can use it in a pinch to delay your pursuer. -As the Mime, your oath of silence is your source of power. Breaking it robs you of your powers and of your honor. -As the Clown, if you lose your banana peel, you can still slip people with your PDA! Honk! -As the Clown, your Grail is the mineral bananium, which can be given to the Roboticist to build you a fun and robust mech beloved by everyone. -As the Clown, you can use your stamp on a sheet of cardboard as the first step of making a honkbot. Fun for the whole crew! -As the Clown, spice your gimmicks up! Nobody likes a one-trick pony. -As the Chaplain, your null rod has anti magic functions: it can destroy cultist runes by hitting them, and it makes you immune to cult magic. -As the Chaplain, your bible is also a container that can store small items. -As the Chaplain, you are much more likely to get a response by praying to the gods than most people. To boost your chances, perform blessings, make altars with colorful crayon runes, lit candles, and wire art. -As a Botanist, you can hack the MegaSeed Vendor to get access to more exotic seeds. These seeds can alternatively be ordered from cargo. -As a Botanist, you can mutate the plants growing in your hydroponics trays with unstable mutagen or, as an alternative, crude radioactives from chemistry to get special variations. -As a Botanist, you should look into increasing the potency of your plants. This increases the size, amount of chemicals, points gained from grinding them in the biogenerator, and lets people know you are a proficient botanist. -As a Botanist, you can combine production trait chemicals just like a Chemist. Chlorine and plasma (blumpkin) + radium (glowshrooms) equals unstable mutagen! -As the Chef, you can create a very wide variety of food with the crafting menu. You can find it by looking for the hammer icon near your intents. -As the Chef, you can rename your custom made food with a pen. -As the Chef, if you are low on ingredients, consider making something that has several servings to last longer among the crew. -As the Bartender, you can use a circular saw on your shotgun to make it easier to store. -As a Janitor, if someone steals your janicart, you can instead use your space cleaner spray, grenades, water sprayer or order another from Cargo. -As a Janitor, mousetraps can be used to create bombs or booby-trap containers. -As the Librarian, be sure to keep the shelves stocked and the library clean for crew. -As a Cargo Technician, you can hack MULEbots to make them faster, run over people in their way, and even let you ride them! -As a Cargo Technician, you can order contraband items from the supply shuttle console by de-constructing it and using a multitool on the circuit board, the re-assembling it. -As a Cargo Technician, you can earn more cargo points by shipping back crates from maintenance, plasma sheets, rare seeds from hydroponics, technology disks from R&D, and more! -As a Shaft Miner, the north side of Lavaland has a lot more rare minerals than on the south, but is a lot more dangerous. -As a Shaft Miner, always have a GPS on you, so a fellow miner or cyborg can come to save you if you die. -As a Traitor, the cryptographic sequencer (emag) can not only open doors, but also lockers, crates, APCs and more. It can hack cyborgs, and even cause bots to go berserk. Use it on the right machines, and you can even order more traitor gear or contact the Syndicate. Experiment! -As a Traitor, subverting the AI to serve you can make it an extremely powerful ally. However, be careful of the wording in the laws you give it, as it may use your poorly written laws against you! -As a Traitor, the Captain and the Head of Security are two of the most difficult to kill targets on the station. If either one is your target, plan carefully. -As a Traitor, you can manufacture and recycle revolver bullets at a hacked autolathe, making the revolver an extremely powerful tool. -As a Traitor, you may sometimes be assigned to hunt other traitors, and in turn be hunted by others. -As a Traitor, the syndicate encryption key is very useful for coordinating plans with your fellow traitors -- or, of course, betraying them. -As a Traitor, plasma can be injected into many things to sabotage them. Power cells, light bulbs, cigars and e-cigs will all explode when used. -As a Traitor, if you can find another Traitor and pool your TC you can buy a mega surplus crate, which costs 200 TC but contains a lot of random syndicate gear. -As a Traitor, you can eject someone from cloning early by disabling power in genetics. Note that they will suffer more genetic damage and may lose vital organs from this. -As a Nuclear Operative, communication is key! Use ; to speak to your fellow operatives and coordinate an attack plan. -As a Nuclear Operative, you should look into purchasing a syndicate cyborg, as they can provide heavy fire support, full access, are immune to conventional stuns, and can easily take down the AI. -As a Nuclear Operative, stick together! While your equipment is robust, your fellow operatives are much better at saving your life: they can drag you away from danger while stunned and provide cover fire. -As a Nuclear Operative, you might end up in a situation where the AI has bolted you into a room. Having some spare C4 in your pocket can save your life. -As a Monkey, you can still wear a few human items, such as backpacks, gas masks, and hats, and still have two free hands. -As the Malfunctioning AI, you can shunt to an APC if the situation gets bad. -As the Malfunctioning AI, you should either order your cyborgs to dismantle the robotics console or blow it up yourself in order to protect them. -As an Alien, your melee prowess is unmatched, but your ranged abilities are sorely lacking. Make use of corners to force a melee confrontation! -As an Alien, you take double damage from all burn attacks, such as lasers, welding tools, and fires. Furthermore, fire can destroy your resin and eggs. Expose areas to space to starve away any flamethrower fires before they can do damage! -As an Alien, resin floors not only regenerate your plasma supply, but also passively heal you. Fight on resin floors to gain a home turf advantage! -As an Alien, the facehugger is by far your most powerful weapon because of its ability to instantly win a fight. Remember however that certain helmets, such as biohoods or space helmets will completely block facehugger attacks. -As an Alien, you are unable to pick up or use any human items or machinery. Instead, you should focus on sabotaging APCs, computers, cameras and either stowing, spacing, or melting any weapons you find. -As the Blob, keep your core some distance from space, as it is both expensive to expand onto space, easy to be attacked from, and does not count towards your win condition. Emitter platforms built in space are especially dangerous. -As the Blob, you can randomly repick your reagent type if the crew has adapted and protected themselves against your current one. -As the Blob, you fight a war of attrition: Take out medbay and fight in chokepoints to prevent continued assaults and coordinated burst damage attacks! -As the Blob, don't neglect the creation of factories. These create spores that carry your reagent and can chase crewmembers far further than you. Spores can also be rallied to swarm the crew and cause panic, and can even take over corpses to create much more dangerous blob zombies! -As the Blob, you can expand by clicking, create strong blobs with ctrl-click, rally spores with middle-click, and remove blobs with alt-click. You do not need to have your camera over the tile to do this. -As the Blob, removing strong blobs, resource nodes, factories, and nodes will give you some resources back as refund. -As the Blob, talking will send a message to all other overminds, allowing you to direct attacks and coordinate. -As a Changeling, the Extract DNA sting counts for your genome absorb objective, but does not let you respec your powers. -As a Changeling, you can absorb someone by strangling them and using the Absorb verb; this gives you the ability to rechoose your powers, the DNA of whoever you absorbed, the memory of the absorbed, and some samples of things the absorbed said. -As a Cultist, do not cause too much chaos before your objective is completed. If the shuttle gets called too soon, you may not have enough time to win. -As a Cultist, your team starts off very weak, but if necessary can quickly convert everything they have into raw power. Make sure you have the numbers and equipment to support going loud, or the cult will fall flat on its face. -As a Cultist, the Blood Boil rune will deal massive amounts of burn damage to non-cultists and set them on fire. However, two cultists have to be standing at the rune for its duration. -You can deconvert Cultists by feeding them large amounts of holy water. -The Chaplain can bless any container with water by hitting it with their bible. Holy water has a myriad of uses against cults and large amounts of it are a great contributor to success against them. -As a Wizard, you can turn people to stone, then animate the resulting statue with a staff of animation to create an extremely powerful minion, for all of 5 minutes at least. -As a Wizard, the fireball spell performs very poorly at close range, as it can easily catch you in the blast. It is best used as a form of artillery down long hallways. -As a Wizard, summoning guns will give everyone anything from a floral somatoray to a pulse rifle. Use at your own risk! -As a Wizard, the staff of chaos can fire any type of bolts from the magical wands. This can range from bolts of instant death to healing or reviving someone. -As a Wizard, most spells become unusable if you are not wearing your robe, hat, and sandals. -As an Abductor, you can select where your victims will be sent on the ship control console. -As an Abductor Agent, the combat mode vest has much higher resistance to every kind of weapon, and your helmet prevents the AI from tracking you. -As an Abductor, the baton can cycle between four modes: stun, sleep, cuff and probe. -As a Revenant, the Chaplain is your worst enemy, as they can damage you massively with the null rod and make large swaths of the station impassable with holy water. -As a Revenant, your essence is also your health, so revealing yourself in front of humans to harvest the essence of the living is much safer if you've already stocked up on essences from poorly guarded corpses. -As a Revenant, your Defile ability removes holy water from tiles in a small radius, allowing you to reclaim the station from the chaplain if they've been covering the station in holy water. -As a Revenant, your Overload Lights ability will only shock humans with lights if the lights are still on after a brief delay. -As a Revenant, your Malfunction ability in general damages machinery and mechanical objects, possibly even emagging some objects. Experiment! -As a Revenant, space is your friend. Breaking windows to space can cause massive damage and mayhem. -As a Ghost, you can double click on just about anything to follow it. Or just warp around! -As a Security Officer, remember that correlation does not equal causation. Someone may have just been at the wrong place at the wrong time! -As a Security Officer, remember that you can attach a sec-lite to your disabler! -As a Terror Spider, leave wrapping of corpses to green spiders unless absolutely necessary. They need it to lay eggs! -As a Prince of Terror, you are powerful but usually on your own. Consider hit and run tactics to regenerate your health between engagements. -As a Brown Terror Spider, focus on smashing welded vents. You are weak in direct combat, but you can enable your comrades to go almost anywhere. -As a Terror Spider, protect the queen at all cost! -As a Terror Spider, don't forget you can move your nest if the crew is pressuring you too badly. -As a Terror Spider, try putting webs on white floor tiles, they are much harder to see there. -As a Terror Spider, sometimes quickly pulling an enemy into a web can ensure victory in melee combat. -You can swap floor tiles by holding a crowbar in one hand and a stack of tiles in the other. -When hacking doors, cutting and mending a "test light wire" will restore power to the door. -When crafting most items, you can either manually combine parts or use the crafting menu. -Suit storage units not only remove blood and dirt from clothing, but also radiation! -Sleeping in a bed can heal minor amounts of brute and burn damage. -The Experimentor has a chance to spawn hostile mobs. Be ready to run for your life when using it. -Space ruins can contain all kinds of interesting goodies, even a wand that can raise the dead! -Having a mindshield, or having an agent ID card will make officer Beepsky consider you less arrest-worthy. -You can make lasertag turrets, for the ultimate lasertag tournament. -Blob structures take half damage from brute damage. Use lasers. -You can hide paper in vents, but you have to use a screwdriver to open it first. -While the Standard Operating Procedures aren't fully rules, they are there for safety and professional reasons. -Killing the Wizard usually ends the round, unless they are a lich or Space Wizard Federation is RAGING. +Соединения уровней космоса рандомизируются в каждом новом раунде. +Вы можете ловить брошенные предметы, включив режим броска (R) при активной пустой руке. +Чтобы взломать сейф в хранилище, используйте стетоскоп или термобур. +Вы можете забраться на стол, перетащив себя на него. Это занимает некоторое время. Если щелкнуть по столу, на который забрался кто-то другой, то он упадет. +Вы можете перетащить игрока на себя, чтобы открыть меню экипировки, позволяющее снять их снаряжение или заставить их надеть что-то. Обратите внимание, что экзокостюмы или шлемы будут блокировать доступ к одежде под ними, и что некоторые предметы снимаются или надеваются дольше, чем другие. +Если щелкнуть по стеклянной двери, а не 'натолкнуться' на нее, то она останется открытой. Вы можете щелкнуть по ней еще раз, чтобы закрыть ее. +Вы можете распылять огнетушитель, бросать предметы или стрелять из пистолета, паря в пространстве, чтобы изменить направление движения. Просто стреляйте в направлении, противоположном тому, куда вы хотите попасть. +Вы можете изменить схему управления, нажав клавишу Tab. В одном случае для передвижения используется WASD, а в другом - клавиши со стрелками. Имейте в виду, что горячие клавиши также изменяются при этом. +Огнеупорные костюмы и зимние куртки обеспечивают легкую защиту от холода, позволяя вам проводить больше времени вблизи брешей и в космосе, чем если бы вы вообще ничего не носили. +Осколки стекла можно сварить, чтобы получить стекло, а металлические прутья - чтобы получить металл. Руды тоже можно сваривать, но для этого требуется много топлива. +Если вам нужно перетащить несколько человек в безопасное место, либо в космос, просто принесите шкафчик и засуньте их всех туда, а затем тащите. +Вы можете схватить кого-то, нажав на него в 'Grab' интенте (жёлтый), а затем усилить захват, нажав на кнопку 'Grab' в панели рук. Агрессивный захват позволит вам положить его на стол, нажав на стол, или бросить его, переключившись в режим броска (R). +Удерживая Alt и щелкая левой кнопкой мыши по тайлу, вы сможете увидеть его содержимое в правой верхней панели, что гораздо быстрее, чем щелчок правой кнопкой мыши. +Кнопка Resist позволяет предпринимать попытку освободиться от наручников, пристегивании к стулу или кровати, освобождаться из запертых шкафчиков и т.д. Как бы вы не застряли, у вас есть возможность сопротивляться! +Вы можете убрать предмет с дороги, нажав Ctrl + ЛКМ по нему, а затем щелкнув на соседнем тайле свободной рукой. +Некоторые вещи, например комбинезоны и перчатки, можно перекрасить в стиральных машинах, бросив туда мелок. +В технических тоннелях полно вещей, которые рандомизируются каждый раунд. Осмотритесь, может найдете что-нибудь полезное. +Некоторые роли не могут быть антагонистами по умолчанию, но выбор антага решается в первую очередь. Например, вы можете установить значение "Security Officer" на "High", и это не повлияет на ваши шансы стать антагом - игра просто выберет вам другую роль. +На станции есть много мест, где можно спрятать контрабанду. Например: ящики для белья, туалетные бачки, мешки для трупов. Экспериментируйте и найдете больше! +Если у вас возникли технические проблемы, очистите кэш (byond launcher > cogwheel > preferences > game prefs), обновите BYOND и зайдите заново. +Большинство вещей имеют особые виды взаимодействия со средней кнопкой мыши, Alt, Shift и Ctrl. Экспериментируйте! +Если вы окажетесь в драке с другим игроком, убежать и позвать на помощь - вполне приемлемый вариант. +Различные виды оружия имеют разную силу. Некоторые виды оружия, такие как копья, напольные плитки и сюрикены, наносят больше урона при броске по сравнению с обычной атакой. +Нажав на тайл со стаканом воды, можно сделать плитку скользкой, что позволит вам замедлить преследователей в случае необходимости. +При работе с службой безопасности часто можно добиться полной отмены приговора благодаря сотрудничеству и обману. +Все мы когда-то были новичками, будьте терпеливы и направляйте новых игроков в верном направлении. +В большинстве видов одежды, которые помещаются в слот костюма, вы можете положить в карманы некоторые мелкие предметы, такие как баллончик, аварийный кислородный баллон или фонарик. +В большинстве случаев в карманы одежды можно поместить предметы, связанные с работой. Например, в зимнее пальто можно поместить RPD, а в лабораторный халат - большинство медикаментов. +Если вам что-то нужно от другого отдела, попробуйте попросить! Эта игра не одиночная, и вы удивитесь, чего можно добиться вместе! +Вы быстро потеряете интерес к игре, если будете играть ради победы и убийств. Если вы обнаружили, что делаете это, сделайте шаг назад и поговорите с людьми - это гораздо лучший опыт! +Не бойтесь просить о помощи, как у своих коллег, так и у менторов. +Будучи капитаном, вы являетесь одной из самых приоритетных целей на станции. Беспокоиться стоит обо всем - от ядерных оперативников до предателей, которые хотят лишить вас уникального лазерного оружия, или жизни. +Будучи капитаном, всегда берите с собой диск аутентификации ядерной боеголовки и пинпоинтер на каждой смене. Неплохо было бы передать один из них другому главе или Блюшилду, которому вы можете доверить его сохранность. +Будучи капитаном, вы имеете абсолютный доступ и контроль над станцией, но это не означает, что если вы будете ужасным человеком, то это не приведет к мятежу и бану. +Будучи главным врачом, вы знаете, что ваш гипоспрей похож на перезаправляемый шприц для мгновенных инъекций, вмещающий 30 единиц, и в отличие от стандартного гипоспрея, ваш можно наполнять вредными реагентами и делать инъекции, не сообщая никому, что именно вы ввели человеку. +Будучи главным врачом, координируйте и направляйте врачей, химиков и генетиков во время чрезвычайной опасности, нашествия блобов или любого другого кризиса, чтобы сохранить жизнь и боеспособность людей. +Будучи медиком, вы можете хирургическим путем вживлять или извлекать предметы из груди людей. Это может варьироваться от установки бомбы до извлечения инопланетной личинки. +Будучи медиком, вы должны нацелиться на нужную конечность в 'Help' интенте (зелёный), когда пытаетесь сделать кому-то операцию. +Будучи медиком, вы знаете, что трупы с описанием "...and their soul has departed" больше не имеют прикрепленного игрока и не могут быть оживлены или клонированы сейчас, но могут быть клонированы позже, если игрок вернется в тело. +Будучи медиком, вы знаете, что лечение плазмаменов не является невозможным! Сальбутамол не дает им задохнуться, а душ не дает им сгореть заживо. Вы даже можете делать им операции, проводя процедуру на раскладываемой каталке под душем. +Будучи химиком, вы знаете, что существуют десятки химических веществ, которые могут исцелять, и еще больше тех, которые могут причинить вред. Экспериментируйте! +Будучи химиком, вы знаете, что некоторые химические вещества могут быть синтезированы только путем нагревания содержимого с помощью химического нагревателя или вручную с помощью зажигалок и подобных инструментов. +Будучи химиком, вы должны будете снабжать экипаж определенными химикатами. Например, криоксадоном и маннитолом для крио, нестабильным мутагеном и селитрой для ботаники, медикаментами и пластырями для медиков. +Будучи химиком, вы знаете, что вода и калий (потассиум), смешанные вместе, создают взрыв, мощность которого зависит от количества использованного вещества. Не делайте этого. +Будучи генетиком, став халком, вы сможете наносить большой урон в ближнем бою, оглушать людей и пробивать стены. Однако вы не можете стрелять из оружия и теряете силу халка, если впадаете в критическое состояние. Статус халка также не позволяет вам нарушать правила сервера и впадать в безумие, как неантагонист. +Будучи вирусологом, вы знаете, что ваши вирусы могут варьироваться от целительных способностей, настолько сильных, что вы можете исцелять из критического состояния, до болезней, настолько опасных, что могут убить весь экипаж самовозгоранием в воздухе. Экспериментируйте! +Будучи директором отдела исследований, вы можете вывести ИИ из ядер, загрузив его в карту intelliCard, которая позволяет вам видеть их законы, даже ионные и синдикатские. Затем их можно поместить в компьютер восстановления целостности систем ИИ, чтобы оживить и/или починить его. +Будучи директором отдела исследований, вы можете блокировать киборгов вместо того, чтобы взрывать их. Затем вы можете переустановить их законы или, если это не сработает, безопасно демонтировать. +Будучи директором отдела исследований, вы можете шпионить и даже подделывать сообщения ПДА с помощью консоли монитора сообщений! Ключ находится в вашем кабинете. +Будучи ученым, вы можете максимизировать количество использований слаймов, если будете кормить слаймов стероидами, созданными из фиолетовых слаймов, пока они живы. Затем вы можете применить усилитель экстракта, созданный из лазурных слаймов, к каждому экстракту. +Будучи ученым, вы можете отключать аномалии, просканировав их анализатором, а затем послать сигнал на частоту, которую он выдает, с помощью дистанционного сигнального устройства. После этого останется ядро аномалии, которое можно использовать для создания интересных гаджетов! +Будучи ученым, исследуемые запасные части могут серьезно повысить эффективность и скорость работы машин на станции. В некоторых случаях они могут даже открыть новые функции. +Будучи робототехником, следите за объявлениями об аномалиях. Если вам в руки попадет блюспейс ядро аномалии, вы сможете построить Фазона! +Будучи робототехником, вы можете ремонтировать своих киборгов с помощью сварки. Если они получили повреждения от ожогов, вы можете извлечь батарею, обнажить проводку с помощью отвертки и заменить провода витком кабеля. +Будучи робототехником, вы можете сбросить модуль киборга, перерезав и починив провод сброса кусачками, или используя модуль сброса киборга. +Будучи робототехником, вы можете устанавливать конечности киборга. Аугментированные конечности можно легко отремонтировать с помощью кабелей и сварки. +Будучи ИИ, вы можете нажимать на имена людей, чтобы посмотреть на них. Это работает только в том случае, если есть камеры, которые могут их видеть, на них нет удостоверений агентов или они не используют камуфляж, как Генокрады. +Будучи ИИ, вы можете быстро открывать и закрывать двери, удерживая Shift при нажатии на них, болтировать их, удерживая Ctrl, и даже ударять их током, удерживая Alt. +Будучи ИИ, вы можете делать снимки своей камерой и загружать их в новости. +Будучи киборгом, тщательно выбирайте модуль, так как только модуль сброса киборга позволит вам его перевыбрать. +Будучи киборгом, вы невосприимчивы к большинству форм оглушения и почти во всем превосходите людей. Однако вспышки могут легко оглушить вас, и вы не можете выполнять некоторую работу, поскольку у вас нет рук. +Будучи киборгом, вы невосприимчивы к огню и жару. Если вы сбойный, вы можете выпускать плазменный огонь повсюду и проходить сквозь него, не заботясь ни о чем на свете! +Будучи киборгом, вы чрезвычайно уязвимы для ЭМИ, поскольку ЭМИ одновременно оглушает и повреждает вас. Ионная винтовка в оружейной, или предатель с набором ЭМИ могут убить вас за несколько секунд. +Будучи инженерным киборгом, вы можете прикреплять корпус Air alarm/Fire alarm и APC к стенам с помощью магнитного манипулятора. +Будучи медицинским киборгом, вы можете частично проводить операции, поскольку не можете заменять органы, но вы не можете провалить ни один этап операции. +Будучи киборгом-уборщиком, вы знаете, что вы - зло всех демонов резни. Очищая пятна крови, вы сильно нагадите им. +Будучи главным инженером, вы можете переименовывать зоны или создавать совершенно новые, используя чертежи станции. +Будучи главным инженером, вы знаете, что ваш МОДсьют значительно лучше, чем у всех остальных. Он обладает лучшими характеристиками инженерного и атмосферного, и может похвастаться неуязвимостью к радиации и любым атмосферным условиям. +Будучи главным инженером, вы знаете, что консоль управления потоками энергии в вашем офисе покажет вам информацию о статусах APC и позволит управлять ими дистанционно. Вы так же можете использовать свой ПДА для этих целей. +Будучи главным инженером, вы можете электрифицировать решетку, разместив под ней "узел" провода: большие, кажущиеся неподключенными выпуклостями от наполовину завершенной проводки. Для работы провод должен быть подключен к активному источнику энергии. +Будучи инженером, время от времени возвращайтесь в инженерный отсек, чтобы проверить работу двигателя и ячеек SMES. Всегда полезно убедиться, что защитная оболочка не нарушена. +Будучи инженером, вы можете питать станцию исключительно с помощью солнечных батарей. Они дадут достаточно электроэнергии для питания станции, однако их производительность все равно намного хуже, чем у настоящего двигателя. +Будучи инженером, вы можете охладить осколок суперматерии, распылив его из огнетушителя. Только для смелых! +Будучи инженером, вы можете ремонтировать окна с помощью сварки, находясь в 'Help' интенте (зелёный). +Будучи инженером, вы можете заблокировать APC, Fire Alarm, эммитеры и коллекторы радиации с помощью своей карты, чтобы другие не смогли вывести их из строя. +Будучи инженером, не стоит недооценивать скромные генераторы P.A.C.M.A.N. При наличии модернизированных деталей, пары работающих в тандеме устройств достаточно, чтобы заменить взорвавшийся двигатель или разбитые соляры. +Будучи инженером, вы можете открывать защищенные двери хранилища, отключив канал питания APC. +Будучи инженером, не забывайте чинить повреждённую проводку в технических тоннелях, это уменьшит вероятность того, что кто-то на них наступит и получит бодрящий разряд. +Будучи атмосферным техником, рассмотрите возможность замены газовых насосов на объемные газовые насосы, так как они перемещают воздух в плоских численных количествах, а не в процентах, которые оставляют следы газов. +Будучи атмосферным техником, вы лучше других приспособлены к тушению пожаров. Поэтому у вас есть доступ к лучшим пожарным костюмам, ранцевым пожарным бакам и полностью термо-огнестойкому МОДсьюту. +Будучи атмосферным техником, вы знаете, что ваш ранцевый пожарный бак может запускать криосмолу. Эта смола тушит пожары, причем очень быстро; она идеально подходит для борьбы с возгоранием плазмы! +Будучи атмосферным техником, вы знаете, что ваш голопроектор ATMOS блокирует газы, пропуская через себя предметы. С его помощью вы можете быстро локализовать утечку газа, пожар или пробоину в корпусе. Или использовать его для герметизации комнаты для клонирования плазмамена. +Будучи главой службы безопасности, вы должны координировать действия своего отдела, чтобы справиться с любой угрозой, возникающей на станции. Иногда это означает использование оружейной для борьбы с блобом, иногда - безжалостность во время вторжения вампиров или культистов. +Будучи главой службы безопасности, не позволяйте власти захлестнуть вас с головой. Вы можете иметь высокий доступ, отличное снаряжение и миниатюрную армию на своей стороне, но быть ужасным человеком без уважительной причины - это основание для бана. +Будучи варденом, ваша обязанность - следить за порядком в бриге и заниматься заключенными и подозреваемыми, выдавать снаряжение и оружие сотрудникам службы безопасности, когда наступает кризис. +Будучи варденом, постоянно следите за оружейным складом, поскольку он является излюбленным местом нападения ядерных оперативников и дерзких предателей. +Будучи варденом, вы знаете, что если преступления заключенного достаточно ужасны, вы можете поместить его в пермабриг или ГУЛАГ. Обязательно проверяйте их время от времени! +Будучи варденом, вы можете вживить преступникам, которые, по вашим подозрениям, могут совершить повторное преступление, устройства, которые будут отслеживать их местоположение и позволят вам дистанционно вводить им обезвреживающие химические вещества. +Будучи варденом, вы можете заказывать любое обмундирование в оружейную, тем самым выбирая с чем будет ходить весь отдел в случае ЧП. Главное не забывайте, ваш бюджет ограничен! +Будучи офицером службы безопасности, общайтесь и координируйте свои действия с коллегами, используя канал СБ (:s), чтобы избежать путаницы. +Будучи офицером службы безопасности, вы знаете, что ваши sechud'ы и HUDsunglasses позволяют вам видеть должность членов экипажа, их криминальный статус, а также наличие или отсутствие у них импланта защиты разума. Мигающая зеленая рамка вокруг иконки задания означает, что они имплантированы щитом разума. +Будучи офицером службы безопасности, имплантаты щита разума могут только предотвратить превращение человека в культиста. Если человек уже был обращен в культ, то он не сможет его деконвертировать. +Будучи офицером службы безопасности, вы знаете, что осмотрев кого-либо в sechud'ах или HUDsunglasses, вы сможете установить уровень его ареста, что заставит Бипски и других охранных ботов преследовать его. +Будучи детективом, имейте в виду, что люди оставляют отпечатки пальцев везде и на всем. За исключением перчаток, которые их скрывают. Однако не все потеряно, поскольку перчатки оставляют волокна, характерные для их вида, например, черные или нитриловые, что указывает на общий отдел. +Будучи детективом, вы можете использовать свой сканер на расстоянии. +Будучи детективом, не забывайте, что ваш энергетический револьвер, имеет режим трекера. Выстрелив им в подозреваемого, вы можете отслеживать его позицию с помощью пинпоинтера! +Будучи агентом внутренних дел, попытайтесь договориться с Варденом, если приговор вам кажется слишком высоким для данного преступления. +Будучи агентом внутренних дел, вы можете попытаться убедить капитана и главой службы безопасности проводить судебные процессы над заключенными в зале суда. +Будучи главой персонала, вы не занимаете более высокое положение, чем другие начальники, хотя ожидается, что вы первым займете место капитана, если он пропадет без вести. Если ситуация кажется вам слишком тяжелой, подумайте о том, чтобы позволить другому начальнику временно стать капитаном. +Будучи главой персонала, вы являетесь такой же большой мишенью, как и капитан, из-за потенциальной власти, которую может раздать ваша ID карта и компьютер. +Будучи мимом, вы знаете, что ваша сила невидимой стены блокирует как людей, так и снаряды. Вы можете использовать ее, чтобы задержать преследователя. +Будучи мимом, вы знаете, что ваша клятва молчания - источник вашей силы. Нарушение клятвы лишает вас силы и чести. +Будучи клоуном, если вы потеряете банановую кожуру, вы все еще сможете поскользуть игрока на своем ПДА! Хонк! +Будучи клоуном, вы знаете, что ваш Грааль - минерал бананиум, который можно отдать Робототехнику, чтобы он построил вам веселый и прочный мех, любимый всеми. +Будучи клоуном, вы можете использовать свою печать на листе картона в качестве первого шага к созданию хонкбота. Веселье для всего экипажа! +Будучи клоуном, приправьте свои трюки! Никто не любит пони с одним фокусом. +Будучи священником, вы знаете, что ваш нулл род имеет антимагические функции: он может уничтожать руны культистов, ударяя по ним, и делает вас невосприимчивым к магии культа. +Будучи священником, вы знаете, что ваша библия также является контейнером, в котором можно хранить мелкие предметы. +Будучи священником, вы с гораздо большей вероятностью получите ответ, молясь богам, чем большинство людей. Чтобы повысить свои шансы, совершайте благословения, создавайте алтари с красочными рунами, зажженными свечами и искусством из проволоки. +Будучи ботаником, вы можете взломать MegaSeed Vendor, чтобы получить доступ к более экзотическим семенам. Эти семена можно также заказать в Карго. +Будучи ботаником, вы можете мутировать растения, растущие в ваших лотках гидропоники, с помощью нестабильного мутагена или, в качестве альтернативы, сырых радиоактивных веществ из химии, чтобы получить особые вариации. +Будучи ботаником, вам следует обратить внимание на повышение потенции ваших растений. Это увеличит их размер, количество химических веществ, очков, получаемых при измельчении в биогенераторе, и позволит людям узнать, что вы опытный ботаник. +Будучи ботаником, вы можете комбинировать химические вещества с производственными признаками так же, как и химик. Хлор и плазма (блампкин) + радий (светящиеся грибы) = нестабильный мутаген! +Будучи поваром, вы можете создавать самые разнообразные блюда с помощью меню крафта. Вы можете найти его, отыскав значок молотка рядом с вашими интентами. +Будучи поваром, вы можете переименовывать свои блюда, сделанные на заказ, с помощью ручки. +Будучи поваром, если у вас мало ингредиентов, подумайте о том, чтобы приготовить что-то на несколько порций, чтобы этого хватило надолго членам экипажа. +Будучи барменом, вы можете использовать циркулярную пилу на свой дробовик, чтобы обрезать его и облегчить хранение. +Будучи уборщиком, если кто-то украдет вашу тележку, вы можете вместо нее использовать спейсклинер для очистки пространства, гранаты, распылитель воды, или заказать еще один в Карго. +Будучи уборщиком, вы можете использовать мышеловки для создания бомб или контейнеров-ловушек. +Будучи библиотекарем, следите за тем, чтобы полки были заполнены, а библиотека была чистой. +Будучи карго техником, вы можете взломать MULEbots, чтобы сделать их быстрее, дать возможность переезжать людей и даже позволить вам оседлать их! +Будучи карго техником, вы можете заказать контрабандные товары с консоли шаттла снабжения, разобрав ее и использовав мультитул на печатной плате, а затем собрав заново. +Будучи карго техником, вы можете заработать больше денег для карго, отправляя ящики из технических помещений, листы плазмы, редкие семена из гидропоники, диски технологий из РнД и многое другое! +Будучи шахтёром, вы знаете, что в северной части Лаваленда гораздо больше редких минералов, чем в южной, но она гораздо опаснее. +Будучи шахтером, всегда имейте при себе GPS, чтобы товарищ шахтер или киборг мог прийти на помощь в случае вашей гибели. +Будучи предателем, вы знаете, что криптографический секвенсор (emag) может открывать не только двери, но и шкафчики, ящики, APC и многое другое. Он может взламывать киборгов и даже заставлять ботов сходить с ума. Используйте его на нужных машинах, и вы даже сможете заказать еще больше снаряжения предателей, или связаться с Синдикатом. Экспериментируйте! +Будучи предателем, подмяв под себя ИИ, вы можете сделать его чрезвычайно могущественным союзником. Однако будьте осторожны с формулировками законов, которые вы ему даете, так как он может использовать ваши плохо написанные законы против вас! +Будучи предателем, вы знаете, что капитан и главой службы безопасности - две самые трудноубиваемые цели на станции. Если любой из них является вашей целью, тщательно планируйте. +Будучи предателем, вы можете производить и перерабатывать револьверные пули на взломанном автолате, что делает револьвер чрезвычайно мощным инструментом. +Будучи предателем, вам иногда поручают охотиться на других предателей, а те, в свою очередь, могут охотиться на вас. +Будучи предателем, вы знаете, что ключ шифрования Синдиката очень полезен для согласования планов с вашими товарищами - или, конечно, для их предательства. +Будучи предателем, вы знаете, что плазму можно впрыскивать во многие предметы, чтобы саботировать их. Элементы питания, лампочки и сигары взрываются при использовании. +Будучи предателем, если вы сможете найти другого Предателя и объединить свои ТС, вы сможете купить мега-избыточный ящик, который стоит 200ТС, но содержит много случайного снаряжения Синдиката. +Для ядерного оперативника общение имеет ключевое значение! Используйте ; чтобы поговорить с коллегами-оперативниками, чтобы скоординировать план атаки. +Будучи ядерным оперативником, вы должны рассмотреть возможность приобретения киборга синдиката, поскольку они могут обеспечить мощную огневую поддержку, полный доступ, они невосприимчивы к обычному оглушению и могут легко уничтожить ИИ. +Будучи ядерным оперативником, держитесь вместе! Хотя ваше снаряжение надежно, ваши товарищи-оперативники гораздо лучше спасают вашу жизнь: они могут оттащить вас от опасности, пока вы оглушены, и прикрыть огнем. +Будучи ядерным оперативником, вы можете оказаться в ситуации, когда ИИ запер вас в комнате. Наличие в кармане запасного C4 может спасти вам жизнь. +Будучи обезьяной, вы можете носить несколько человеческих предметов, таких как рюкзаки, противогазы и шляпы, и при этом иметь две свободные руки. +Будучи сбойным ИИ, вы можете переместиться в APC, если ситуация станет плохой. +Будучи сбойным ИИ, вы должны либо приказать своим киборгам демонтировать консоль робототехники, либо взорвать ее сами, чтобы защитить их. +Будучи Чужим, вам нет равных в ближнем бою, а вот дальнобойных способностей очень не хватает. Используйте углы, чтобы спровоцировать противостояние в ближнем бою! +Будучи Чужим, вы получаете двойной урон от всего ожоговых атак, таких как лазеры, сварки и огонь. Кроме того, огонь может уничтожить вашу смолу и яйца. Освободите больше пространства, чтобы отвести огонь из огнемета до того, как он успеет нанести урон! +Будучи Чужим, смоляные полы не только восстанавливают запас плазмы, но и пассивно лечат вас. Сражайтесь на смоляных полах, чтобы получить преимущество! +Для Чужого лицехват - это, безусловно, самое мощное оружие, поскольку он способен мгновенно выиграть бой. Однако помните, что некоторые шлемы, например биошлемы или космические шлемы, полностью блокируют атаки лицехвата. +Будучи Чужим, вы не можете подбирать или использовать какие-либо человеческие предметы или механизмы. Вместо этого вам следует сосредоточиться на саботаже APC, компьютеров, камер, а также на укладке, расстановке или переплавке найденного оружия. +Будучи Блобом, держите свое ядро на некотором расстоянии от космоса, поскольку его расширение в космос обходится дорого, его легко атаковать, и оно не учитывается в условии победы. Особенно опасны эммитеры, построенные в космосе. +Будучи Блобом, вы можете случайным образом изменить тип реагента, если экипаж адаптировалась и защитилась от вашего текущего. +Будучи Блобом, вы ведете войну на истощение: Захватите медблок и сражайтесь в узловых точках, чтобы предотвратить продолжение штурма и скоординированные атаки с разрывным уроном! +Будучи Блобом, не пренебрегайте созданием фабрик. Они создают споры, которые переносят реагенты и могут преследовать членов экипажа гораздо дальше, чем вы. Споры также могут объединяться в рой и вызывать панику среди членов экипажа, и даже могут захватывать трупы, создавая гораздо более опасных зомби! +Будучи Блобом, вы можете расширяться с помощью щелчка мыши, создавать усиленные блобы с помощью Ctrl-щелчка, объединять споры с помощью среднего щелчка и удалять блобы с помощью Alt-щелчка. Для этого вам не нужно наводить камеру на тайл. +Будучи Блобом, вы можете удалять усиленных блобов, ресурсные узлы, фабрики и узлы, это вернет вам часть ресурсов в качестве компенсации. +Будучи Блобом, разговаривая, вы отправите сообщение всем подконтрольным, что позволит вам направлять атаки и координировать действия. +Для Генокрада, использование Extract DNA sting засчитывается за цель поглощения генома, но не позволяет вам изменить свои способности. +Будучи Генокрадом, вы можете поглотить кого-нибудь, задушив его и использовав способность 'Absorb'. Это дает вам возможность повторно выбрать свои способности, а также вы получаете ДНК того, кого вы поглотили, память поглощенного и некоторые образцы того, что он говорил. +Будучи культистом, не устраивайте слишком большой хаос до того, как ваша цель будет выполнена. Если шаттл будет вызван слишком рано, у вас может не хватить времени для победы. +Будучи культистом, ваша команда изначально слаба, но при необходимости может быстро превратить все, что у нее есть, в чистую силу. Убедитесь, что у вас достаточно численности и снаряжения, чтобы начать громко действовать, иначе культ падет на землю. +Будучи культистом, вы знаете, что руна 'Blood Boil' наносит некультистам огромный урон от ожогов и поджигает их. Однако в течение всего времени действия руны у нее должны стоять два культиста. +Вы можете деконвертировать культистов, напаив их большим количеством святой воды. +Священник может благословить любую емкость с водой, ударив по ней своей библией. Святая вода имеет огромное количество применений против культа, а большое ее количество способствует успеху в борьбе с ними. +Будучи магом, вы можете превращать людей в камень, а затем оживлять получившуюся статую с помощью посоха анимации, чтобы создать чрезвычайно мощного миньона, по крайней мере, на 5 минут. +Будучи магом, вы знаете, что заклинание огненного шара очень плохо работает на близком расстоянии, так как оно может легко зацепить вас взрывом. Лучше всего использовать его в качестве артиллерии в длинных коридорах. +Будучи магом, вы можете вызывать оружие, вы можете получить все, что угодно - от цветочного соматора до импульсной винтовки. Используйте на свой страх и риск! +Будучи магом, вы знаете, что посох хаоса может стрелять любыми видами болтов. Это могут быть как болты мгновенной смерти, так и исцеления или оживления. +Будучи магом, вы знаете, что большинство заклинаний становятся непригодными, если на вас нет мантии, шляпы и сандалий. +Будучи Абдуктором, вы можете выбрать, куда будут отправлены ваши жертвы, на консоли управления кораблем. +Будучи Абдуктором-агентом, вы знаете, что жилет в боевом режиме обладает гораздо большей устойчивостью к любому виду оружия, а шлем не позволяет ИИ следить за вами. +Будучи Абдуктором, вы знаете, что дубинка может переключаться между четырьмя режимами: оглушение, сон, наручники и метка. +Будучи Ревенантом, вы знаете, что священник - ваш злейший враг, поскольку он может нанести вам огромный урон с помощью нулл рода и сделать большие участки станции непроходимыми с помощью святой воды. +Будучи Ревенантом, ваша энергия - это также ваше здоровье, поэтому раскрываться перед людьми, чтобы собрать энергию живых, гораздо безопаснее, если вы уже запаслись ею из плохо охраняемых трупов. +Будучи Ревенантом, вы знаете, что ваша способность 'Defile' удаляет святую воду с плиток в небольшом радиусе, позволяя вам отвоевать станцию у капеллана, если он покрывал станцию святой водой. +Будучи Ревенантом, вы знаете, что ваша способность 'Overload Lights' поражает людей светом только в том случае, если свет продолжает гореть после небольшой задержки. +Будучи Ревенантом, вы знаете, что ваша способность 'Malfunction' в целом повреждает механизмы и механические объекты, возможно, даже разрушая некоторые. Экспериментируйте! +Будучи Ревенантом, вы знаете, что космос - ваш друг. Разбивая окна в космос, вы можете нанести огромный ущерб и вызвать хаос. +Будучи призраком, вы можете дважды щелкнуть по любой вещи, чтобы следить за ней. Или просто перемещаться! +Будучи офицером службы безопасности, помните, что корреляция не равна причинно-следственной связи. Возможно, кто-то просто оказался не в том месте и не в то время! +Будучи офицером службы безопасности, помните, что к большинству вооружения (доминаторы, электрошокеры и т.д.) можно прикрепить фонарик. +Будучи пауком Ужаса, оставьте обматывание трупов зеленым паукам, если это не является абсолютно необходимым. Им это нужно, чтобы откладывать яйца! +Будучи Принцом Ужаса, вы могущественны, но обычно действуете в одиночку. Подумайте о тактике "бей и беги", чтобы восстанавливать здоровье между схватками. +Будучи коричневым пауком Ужаса, сосредоточьтесь на разрушении заваренных вентиляций. Вы слабы в прямом бою, но можете дать возможность своим товарищам пройти почти везде. +Будучи пауком Ужаса, защитите королеву любой ценой! +Будучи пауком Ужаса, не забывайте, что вы можете переместить свое гнездо, если экипаж слишком сильно давит на вас. +Будучи пауком Ужаса, попробуйте накинуть паутину на белую плитку пола, так ее гораздо труднее заметить. +Будучи пауком Ужаса, вы можете затягивать врага в паутину, это может обеспечить победу в ближнем бою. +Вы можете менять местами плитки пола, держа лом в одной руке и стопку плиток в другой. +При взломе дверей, перерезание и соединение провода 'test light' восстановит питание двери. +При создании большинства предметов вы можете либо вручную комбинировать части, либо использовать меню крафта. +Хранилища костюмов не только удаляют кровь и грязь с одежды, но и радиацию! +Сон в кровати может исцелить незначительное количество повреждений от грубой силы и ожогов. +Экспериментатор имеет шанс породить враждебных мобов. При его использовании будьте готовы спасаться бегством. +Наличие импланта щита разума, или карта агента заставит офицера Бипски считать вас менее пригодным для ареста. +Вы можете сделать лазертаг турели, чтобы провести величайший турнир по лазертагу! +Строения Блоба получают половину от грубого (brute) урона. Лучше используйте лазеры. +Бумагу можно спрятать в вентиляции, но для этого нужно сначала открыть её с помощью отвертки. +Хотя Стандартные Рабочие Процедуры не являются в полной мере правилами, они существуют по соображениям безопасности и профессионализма. +Убийство мага обычно завершает раунд, если только это не лич, или ЯРОСТЬ Космической Федерации Магов! +Будучи ассистентом, у вас есть шансы найти работу. +Роль предназначенная для новичков может использоваться и опытными игроками для разнообразия геймплея. +Если вы не уверены в своих познаниях в профессии, вам следует сначала поиграть на роли для новичков. +Если у вас роль для новичков, не забывайте, у вас собственное СРП, не позволяющее пользоваться некоторыми вещами без разрешения. +На ролях для новичков вы можете эксплуатировать ваших старших коллег и наседать им на мозги. И Глава даже не уволит вас за это! +Если долго отыгрывать на роли для новичка, не заметишь как ты становишься опытнее. +Чем дольше учишься - тем лучше знаешь свою профессию. +Не всегда зубрежка вики дает лучший игровой опыт. Иногда стоит отдаться течению. +Если вы видите персонажа с ролью новичка - помогите ему освоиться. Даже если за него играет опытный игрок - это может быть интересная ролевая ситуация. +Если вы видите персонажа с ролью новичка - не забудьте показать ему собственное превосходство и надавать по рукам, за то что он трогает вещи без разрешения. +Если только ругать новичков, а не помогать им освоиться, то игроков никогда не будет. +Все когда-то были новичками. Проявите терпение. +Это ободряющий совет. diff --git a/tgui/packages/tgui/components/Button.js b/tgui/packages/tgui/components/Button.js index 33182aa03341..fc4bc3aa2d01 100644 --- a/tgui/packages/tgui/components/Button.js +++ b/tgui/packages/tgui/components/Button.js @@ -27,6 +27,7 @@ export const Button = (props) => { iconColor, iconSpin, iconRight, + iconStyle, children, onclick, onClick, @@ -95,6 +96,7 @@ export const Button = (props) => { color={iconColor} rotation={iconRotation} spin={iconSpin} + style={iconStyle} /> )} {content} @@ -105,6 +107,7 @@ export const Button = (props) => { color={iconColor} rotation={iconRotation} spin={iconSpin} + style={iconStyle} /> )} {tooltip && } diff --git a/tgui/packages/tgui/components/DraggableControl.js b/tgui/packages/tgui/components/DraggableControl.js index e8bfafd09a73..3a9a1931f38e 100644 --- a/tgui/packages/tgui/components/DraggableControl.js +++ b/tgui/packages/tgui/components/DraggableControl.js @@ -15,10 +15,11 @@ export class DraggableControl extends Component { super(props); this.inputRef = createRef(); this.state = { + originalValue: props.value, value: props.value, dragging: false, editing: false, - oldOffset: null, + origin: null, suppressingFlicker: false, }; @@ -50,8 +51,10 @@ export class DraggableControl extends Component { document.body.style['pointer-events'] = 'none'; this.ref = e.currentTarget; this.setState({ + originalValue: value, dragging: false, value, + origin: getScalarScreenOffset(e, dragMatrix), }); this.timer = setTimeout(() => { this.setState({ @@ -82,57 +85,16 @@ export class DraggableControl extends Component { } this.setState((prevState) => { const state = { ...prevState }; - const oldOffset = prevState.oldOffset; - const offset = - getScalarScreenOffset(e, dragMatrix) - - this.ref.getBoundingClientRect().left - - window.screenX; + const origin = prevState.origin; + const offset = getScalarScreenOffset(e, dragMatrix) - origin; if (prevState.dragging) { - if ( - oldOffset !== undefined && - oldOffset !== null && - offset !== oldOffset - ) { - const maxStep = maxValue / step; - const toNearestStep = - offset > oldOffset - ? Math.floor // Increasing - : Math.ceil; // Decreasing - /* ● = step, o = oldOffset, n = offset - * There are four cases to consider for the following code: - * Case 1: Increasing(offset > oldOffset), moving between steps - * ●--o--n-● - * value should not change. Since both offsets are subject to floor, - * they have the same nearest steps and the difference cancels out, - * leaving value the same - * Case 2: Decreasing(offset < oldOffset), moving between steps - * ●--n--o-● - * Same as Case 1 except the function is ceil not floor - * Case 3: Increasing, offset is past step - * ●-o-●-n-● ; ●-o-●---●-n - * value should increase by 1, or however many steps o is behind n - * Case 4: Decreasing, offset is behind step - * ●-n-●-o-● ; ●-n-●---●-o - * Same as Case 3, but decrease instead of increase - */ - const oldStep = clamp( - toNearestStep(oldOffset / stepPixelSize), - 0, - maxStep - ); - const newStep = clamp( - toNearestStep(offset / stepPixelSize), - 0, - maxStep - ); - const stepDifference = newStep - oldStep; - state.value = clamp( - state.value + stepDifference * step, - minValue, - maxValue - ); - } - state.oldOffset = offset; + const stepDifference = Math.trunc(offset / stepPixelSize); + state.value = clamp( + Math.floor(state.originalValue / step) * step + + stepDifference * step, + minValue, + maxValue + ); } else if (Math.abs(offset) > 4) { state.dragging = true; } @@ -147,9 +109,10 @@ export class DraggableControl extends Component { clearTimeout(this.timer); clearInterval(this.dragInterval); this.setState({ + originalValue: null, dragging: false, editing: !dragging, - oldOffset: null, + origin: null, }); document.removeEventListener('mousemove', this.handleDragMove); document.removeEventListener('mouseup', this.handleDragEnd); @@ -228,7 +191,14 @@ export class DraggableControl extends Component { if (!editing) { return; } - const value = clamp(e.target.value, minValue, maxValue); + const inputValue = parseInt(e.target.value, 10); + if (isNaN(inputValue) || e.target.value.match(/[^0-9]/g)) { + this.setState({ + editing: false, + }); + return; + } + const value = clamp(inputValue, minValue, maxValue); this.setState({ editing: false, value, @@ -243,7 +213,14 @@ export class DraggableControl extends Component { }} onKeyDown={(e) => { if (e.keyCode === 13) { - const value = clamp(e.target.value, minValue, maxValue); + const inputValue = parseInt(e.target.value, 10); + if (isNaN(inputValue) || e.target.value.match(/[^0-9]/g)) { + this.setState({ + editing: false, + }); + return; + } + const value = clamp(inputValue, minValue, maxValue); this.setState({ editing: false, value, diff --git a/tgui/packages/tgui/components/Input.js b/tgui/packages/tgui/components/Input.js index 19b57936097e..f82ae9cdf8cb 100644 --- a/tgui/packages/tgui/components/Input.js +++ b/tgui/packages/tgui/components/Input.js @@ -76,6 +76,8 @@ export class Input extends Component { const input = this.inputRef.current; if (input) { input.value = toInputValue(nextValue); + input.selectionStart = 0; + input.selectionEnd = input.value.length; } if (this.props.autoFocus || this.props.autoSelect) { diff --git a/tgui/packages/tgui/components/NanoMap.js b/tgui/packages/tgui/components/NanoMap.js index cfe7ff5dace5..849b3be960b0 100644 --- a/tgui/packages/tgui/components/NanoMap.js +++ b/tgui/packages/tgui/components/NanoMap.js @@ -160,9 +160,9 @@ const NanoMapZoomer = (props, context) => { v + 'x'} value={props.zoom} onDrag={(e, v) => props.onZoom(e, v)} diff --git a/tgui/packages/tgui/hotkeys.js b/tgui/packages/tgui/hotkeys.js index ac2fc6d9ff63..3522d1dabf4d 100644 --- a/tgui/packages/tgui/hotkeys.js +++ b/tgui/packages/tgui/hotkeys.js @@ -194,9 +194,10 @@ const handlePassthrough = (e, eventType) => { export const releaseHeldKeys = () => { for (let keyCode of Object.keys(keyState)) { if (keyState[keyCode]) { + const byondKey = keyCodeToByond(keyCode); logger.log(`releasing [${keyCode}] key`); keyState[keyCode] = false; - callByond('', { __keyup: keyCode }); + callByond('', { __keyup: byondKey }); } } }; diff --git a/tgui/packages/tgui/interfaces/ChemDispenser.js b/tgui/packages/tgui/interfaces/ChemDispenser.js index a6aa88352373..d819fec6e6d1 100644 --- a/tgui/packages/tgui/interfaces/ChemDispenser.js +++ b/tgui/packages/tgui/interfaces/ChemDispenser.js @@ -81,7 +81,7 @@ const ChemDispenserChemicals = (properties, context) => { return (
{ return (
diff --git a/tgui/packages/tgui/interfaces/ChemMaster.js b/tgui/packages/tgui/interfaces/ChemMaster.js index 9c5cc39f5395..2f7d8fe71f83 100644 --- a/tgui/packages/tgui/interfaces/ChemMaster.js +++ b/tgui/packages/tgui/interfaces/ChemMaster.js @@ -1,6 +1,16 @@ -import { Fragment } from 'inferno'; +import { Component, Fragment } from 'inferno'; import { useBackend } from '../backend'; -import { Box, Button, Flex, Icon, LabeledList, Section } from '../components'; +import { + Box, + Button, + Flex, + Icon, + Input, + LabeledList, + Section, + Slider, + Tabs, +} from '../components'; import { Window } from '../layouts'; import { BeakerContents } from './common/BeakerContents'; import { @@ -10,13 +20,6 @@ import { } from './common/ComplexModal'; const transferAmounts = [1, 5, 10]; -const bottleStyles = [ - 'bottle.png', - 'small_bottle.png', - 'wide_bottle.png', - 'round_bottle.png', - 'reagent_bottle.png', -]; const analyzeModalBodyOverride = (modal, context) => { const { act, data } = useBackend(context); @@ -103,8 +106,8 @@ const ChemMasterBeaker = (props, context) => { return (
{ return (
Transferring to  @@ -261,10 +264,16 @@ const ChemMasterBuffer = (props, context) => { const ChemMasterProduction = (props, context) => { const { act } = useBackend(context); - if (!props.bufferNonEmpty) { + if (!props.bufferNonEmpty && props.isCondiment) { return ( -
- +
+
@@ -276,7 +285,7 @@ const ChemMasterProduction = (props, context) => { } return ( -
+
{!props.isCondiment ? ( ) : ( @@ -288,82 +297,239 @@ const ChemMasterProduction = (props, context) => { const ChemMasterProductionChemical = (props, context) => { const { act, data } = useBackend(context); + const tabs = [ + { + 'name': 'Pills', + 'icon': 'pills', + }, + { + 'name': 'Patches', + 'icon': 'plus-square', + }, + { + 'name': 'Bottles', + 'icon': 'wine-bottle', + }, + ]; + const decideTab = (mode) => { + switch (mode) { + case 1: + return ; + case 2: + return ; + case 3: + return ; + default: + return 'UNKNOWN INTERFACE'; + } + }; + return ( + <> + + {tabs.map((t, i) => { + i += 1; + return ( + act('set_production_mode', { mode: i })} + /> + ); + })} + + {decideTab(data.production_mode)} + + ); +}; + +class ChemMasterNameInput extends Component { + constructor() { + super(); + + this.handleMouseUp = (e) => { + const { placeholder, onMouseUp } = this.props; + + // Middle-click button + if (e.button === 1) { + e.target.value = placeholder; + e.target.select(); + } + + if (onMouseUp) { + onMouseUp(e); + } + }; + } + + render() { + const { data } = useBackend(this.context); + const { maxnamelength } = data; + + return ( + + ); + } +} + +const ChemMasterProductionCommon = (props, context) => { + const { act, data } = useBackend(context); + const { + children, + maxQuantity, + medicineName, + placeholderName, + productionType, + quantity, + } = props; + const { buffer_reagents = [] } = data; return ( - - - - ); }; +const SpriteStyleButton = (props, context) => { + const { icon, imageTransform, ...restProps } = props; + return ( + + ); +}; + +const ChemMasterProductionPills = (props, context) => { + const { act, data } = useBackend(context); + const { + maxpills, + pillamount, + pillname, + pillplaceholdername, + pillsprite, + pillstyles, + } = data; + const style_buttons = pillstyles.map(({ id, sprite }) => ( + act('set_pills_style', { style: id })} + selected={pillsprite === id} + /> + )); + return ( + + {style_buttons} + + ); +}; + +const ChemMasterProductionPatches = (props, context) => { + const { act, data } = useBackend(context); + const { maxpatches, patchamount, patchname, patchplaceholdername } = data; + return ( + + ); +}; + +const ChemMasterProductionBottles = (props, context) => { + const { act, data } = useBackend(context); + const { + bottlesprite, + maxbottles, + bottleamount, + bottlename, + bottleplaceholdername, + bottlestyles, + } = data; + const style_buttons = bottlestyles.map(({ id, sprite }) => ( + act('set_bottles_style', { style: id })} + selected={bottlesprite === id} + /> + )); + return ( + + {style_buttons} + + ); +}; + const ChemMasterProductionCondiment = (props, context) => { const { act } = useBackend(context); return ( @@ -387,31 +553,82 @@ const ChemMasterProductionCondiment = (props, context) => { const ChemMasterCustomization = (props, context) => { const { act, data } = useBackend(context); - if (!data.loaded_pill_bottle) { + const { loaded_pill_bottle_style, containerstyles, loaded_pill_bottle } = + data; + + const style_button_size = { width: '20px', height: '20px' }; + const style_buttons = containerstyles.map(({ color, name }) => { + let selected = loaded_pill_bottle_style === color; return ( -
- No pill bottle or patch pack loaded. -
+ ); - } - + }); return ( -
-
); }; diff --git a/tgui/packages/tgui/interfaces/DNAModifier.js b/tgui/packages/tgui/interfaces/DNAModifier.js index 1857c4cb6b97..03857902a8ca 100644 --- a/tgui/packages/tgui/interfaces/DNAModifier.js +++ b/tgui/packages/tgui/interfaces/DNAModifier.js @@ -223,8 +223,8 @@ const DNAModifierMainUI = (props, context) => { value.toString(16).toUpperCase()} @@ -272,9 +272,9 @@ const DNAModifierMainRadiationEmitter = (props, context) => { { { return ( @@ -48,14 +51,69 @@ const EvolutionPoints = (props, context) => { const Abilities = (props, context) => { const { act, data } = useBackend(context); - const { evo_points, ability_list, purchased_abilities, view_mode } = data; - const [tab, setTab] = useLocalState(context, 'tab', 0); + const { evo_points, ability_tabs, purchased_abilities, view_mode } = data; + const [selectedTab, setSelectedTab] = useLocalState( + context, + 'selectedTab', + ability_tabs[0] + ); + const [searchText, setSearchText] = useLocalState(context, 'searchText', ''); + const [abilities, setAbilities] = useLocalState( + context, + 'ability_tabs', + ability_tabs[0].abilities + ); + + const selectAbilities = (abilities, searchText = '') => { + if (!abilities || abilities.length === 0) { + return []; + } + + const AbilitySearch = createSearch(searchText, (ability) => { + return ability.name + '|' + ability.description; + }); + + return flow([ + filter((ability) => ability?.name), + filter(AbilitySearch), + sortBy((ability) => ability?.name), + ])(abilities); + }; + + const handleSearch = (value) => { + setSearchText(value); + if (value === '') { + return setAbilities(selectedTab.abilities); + } + + setAbilities( + selectAbilities( + ability_tabs.map((ability_entry) => ability_entry.abilities).flat(), + value + ) + ); + }; + + const handleTabChange = (selectedTab) => { + setSelectedTab(selectedTab); + setAbilities(selectedTab.abilities); + setSearchText(''); + }; + return (
+ { + handleSearch(value); + }} + value={searchText} + />
); diff --git a/tgui/packages/tgui/interfaces/WizardApprenticeContract.js b/tgui/packages/tgui/interfaces/WizardApprenticeContract.js index 631b725f54b0..6228eded3f81 100644 --- a/tgui/packages/tgui/interfaces/WizardApprenticeContract.js +++ b/tgui/packages/tgui/interfaces/WizardApprenticeContract.js @@ -26,49 +26,69 @@ export const WizardApprenticeContract = (props, context) => {
- - Your apprentice is skilled in offensive magic. They know Magic - Missile and Fireball. + + Your apprentice is skilled in bending fire.
+ They know Fireball, Sacred Flame, and Ethereal Jaunt.