diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 8e73f4427152..950887721316 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -4,22 +4,39 @@ # In the event that multiple org members are to be informed of changes # to the same file or dir, add them to the end under Multiple Owners -# MarkSuckerberg -/code/controllers/subsystem/shuttle.dm @MarkSuckerberg -/code/modules/shuttle/ @MarkSuckerberg -/code/modules/overmap/ @MarkSuckerberg - -# Teams +# TEAMS # Map Maintainers /_maps/ @shiptest-ss13/maptainers # Sprite Maintainers /icons/ @shiptest-ss13/spritetainers -/whitesands/icons/ @shiptest-ss13/spritetainers # CI and tool chains /tools/ @shiptest-ss13/admins -#SIC SEMPER TYRANNIS + +# MAINTAINERS + +# FalloutFalcon + +/code/game/objects/items/storage/ration.dm @FalloutFalcon +/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm @FalloutFalcon +/code/modules/food_and_drinks/food/ration.dm @FalloutFalcon +/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @FalloutFalcon +/code/modules/projectiles/ @FalloutFalcon +/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @FalloutFalcon +/code/modules/unit_tests/icons/ @FalloutFalcon + +# MarkSuckerberg + +/code/controllers/subsystem/shuttle.dm @MarkSuckerberg +/code/modules/shuttle/ @MarkSuckerberg +/code/modules/overmap/ @MarkSuckerberg /_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm @MarkSuckerberg + + +# CONTRIBUTORS + + +# MULTIPLE OWNERS diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index d8e1a4830773..168b9038b246 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -15,7 +15,6 @@ add: Added new things add: Added more things del: Removed old things -tweak: tweaked a few things balance: rebalanced something fix: fixed a few things soundadd: added a new sound thingy diff --git a/Dockerfile b/Dockerfile index 4a8028dc7fca..6cefd0618365 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -FROM beestation/byond:515.1616 as base +FROM beestation/byond:515.1633 as base # Install the tools needed to compile our rust dependencies FROM base as rust-build @@ -12,8 +12,8 @@ RUN dpkg --add-architecture i386 \ && apt-get update \ && apt-get install -y --no-install-recommends \ curl ca-certificates gcc-multilib \ - g++-multilib libc6-i386 zlib1g-dev:i386 \ - libssl-dev:i386 pkg-config:i386 git \ + clang g++-multilib libc6-i386 \ + zlib1g-dev:i386 pkg-config:i386 git \ && /bin/bash -c "source dependencies.sh \ && curl https://sh.rustup.rs | sh -s -- -y -t i686-unknown-linux-gnu --no-modify-path --profile minimal --default-toolchain \$RUST_VERSION" \ && rm -rf /var/lib/apt/lists/* @@ -25,7 +25,7 @@ RUN git init \ && /bin/bash -c "source dependencies.sh \ && git fetch --depth 1 origin \$RUST_G_VERSION" \ && git checkout FETCH_HEAD \ - && cargo build --release --all-features --target i686-unknown-linux-gnu + && cargo build --release --target i686-unknown-linux-gnu # Build auxmos FROM rust-build as auxmos @@ -34,7 +34,7 @@ RUN git init \ && git remote add origin \$AUXMOS_REPO \ && git fetch --depth 1 origin \$AUXMOS_VERSION" \ && git checkout FETCH_HEAD \ - && cargo rustc --target=i686-unknown-linux-gnu --release --features all_reaction_hooks,katmos -- -C target-cpu=native + && env PKG_CONFIG_ALLOW_CROSS=1 cargo build --release --target=i686-unknown-linux-gnu --features "all_reaction_hooks,katmos" # Install nodejs which is required to deploy Shiptest FROM base as node diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm index 4aaff2b5a160..84fabfbe5ff7 100644 --- a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm @@ -667,7 +667,7 @@ /area/overmap_encounter/planetoid/beachplanet/explored) "Bg" = ( /obj/effect/turf_decal/corner/opaque/pink/diagonal, -/mob/living/simple_animal/hostile/pirate/melee{ +/mob/living/simple_animal/hostile/human/pirate/melee{ faction = list("beach","pirate") }, /turf/open/floor/plastic, @@ -827,7 +827,7 @@ /area/ruin/beach) "Gt" = ( /obj/effect/turf_decal/corner/opaque/lightgrey/diagonal, -/mob/living/simple_animal/hostile/cat_butcherer{ +/mob/living/simple_animal/hostile/human/cat_butcherer{ 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); desc = "A profession carp butcher, gone mad due to carptoxin exposure. There seems to be something in their pocket..."; faction = list("beach","pirate"); @@ -853,7 +853,7 @@ "GP" = ( /obj/structure/chair/sofa/brown/right/directional/south, /obj/effect/decal/cleanable/cobweb, -/mob/living/simple_animal/hostile/pirate/melee{ +/mob/living/simple_animal/hostile/human/pirate/melee{ faction = list("beach","pirate") }, /turf/open/floor/carpet, @@ -1045,7 +1045,7 @@ /obj/structure/chair/plastic{ dir = 8 }, -/mob/living/simple_animal/hostile/pirate/ranged{ +/mob/living/simple_animal/hostile/human/pirate/ranged{ faction = list("beach","pirate") }, /turf/open/floor/wood/ebony, @@ -1135,7 +1135,7 @@ /area/ruin/beach) "Rh" = ( /obj/structure/chair/sofa/brown/corner/directional/south, -/mob/living/simple_animal/hostile/pirate/melee{ +/mob/living/simple_animal/hostile/human/pirate/melee{ faction = list("beach","pirate") }, /turf/open/floor/carpet, @@ -1250,7 +1250,7 @@ pixel_x = 4; layer = 2.9 }, -/mob/living/simple_animal/hostile/pirate/ranged{ +/mob/living/simple_animal/hostile/human/pirate/ranged{ faction = list("beach","pirate") }, /turf/open/floor/wood/ebony, @@ -1333,7 +1333,7 @@ /turf/open/water/beach, /area/overmap_encounter/planetoid/beachplanet/explored) "ZJ" = ( -/mob/living/simple_animal/hostile/pirate/melee{ +/mob/living/simple_animal/hostile/human/pirate/melee{ faction = list("beach","pirate") }, /turf/open/floor/wood, diff --git a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm index bbac1ae4e8d9..29ad64707d84 100644 --- a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm @@ -237,14 +237,6 @@ light_range = 2 }, /area/ruin/beach/float_resort/villa) -"gr" = ( -/obj/structure/table/wood, -/obj/structure/curtain/cloth, -/obj/item/nullrod/tribal_knife, -/turf/open/floor/wood{ - light_range = 2 - }, -/area/ruin/beach/float_resort/villa) "gQ" = ( /obj/structure/flora/ausbushes/genericbush, /turf/open/floor/plating/grass/beach, @@ -2502,7 +2494,7 @@ kp kp kp kp -gr +ar OH OH OH diff --git a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm index 3cdd90e5e1cb..e47ffa92a5e9 100644 --- a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm @@ -385,7 +385,7 @@ }, /area/overmap_encounter/planetoid/beachplanet/explored) "jE" = ( -/mob/living/simple_animal/hostile/pirate/ranged{ +/mob/living/simple_animal/hostile/human/pirate/ranged{ environment_smash = 0; faction = list("pirate","mining") }, @@ -522,7 +522,7 @@ /obj/structure/cable{ icon_state = "1-4" }, -/mob/living/simple_animal/hostile/pirate/melee{ +/mob/living/simple_animal/hostile/human/pirate/melee{ environment_smash = 0; faction = list("pirate","mining") }, @@ -1508,7 +1508,7 @@ /turf/open/floor/plating/asteroid/sand/lit, /area/overmap_encounter/planetoid/cave/explored) "Vc" = ( -/mob/living/simple_animal/hostile/pirate/melee{ +/mob/living/simple_animal/hostile/human/pirate/melee{ environment_smash = 0; faction = list("pirate","mining") }, diff --git a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm index 7943cf93372e..e97a926aec6b 100644 --- a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm @@ -417,7 +417,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/pirate/ranged/space, +/mob/living/simple_animal/hostile/human/pirate/ranged/space, /turf/open/floor/wood, /area/ruin/beach/treasure_cove) "oR" = ( @@ -970,12 +970,12 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/pirate/melee, +/mob/living/simple_animal/hostile/human/pirate/melee, /turf/open/floor/plating/dirt/jungle/lit, /area/ruin/beach/treasure_cove) "EU" = ( /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/pirate/melee, +/mob/living/simple_animal/hostile/human/pirate/melee, /turf/open/floor/plating/dirt/jungle/lit, /area/ruin/beach/treasure_cove) "Gm" = ( @@ -1301,7 +1301,7 @@ /obj/structure/chair/wood{ dir = 8 }, -/mob/living/simple_animal/hostile/pirate/ranged, +/mob/living/simple_animal/hostile/human/pirate/ranged, /turf/open/floor/carpet/red, /area/ruin/beach/treasure_cove) "SX" = ( diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm index 28a963ed476a..c48664ffdcf3 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm @@ -84,8 +84,8 @@ "cN" = ( /obj/structure/safe/floor, /obj/item/hand_tele, -/obj/item/stack/sheet/mineral/adamantine, -/obj/item/stack/sheet/mineral/adamantine, +/obj/item/stack/sheet/mineral/hidden/hellstone, +/obj/item/stack/sheet/mineral/hidden/hellstone, /turf/open/floor/plating/asteroid/snow/icemoon, /area/ruin/unpowered/corprejectrooms) "cP" = ( @@ -518,7 +518,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ dir = 9 }, -/mob/living/simple_animal/hostile/nanotrasen/ranged/assault{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault{ desc = "No longer a member of Nanotrasen's more militaristic forces. Seems grumpy."; faction = list("DeserterNT"); name = "Benny Bleighch" @@ -566,7 +566,7 @@ /turf/open/floor/vault, /area/ruin/unpowered/corprejectrooms) "or" = ( -/mob/living/simple_animal/hostile/nanotrasen/elite{ +/mob/living/simple_animal/hostile/human/nanotrasen/elite{ desc = "A former major player for Nanotrasen militaristic needs. He doesn't seem like someone who'd want to talk over tea."; faction = list("DeserterNT"); name = "Sam the Sharp" @@ -780,7 +780,7 @@ /area/ruin/unpowered/corprejectrooms) "tb" = ( /obj/effect/turf_decal/corner/opaque/white/diagonal, -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{ desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you."; faction = list("DeserterNT"); name = "Rebecca Slouch" @@ -1064,7 +1064,7 @@ /obj/structure/cable/blue{ icon_state = "4-9" }, -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{ desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you."; faction = list("DeserterNT"); name = "Gloria the Glorious" @@ -1106,7 +1106,7 @@ /obj/structure/chair{ dir = 8 }, -/mob/living/simple_animal/hostile/nanotrasen/screaming{ +/mob/living/simple_animal/hostile/human/nanotrasen/screaming{ desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you."; faction = list("DeserterNT"); name = "Jimmy Firecracker" @@ -1726,11 +1726,11 @@ /obj/item/spacecash/bundle/c1000, /obj/item/spacecash/bundle/c1000, /obj/item/stack/sheet/bluespace_crystal/five, -/obj/item/stack/sheet/mineral/bananium{ +/obj/item/stack/sheet/mineral/hidden/hellstone{ amount = 15 }, /obj/item/stack/sheet/mineral/gold/twenty, -/obj/item/stack/sheet/mineral/runite/ten, +/obj/item/stack/sheet/mineral/hidden/hellstone/ten, /obj/item/toy/figure/captain, /obj/item/organ/cyberimp/brain/anti_stun, /obj/item/disk/design_disk/adv/knight_gear, @@ -1879,7 +1879,7 @@ /obj/structure/cable/blue{ icon_state = "4-9" }, -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{ desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you."; faction = list("DeserterNT"); name = "Todd Clorox" @@ -1902,7 +1902,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ dir = 4 }, -/mob/living/simple_animal/hostile/nanotrasen/elite{ +/mob/living/simple_animal/hostile/human/nanotrasen/elite{ desc = "A former major player for Nanotrasen militaristic needs. He doesn't seem like someone who'd want to talk over tea."; faction = list("DeserterNT"); name = "Max the Maniac" @@ -1927,7 +1927,7 @@ /area/ruin/unpowered/corprejectrooms) "Rp" = ( /obj/effect/turf_decal/corner/opaque/white/diagonal, -/mob/living/simple_animal/hostile/nanotrasen/ranged/assault{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault{ desc = "No longer a member of Nanotrasen's more militaristic forces. Seems grumpy."; faction = list("DeserterNT"); name = "Gordon Lary" @@ -2003,7 +2003,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ dir = 4 }, -/mob/living/simple_animal/hostile/nanotrasen/ranged/assault{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault{ desc = "No longer a member of Nanotrasen's more militaristic forces. Seems grumpy."; faction = list("DeserterNT"); name = "Gary Larson" @@ -2086,7 +2086,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ dir = 4 }, -/mob/living/simple_animal/hostile/nanotrasen/ranged/assault{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault{ desc = "No longer a member of Nanotrasen's more militaristic forces. Seems grumpy."; faction = list("DeserterNT"); name = "Nancy Drew" @@ -2094,7 +2094,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ruin/unpowered/corprejectrooms) "Us" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{ desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you."; faction = list("DeserterNT"); name = "Larry Liessahl" @@ -2231,7 +2231,7 @@ /obj/structure/cable/blue{ icon_state = "0-4" }, -/mob/living/simple_animal/hostile/nanotrasen/screaming{ +/mob/living/simple_animal/hostile/human/nanotrasen/screaming{ desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you."; faction = list("DeserterNT"); name = "Wendy Wallaby" @@ -2286,7 +2286,7 @@ /obj/structure/cable/blue{ icon_state = "4-5" }, -/mob/living/simple_animal/hostile/nanotrasen/screaming{ +/mob/living/simple_animal/hostile/human/nanotrasen/screaming{ desc = "An officer no longer part of Nanotrasen's private security force, he seems rather unpleased to meet you."; faction = list("DeserterNT"); name = "Wetzel the Pretzel" diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm index bf034757b5a2..149f4a579542 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm @@ -1028,7 +1028,7 @@ /area/ruin/powered) "Wp" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space, /turf/open/floor/plasteel/freezer, /area/ruin/powered) "Ws" = ( diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm index 946d28dc1a13..aee0cc51330b 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm @@ -101,9 +101,6 @@ "la" = ( /obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/mob_spawn/human/corpse/assistant, -/mob/living/simple_animal/hostile/skeleton/eskimo{ - name = "Village Hunter" - }, /turf/open/floor/plating/asteroid/snow/icemoon, /area/overmap_encounter/planetoid/cave/explored) "lg" = ( @@ -486,7 +483,7 @@ /area/ruin/powered) "PQ" = ( /obj/effect/decal/cleanable/blood/splatter, -/mob/living/simple_animal/hostile/frontier/ranged/trooper, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/ruin/powered) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm index 7fde87854827..4954a9a5aaf4 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm @@ -55,7 +55,7 @@ /turf/open/floor/plating/asteroid/snow/icemoon, /area/overmap_encounter/planetoid/cave/explored) "ct" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ faction = list("brazillian") }, /turf/open/floor/wood{ @@ -88,7 +88,7 @@ /area/ruin/unpowered) "fB" = ( /obj/structure/chair/stool/bar, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."; faction = list("brazillian") }, @@ -101,7 +101,7 @@ /turf/open/floor/plating/asteroid/snow/icemoon, /area/ruin/unpowered) "gH" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger{ +/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger{ faction = list("brazillian") }, /turf/open/floor/carpet/green{ @@ -117,7 +117,7 @@ "hp" = ( /obj/item/stack/cable_coil, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ faction = list("brazillian") }, /turf/open/floor/wood{ @@ -128,7 +128,7 @@ /turf/closed/wall/mineral/wood/nonmetal, /area/overmap_encounter/planetoid/cave/explored) "ht" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ faction = list("brazillian") }, /turf/open/floor/plating/asteroid/snow/icemoon, @@ -177,7 +177,7 @@ /obj/structure/chair/wood{ dir = 1 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."; faction = list("brazillian") }, @@ -341,7 +341,7 @@ /turf/open/floor/plating/asteroid/snow/icemoon, /area/overmap_encounter/planetoid/cave/explored) "qS" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ desc = "The greatest chef this side of the wastes."; faction = list("brazillian"); health = 150; @@ -475,7 +475,7 @@ /obj/structure/bed, /obj/structure/curtain, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."; faction = list("brazillian") }, @@ -535,7 +535,7 @@ /turf/open/floor/plating/asteroid/snow/icemoon, /area/overmap_encounter/planetoid/cave/explored) "zy" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."; faction = list("brazillian") }, @@ -545,7 +545,7 @@ /obj/structure/chair/wood{ dir = 8 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ faction = list("brazillian") }, /turf/open/floor/wood{ @@ -635,7 +635,7 @@ /area/ruin/unpowered) "CI" = ( /obj/structure/flora/junglebush/c, -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ faction = list("brazillian") }, /turf/open/floor/plating/grass/jungle{ @@ -775,7 +775,7 @@ "JM" = ( /obj/structure/bed, /obj/structure/curtain, -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ faction = list("brazillian") }, /obj/effect/turf_decal/corner/opaque/green/border, @@ -827,7 +827,7 @@ /obj/structure/chair/stool/bar{ dir = 4 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."; faction = list("brazillian") }, @@ -895,7 +895,7 @@ }, /area/ruin/unpowered) "NR" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."; faction = list("brazillian") }, @@ -1070,7 +1070,7 @@ }, /area/ruin/unpowered) "Ux" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ faction = list("brazillian") }, /turf/open/floor/plating/grass/jungle{ @@ -1205,7 +1205,7 @@ }, /area/ruin/unpowered) "Yy" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."; faction = list("brazillian") }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm index 113fde2af9c7..d000b8fd17a7 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm @@ -128,7 +128,6 @@ /obj/structure/stone_tile/slab, /mob/living/simple_animal/hostile/megafauna/dragon/icemoon{ loot = list(/obj/structure/closet/crate/necropolis/dragon,/obj/item/keycard/gatedrop/drakelair); - crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher,/obj/item/keycard/gatedrop/drakelair) }, /turf/open/indestructible/boss, /area/ruin) diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm index dee3343b8d78..2b04f2a3edb1 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm @@ -5611,7 +5611,7 @@ /area/overmap_encounter/planetoid/jungle/explored) "LM" = ( /obj/structure/closet, -/obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain, +/obj/item/clothing/suit/armor/ngr/captain, /obj/item/clothing/under/syndicate/ngr/officer, /obj/item/gun/ballistic/automatic/pistol, /obj/item/ammo_box/magazine/m10mm, @@ -7195,7 +7195,7 @@ /turf/open/floor/plating/rust, /area/ruin/jungle/starport) "WR" = ( -/obj/machinery/computer/communications{ +/obj/structure/frame/computer{ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, @@ -7296,7 +7296,7 @@ /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/vomit/old, /obj/item/clothing/under/syndicate/ngr/officer, -/obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain, +/obj/item/clothing/suit/armor/ngr/captain, /obj/item/clothing/shoes/combat, /turf/open/floor/mineral/plastitanium, /area/ruin/jungle/starport/tower) diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index 928318c23ffe..2f671753e72c 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -368,7 +368,7 @@ /turf/open/floor/plasteel, /area/ruin/jungle/cavecrew/hallway) "ei" = ( -/obj/machinery/computer/communications{ +/obj/structure/frame/computer{ dir = 8 }, /obj/effect/turf_decal/techfloor{ @@ -658,7 +658,7 @@ dir = 4; name = "tactical swivel chair" }, -/mob/living/simple_animal/hostile/frontier/ranged/officer/neutured, +/mob/living/simple_animal/hostile/human/frontier/ranged/officer/neutured, /turf/open/floor/plasteel/dark, /area/ruin/jungle/cavecrew/bridge) "iE" = ( @@ -1342,7 +1342,7 @@ /obj/structure/cable{ icon_state = "1-8" }, -/mob/living/simple_animal/hostile/frontier/ranged/trooper/heavy/neutered, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered, /turf/open/floor/plasteel/patterned/brushed, /area/ruin/jungle/cavecrew/security) "pB" = ( @@ -1432,7 +1432,7 @@ /area/ruin/jungle/cavecrew/hallway) "rN" = ( /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/frontier/ranged/trooper/neutered, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/neutered, /turf/open/floor/plating/dirt/old, /area/ruin/powered) "rQ" = ( @@ -1832,7 +1832,7 @@ /obj/structure/railing/corner{ dir = 8 }, -/mob/living/simple_animal/hostile/frontier/ranged/trooper/skm/neutured, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/neutured, /turf/open/floor/plasteel/stairs{ dir = 1 }, @@ -2354,7 +2354,7 @@ /obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 8 }, -/mob/living/simple_animal/hostile/frontier/ranged/neutered, +/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, /turf/open/floor/plasteel, /area/ruin/jungle/cavecrew/hallway) "CN" = ( @@ -2365,7 +2365,7 @@ dir = 9 }, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/frontier, +/mob/living/simple_animal/hostile/human/frontier, /obj/structure/cable{ icon_state = "4-8" }, @@ -2570,7 +2570,7 @@ /turf/open/floor/plating/dirt/jungle, /area/overmap_encounter/planetoid/cave/explored) "Fw" = ( -/mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered, +/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered, /turf/open/floor/plating/dirt/jungle, /area/ruin/powered) "Fy" = ( @@ -2797,7 +2797,7 @@ dir = 4; layer = 3.1 }, -/mob/living/simple_animal/hostile/frontier/ranged/neutered, +/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, /turf/open/water/jungle, /area/ruin/jungle/cavecrew/cargo) "II" = ( @@ -3208,7 +3208,7 @@ /obj/structure/cable{ icon_state = "2-5" }, -/mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle/neutered, +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/neutered, /turf/open/floor/plasteel, /area/ruin/jungle/cavecrew/hallway) "MW" = ( @@ -3391,7 +3391,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/mob/living/simple_animal/hostile/frontier/ranged/neutered, +/mob/living/simple_animal/hostile/human/frontier/ranged/neutered, /turf/open/floor/plating, /area/ruin/powered) "Pg" = ( @@ -4092,7 +4092,7 @@ /turf/open/floor/plating/dirt/jungle, /area/ruin/powered) "Xx" = ( -/mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered, +/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/tech, /area/ship/storage) diff --git a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm index 0f68c7b7ebd9..e8f075b9005d 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm @@ -22,7 +22,7 @@ /obj/effect/turf_decal/industrial/warning{ dir = 6 }, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /turf/open/floor/plasteel/white, /area/ship/science) "aM" = ( @@ -234,7 +234,7 @@ /area/ship/engineering/electrical) "fe" = ( /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/zombie{ +/mob/living/simple_animal/hostile/human/zombie{ zombiejob = "Geneticist" }, /turf/open/floor/plasteel/tech/techmaint, @@ -511,7 +511,7 @@ dir = 1 }, /obj/effect/gibspawner/human, -/mob/living/simple_animal/hostile/zombie{ +/mob/living/simple_animal/hostile/human/zombie{ zombiejob = "Janitor" }, /turf/open/floor/plasteel/dark, @@ -542,7 +542,7 @@ "jL" = ( /obj/structure/chair/comfy/orange/directional/north, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/zombie{ +/mob/living/simple_animal/hostile/human/zombie{ name = "Zombiefied Facility Director"; zombiejob = "Research Director" }, @@ -1113,7 +1113,7 @@ /area/ship/medical) "rf" = ( /obj/effect/turf_decal/corner/opaque/orange/full, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /turf/open/floor/plasteel/white, /area/ship/science/storage) "ro" = ( @@ -1281,14 +1281,14 @@ /turf/open/floor/plating, /area/ship/science/storage) "uT" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /turf/open/floor/plating, /area/ship/medical) "ve" = ( /obj/effect/turf_decal/industrial/warning{ dir = 10 }, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /turf/open/floor/plasteel/white, /area/ship/science) "vf" = ( @@ -1308,7 +1308,7 @@ dir = 10 }, /obj/machinery/light/directional/south, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /turf/open/floor/plasteel/white, /area/ship/medical) "vu" = ( @@ -1679,7 +1679,7 @@ pixel_x = -13; pixel_y = -6 }, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /turf/open/floor/plasteel/tech, /area/ship/crew/office) "Bh" = ( @@ -1743,7 +1743,7 @@ /turf/open/floor/plasteel/white, /area/ship/science/storage) "Cg" = ( -/mob/living/simple_animal/hostile/zombie{ +/mob/living/simple_animal/hostile/human/zombie{ zombiejob = "Assistant" }, /obj/item/rack_parts, @@ -2208,7 +2208,7 @@ /turf/open/floor/plasteel/tech, /area/ship/science) "Jx" = ( -/mob/living/simple_animal/hostile/zombie{ +/mob/living/simple_animal/hostile/human/zombie{ zombiejob = "Chemist" }, /turf/open/floor/plasteel/white, @@ -2411,7 +2411,7 @@ pixel_x = 4; pixel_y = -13 }, -/mob/living/simple_animal/hostile/zombie{ +/mob/living/simple_animal/hostile/human/zombie{ zombiejob = "Assistant" }, /turf/open/floor/plasteel/dark, @@ -3069,7 +3069,7 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/zombie{ +/mob/living/simple_animal/hostile/human/zombie{ zombiejob = "Assistant" }, /turf/open/floor/plasteel/white, diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index bc462784bca8..9457e639c5ce 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -1711,7 +1711,7 @@ /turf/open/floor/mineral/titanium/white, /area/overmap_encounter/planetoid/cave/explored) "kk" = ( -/obj/machinery/computer/communications{ +/obj/structure/frame/computer{ dir = 4 }, /turf/open/floor/mineral/titanium/blue, diff --git a/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm b/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm index 83f17d9f7026..739244a8b282 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_pirate.dmm @@ -124,7 +124,7 @@ /obj/structure/railing{ dir = 4 }, -/mob/living/simple_animal/hostile/pirate/ranged, +/mob/living/simple_animal/hostile/human/pirate/ranged, /turf/open/floor/wood, /area/ruin/unpowered) "qL" = ( @@ -209,11 +209,11 @@ /turf/open/floor/wood, /area/ruin/unpowered) "DH" = ( -/mob/living/simple_animal/hostile/pirate/ranged/space, +/mob/living/simple_animal/hostile/human/pirate/ranged/space, /turf/open/floor/carpet/red, /area/ruin/unpowered) "DS" = ( -/mob/living/simple_animal/hostile/pirate/ranged, +/mob/living/simple_animal/hostile/human/pirate/ranged, /turf/open/floor/wood, /area/overmap_encounter/planetoid/jungle/explored) "DV" = ( @@ -270,7 +270,7 @@ /turf/open/floor/wood, /area/ruin/unpowered) "LT" = ( -/mob/living/simple_animal/hostile/pirate/melee, +/mob/living/simple_animal/hostile/human/pirate/melee, /obj/structure/chair/wood, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, @@ -355,7 +355,7 @@ /turf/open/floor/plating/dirt/jungle/lit, /area/overmap_encounter/planetoid/jungle/explored) "UX" = ( -/mob/living/simple_animal/hostile/pirate/melee, +/mob/living/simple_animal/hostile/human/pirate/melee, /turf/open/floor/wood, /area/ruin/unpowered) "Vf" = ( @@ -391,7 +391,7 @@ /turf/open/floor/carpet/red, /area/ruin/unpowered) "XA" = ( -/mob/living/simple_animal/hostile/pirate/melee, +/mob/living/simple_animal/hostile/human/pirate/melee, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/ruin/unpowered) diff --git a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm index ebd333289382..4ecf5ee382b1 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm @@ -123,7 +123,7 @@ /turf/open/floor/plating/rust, /area/ruin/jungle/syndifort) "ef" = ( -/mob/living/simple_animal/hostile/syndicate{ +/mob/living/simple_animal/hostile/human/syndicate{ desc = "God dammit Jerry! Why the fuck are you barricading yourself in with all of our weapon supplies?"; name = "Jerry"; unsuitable_atmos_damage = 0 @@ -180,7 +180,7 @@ /turf/open/floor/plating/grass/jungle/lit, /area/overmap_encounter/planetoid/jungle/explored) "fS" = ( -/mob/living/simple_animal/hostile/syndicate{ +/mob/living/simple_animal/hostile/human/syndicate{ unsuitable_atmos_damage = 0 }, /obj/effect/decal/cleanable/dirt/dust, @@ -533,7 +533,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ruin/jungle/syndifort) "rg" = ( -/mob/living/simple_animal/hostile/syndicate/space, +/mob/living/simple_animal/hostile/human/syndicate/space, /obj/structure/cable{ icon_state = "1-2" }, @@ -1102,7 +1102,7 @@ /area/overmap_encounter/planetoid/jungle/explored) "HR" = ( /obj/structure/chair/plastic, -/mob/living/simple_animal/hostile/syndicate/ranged{ +/mob/living/simple_animal/hostile/human/syndicate/ranged{ unsuitable_atmos_damage = 0 }, /turf/open/floor/plating/dirt/jungle/lit, @@ -1365,7 +1365,7 @@ /area/ruin/jungle/syndifort) "Qs" = ( /obj/structure/cable, -/mob/living/simple_animal/hostile/syndicate{ +/mob/living/simple_animal/hostile/human/syndicate{ unsuitable_atmos_damage = 0 }, /obj/machinery/light/directional/north, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm index 0f7efcf3f2ad..15c3d93cb826 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -3,1298 +3,4590 @@ /turf/template_noop, /area/template_noop) "ac" = ( -/obj/item/stack/medical/ointment, -/obj/structure/table, -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/obj/structure/flora/tree/dead, +/obj/machinery/light/directional/west, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "ad" = ( -/obj/structure/table, -/obj/item/stack/medical/gauze, -/obj/item/stack/medical/gauze, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/obj/structure/rack, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat/solgov, +/obj/item/paper/pamphlet/biodomelore, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/entrance) "ae" = ( -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/obj/structure/flora/rock/icy, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "af" = ( -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/obj/structure/flora/grass/green, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "ag" = ( -/obj/structure/reagent_dispensers/beerkeg, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/obj/machinery/door/airlock/solgov/glass{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) "ah" = ( -/obj/item/reagent_containers/food/drinks/mug, -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) -"ai" = ( -/obj/machinery/shower{ - pixel_y = 12 +/obj/structure/railing/corner/wood{ + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"ai" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/ruin/unpowered/winter_biodome/cabin) "aj" = ( -/obj/structure/sink{ - pixel_y = 26 - }, -/turf/open/floor/plasteel/white, -/area/ruin/powered/snow_biodome) +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) "ak" = ( -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "al" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/obj/structure/railing/wood, +/turf/open/floor/plating/ice, +/area/ruin/unpowered/winter_biodome) "am" = ( -/obj/machinery/door/airlock/hatch, -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) -"an" = ( -/obj/structure/toilet{ - dir = 8 - }, +/obj/effect/turf_decal/corner/opaque/solgovgold/half, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/filingcabinet/chestdrawer, /turf/open/floor/plasteel/white, -/area/ruin/powered/snow_biodome) +/area/ruin/unpowered/winter_biodome/living_quarters) +"an" = ( +/obj/structure/chair/comfy/orange/directional/east, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) "ao" = ( -/turf/open/floor/plating/ice, -/area/ruin/powered/snow_biodome) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) "ap" = ( -/obj/structure/flora/rock/icy, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) "aq" = ( -/turf/closed/wall/mineral/wood, -/area/ruin/powered/snow_biodome) +/obj/structure/railing/corner/wood, +/turf/open/floor/plasteel/stairs/wood{ + dir = 4 + }, +/area/ruin/unpowered/winter_biodome) "ar" = ( -/obj/machinery/door/airlock/wood, -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) "as" = ( -/obj/structure/fans, -/turf/closed/wall/mineral/wood, -/area/ruin/powered/snow_biodome) +/obj/structure/railing/wood, +/turf/open/floor/plasteel/stairs/wood{ + dir = 8 + }, +/area/ruin/unpowered/winter_biodome) "at" = ( -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "au" = ( -/obj/structure/bed, -/obj/item/bedsheet/blue, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/paper/stack{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) "av" = ( -/obj/structure/bookcase/random, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood{ + initial_gas_mix = "o2=22;n2=82;TEMP=180"; + name = "bridge" + }, +/area/ruin/unpowered/winter_biodome) "aw" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/turf/open/floor/plating/ice, +/area/ruin/unpowered/winter_biodome) "ax" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/snacks/canned/beans, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "ay" = ( -/obj/structure/closet/crate/trashcart, -/obj/item/trash/semki, -/obj/item/trash/candy, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/machinery/space_heater, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) "az" = ( -/obj/structure/flora/tree/pine, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) "aA" = ( -/obj/structure/chair/comfy/orange/directional/east, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/unpowered/winter_biodome/engineering) "aB" = ( -/obj/structure/flora/rock/pile/icy, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/structure/table/wood, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/item/paper_bin/bundlenatural{ + pixel_y = 7 + }, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) "aC" = ( -/obj/structure/flora/tree/dead, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/turf/closed/wall/r_wall, +/area/ruin/unpowered/winter_biodome/engineering) "aD" = ( -/obj/machinery/door/airlock/wood, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/sign/solgov_seal{ + pixel_y = 0; + pixel_x = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/pod/light, +/area/ruin/unpowered/winter_biodome/entrance) "aE" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/turf/closed/wall/mineral/wood, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/corner/opaque/solgovgold/half, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) "aF" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/mug/coco, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/corner/opaque/solgovblue/three_quarters{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/gibs/up, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) "aG" = ( -/obj/structure/chair/comfy/orange/directional/west, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/unpowered/winter_biodome/cabin) "aH" = ( -/mob/living/simple_animal/hostile/skeleton/eskimo, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/structure/table/wood, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/item/clipboard, +/obj/item/pen/solgov, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) "aI" = ( -/obj/structure/flora/bush, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) "aJ" = ( -/obj/vehicle/ridden/atv, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "aL" = ( -/obj/structure/displaycase/captain, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/corner/opaque/solgovgold/half{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/airalarm/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) "aM" = ( -/turf/open/floor/carpet, -/area/ruin/powered/snow_biodome) -"aN" = ( -/obj/structure/bed/dogbed, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/wood, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) -"aO" = ( -/obj/machinery/door/airlock/glass_large, -/obj/structure/fans/tiny, +/area/ruin/unpowered/winter_biodome/sauna) +"aN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/unpowered/winter_biodome/entrance) +"aO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "aP" = ( -/obj/structure/fans/tiny, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/obj/structure/flora/grass/green, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "aQ" = ( -/obj/structure/flora/grass/both, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/entrance) "aR" = ( -/obj/structure/flora/tree/pine/xmas, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/structure/flora/ash/cacti, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, +/area/overmap_encounter/planetoid/lava/explored) +"bb" = ( +/obj/structure/chair/sofa/blue/directional/west, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) "bl" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/unpowered/winter_biodome) +"bn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"bs" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/three_quarters{ + dir = 4 + }, +/obj/structure/filingcabinet/double, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"bv" = ( +/obj/structure/railing/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, /turf/open/floor/wood{ initial_gas_mix = "o2=22;n2=82;TEMP=180"; name = "bridge" }, -/area/ruin/powered/snow_biodome) -"bv" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/plating/ice, -/area/ruin/powered/snow_biodome) +/area/ruin/unpowered/winter_biodome) "bw" = ( -/obj/machinery/light/small/directional/west{ - brightness = 3 - }, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/structure/flora/bush, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "bx" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) "by" = ( -/obj/machinery/light/directional/west, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/turf/open/floor/plating/grass/lava/purple, +/area/overmap_encounter/planetoid/lava/explored) "bz" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"bA" = ( +/obj/item/pen, +/obj/item/paper_bin, +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/item/pen/solgov, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) "bB" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 10; + pixel_x = 8 + }, +/obj/item/desk_flag/solgov{ + pixel_x = -6 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) "bD" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) "bM" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plating/asteroid/snow, -/area/ruin/powered/snow_biodome) -"bN" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plating/ice, -/area/ruin/powered/snow_biodome) -"dS" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"eb" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"eg" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"gh" = ( -/obj/machinery/light/small/directional/west{ - brightness = 3 +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/paper/stack{ + dir = 1 }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"gz" = ( -/obj/structure/chair/stool, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"hA" = ( -/obj/machinery/light/built/directional/north, -/turf/open/floor/pod/dark{ - initial_gas_mix = "LAVALAND_ATMOS" +/area/ruin/unpowered/winter_biodome/entrance) +"bN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 }, -/area/ruin/powered/snow_biodome) -"qt" = ( -/obj/machinery/door/airlock/silver{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/fans/tiny, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"tl" = ( -/turf/open/floor/pod/light, -/area/ruin/powered/snow_biodome) -"xU" = ( -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"zT" = ( -/obj/machinery/door/airlock/silver{ +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/entrance) +"bY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/ruin/powered/snow_biodome) -"AM" = ( -/obj/structure/table, -/obj/item/pen, -/obj/item/paper, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"Dd" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hooded/wintercoat/science, -/obj/item/clothing/shoes/winterboots, -/obj/item/clothing/gloves/fingerless, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"Ef" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"Ez" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/glass_large, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"HP" = ( -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"HR" = ( -/obj/structure/closet/secure_closet/freezer/fridge/open, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"JZ" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"KS" = ( -/obj/item/chainsaw, -/obj/structure/closet, -/obj/machinery/light/small/directional/east, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"Mp" = ( -/obj/item/clothing/mask/balaclava, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"Oj" = ( -/obj/structure/table, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"PD" = ( -/obj/machinery/door/airlock/hatch{ +/obj/effect/decal/cleanable/blood/splatter, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/fans/tiny, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/entrance) +"cb" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/airalarm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/paper/stack, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"cj" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"cG" = ( +/obj/effect/turf_decal/solgov/wood/top, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"cM" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/cabin) +"cN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/paper/stack{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"cT" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"cU" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/half{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/broken/directional/west, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"cV" = ( +/obj/structure/flora/ash/puce, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, +/area/overmap_encounter/planetoid/lava/explored) +"dd" = ( +/obj/machinery/light/directional/south, +/obj/structure/fluff/hedge/opaque, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"dl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"dn" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/closet/emcloset, +/turf/open/floor/pod/light, +/area/ruin/unpowered/winter_biodome/entrance) +"dq" = ( +/obj/machinery/door/airlock/solgov/glass, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/entrance) +"dC" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"dE" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/three_quarters{ + dir = 4 + }, +/obj/structure/fluff/hedge/opaque, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"dJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"dM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"dO" = ( +/obj/structure/railing/wood, +/turf/open/floor/wood{ + initial_gas_mix = "o2=22;n2=82;TEMP=180"; + name = "bridge" + }, +/area/ruin/unpowered/winter_biodome) +"dS" = ( +/obj/structure/fluff/hedge/opaque, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"dU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/stairs/wood{ + dir = 4 + }, +/area/ruin/unpowered/winter_biodome) +"eb" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"eg" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"ek" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/gun/ballistic/automatic/pistol/solgov, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"er" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/emcloset, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"ex" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"eX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"ff" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"fs" = ( +/obj/structure/sign/solgov_seal{ + pixel_y = 32 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, +/area/overmap_encounter/planetoid/lava/explored) +"fE" = ( +/obj/structure/flora/firebush, +/turf/open/floor/plating/grass/lava, +/area/overmap_encounter/planetoid/lava/explored) +"fV" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"gh" = ( +/turf/open/floor/plating/moss, +/area/overmap_encounter/planetoid/lava/explored) +"gt" = ( +/obj/structure/fluff/hedge/opaque, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"gx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"gz" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/half{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/structure/fluff/paper/stack, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"gE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/living_quarters) +"gP" = ( +/obj/machinery/door/airlock/external{ + dir = 4; + req_one_access = list(1,48) + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/pod/light, +/area/ruin/unpowered/winter_biodome/engineering) +"gT" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/half{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"gV" = ( +/obj/machinery/door/airlock/wood, +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"gZ" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/turf_decal/solgov/wood, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"hw" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"hA" = ( +/obj/structure/flora/ausbushes/sparsegrass/hell, +/turf/open/floor/plating/grass/lava, +/area/overmap_encounter/planetoid/lava/explored) +"hD" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/human/corpse/solgov{ + outfit = /datum/outfit/job/solgov/assistant + }, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"hE" = ( +/obj/machinery/door/airlock/solgov{ dir = 4 }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"PK" = ( -/obj/structure/table, -/obj/item/pen, -/obj/item/paper_bin, +/area/ruin/unpowered/winter_biodome/entrance) +"hI" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"hJ" = ( +/obj/machinery/door/airlock/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"QI" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/winter_biodome/cabin) +"iv" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"iA" = ( +/obj/structure/flora/ash/leaf_shroom, +/turf/open/floor/plating/moss, /area/overmap_encounter/planetoid/lava/explored) -"QK" = ( -/obj/structure/table, -/obj/item/storage/fancy/cigarettes/cigpack_carp, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"QN" = ( -/obj/effect/spawner/structure/window, +"iB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"iP" = ( +/obj/machinery/door/airlock/solgov/glass, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/entrance) +"jB" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) -"Sj" = ( -/obj/effect/decal/cleanable/oil, +/area/ruin/unpowered/winter_biodome/engineering) +"jG" = ( +/obj/structure/sign/solgov_seal{ + pixel_y = 32 + }, +/obj/structure/flora/ash, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, +/area/overmap_encounter/planetoid/lava/explored) +"jH" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, +/area/overmap_encounter/planetoid/lava/explored) +"jQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"kb" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/breadslice/plain, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"kj" = ( +/obj/machinery/door/airlock/external{ + dir = 4; + req_one_access = list(1,48) + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"Ub" = ( -/obj/structure/filingcabinet, +/area/ruin/unpowered/winter_biodome/engineering) +"ks" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/half{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/fluff/paper/stack{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"kB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/structure/sign/solgov_seal{ + pixel_y = 0; + pixel_x = 28 + }, +/obj/machinery/suit_storage_unit/open, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"UH" = ( +/area/ruin/unpowered/winter_biodome/engineering) +"kQ" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/closet/crate/secure/plasma, +/obj/item/stack/sheet/mineral/plasma/five, /turf/open/floor/plasteel/white, -/area/ruin/powered/snow_biodome) -"UM" = ( -/obj/machinery/computer/monitor/secret{ +/area/ruin/unpowered/winter_biodome/engineering) +"kT" = ( +/obj/structure/chair/comfy/orange/directional/west, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"kX" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ dir = 1 }, -/turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) -"Wg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"lq" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/half{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/broken/directional/east, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"lF" = ( /turf/closed/wall/r_wall, -/area/ruin/powered/snow_biodome) -"Zq" = ( -/obj/machinery/light/small/directional/south, +/area/ruin/unpowered/winter_biodome/living_quarters) +"lT" = ( +/obj/structure/flora/ash/leaf_shroom, +/turf/open/floor/plating/grass/lava/orange, +/area/overmap_encounter/planetoid/lava/explored) +"lX" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/white, -/area/ruin/powered/snow_biodome) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Wg -Wg -Wg -Wg -PD -Wg -Wg -Wg -Wg -Wg -Wg -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -Wg -Wg -Wg -Wg -Wg -Dd -gh -HP -tl -gh -HP -Ub -Wg -Wg -Wg -Wg -Wg -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa +/area/ruin/unpowered/winter_biodome/engineering) +"lZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"ma" = ( +/obj/structure/table/wood, +/obj/item/paper/crumpled/bloody/winterbiodome, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"mb" = ( +/obj/machinery/door/airlock/solgov, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/living_quarters) +"mq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/pod/light, +/area/ruin/unpowered/winter_biodome/engineering) +"mD" = ( +/obj/effect/turf_decal/solgov/wood/center, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"mX" = ( +/obj/structure/flora/tree/dead_pine, +/turf/open/floor/plating/grass/lava, +/area/overmap_encounter/planetoid/lava/explored) +"nf" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/half{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"nj" = ( +/obj/structure/displaycase{ + start_showpiece_type = /obj/item/gun/ballistic/automatic/powered/gauss/claris; + req_access = list(103) + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"nv" = ( +/obj/effect/turf_decal/solgov/wood/bottom_center, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"nZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"on" = ( +/obj/structure/flora/tree/dead_pine, +/turf/open/floor/plating/grass/lava/orange, +/area/overmap_encounter/planetoid/lava/explored) +"ou" = ( +/obj/machinery/light/directional/east, +/obj/structure/flora/grass/green, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"oK" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/emcloset, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"oR" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/structure/closet/secure_closet/freezer, +/obj/item/reagent_containers/food/snacks/store/bread/plain, +/obj/item/reagent_containers/food/snacks/store/bread/plain, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/item/reagent_containers/food/snacks/grown/cabbage, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"ph" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/statue/snow/snowlegion, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"pr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"pu" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"pD" = ( +/obj/structure/flora/rock/icy, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"pM" = ( +/obj/structure/chair/comfy/orange/old/alt/directional/north, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"pQ" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"pW" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"qj" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/structure/table/wood, +/obj/item/kitchen/knife, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"qr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"qt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/pod/light, +/area/ruin/unpowered/winter_biodome/engineering) +"qw" = ( +/obj/structure/flora/ausbushes/fullgrass/hell, +/turf/open/floor/plating/grass/lava, +/area/overmap_encounter/planetoid/lava/explored) +"qK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"qZ" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/three_quarters{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/machinery/microwave, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"ri" = ( +/obj/structure/flora/grass/both, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"rk" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/living_quarters) +"rm" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/three_quarters{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/firecloset/wall/directional/north, +/obj/structure/fluff/paper/stack, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"rt" = ( +/obj/structure/flora/ausbushes/sparsegrass/hell, +/turf/open/floor/plating/grass/lava/purple, +/area/overmap_encounter/planetoid/lava/explored) +"rw" = ( +/obj/structure/railing/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + initial_gas_mix = "o2=22;n2=82;TEMP=180"; + name = "bridge" + }, +/area/ruin/unpowered/winter_biodome) +"rC" = ( +/obj/effect/turf_decal/solgov/wood/bottom_left, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"rD" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"rJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/stairs/wood{ + dir = 8 + }, +/area/ruin/unpowered/winter_biodome) +"rY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"rZ" = ( +/obj/structure/bed, +/obj/item/bedsheet/blue, +/turf/open/floor/carpet/blue, +/area/ruin/unpowered/winter_biodome/cabin) +"sE" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"sV" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"sX" = ( +/obj/structure/flora/ash/leaf_shroom, +/turf/open/floor/plating/grass/lava/purple, +/area/overmap_encounter/planetoid/lava/explored) +"tg" = ( +/obj/machinery/light/directional/north, +/obj/structure/flora/grass/brown, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"tl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"ts" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"tC" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"tO" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"up" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"uH" = ( +/obj/machinery/door/airlock/solgov, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/living_quarters) +"uI" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"uR" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/wood, +/obj/item/paper/pamphlet/biodomelore, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) +"uX" = ( +/obj/structure/flora/tree/pine, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"uY" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters, +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"vk" = ( +/obj/structure/table/wood, +/obj/item/spacecash/bundle/smallrand, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"vo" = ( +/obj/machinery/door/airlock/external{ + dir = 4; + req_one_access = list(1,48) + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/engineering) +"vr" = ( +/obj/machinery/light/small/directional/west{ + brightness = 3 + }, +/turf/open/floor/carpet/blue, +/area/ruin/unpowered/winter_biodome/cabin) +"vQ" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) +"wt" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"wv" = ( +/obj/structure/flora/ausbushes/genericbush/hell, +/turf/open/floor/plating/grass/lava, +/area/overmap_encounter/planetoid/lava/explored) +"wC" = ( +/obj/structure/sauna_oven, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"wO" = ( +/turf/open/floor/plating/grass/lava, +/area/overmap_encounter/planetoid/lava/explored) +"xp" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/half{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/fluff/paper/stack{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"xv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"xK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood{ + initial_gas_mix = "o2=22;n2=82;TEMP=180"; + name = "bridge" + }, +/area/ruin/unpowered/winter_biodome) +"xT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"xU" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"yb" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"yf" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/item/papercutter{ + pixel_x = 3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) +"yg" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"yn" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"yY" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat/solgov, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/entrance) +"zf" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/unpowered/winter_biodome/living_quarters) +"zg" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"zm" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/three_quarters{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"zG" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"zJ" = ( +/obj/structure/flora/firebush, +/turf/open/floor/plating/grass/lava/orange, +/area/overmap_encounter/planetoid/lava/explored) +"zT" = ( +/obj/structure/flora/grass/brown, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Ac" = ( +/obj/structure/flora/grass/both, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Aq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/gibs/up, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/entrance) +"Ar" = ( +/obj/structure/flora/bush, +/obj/structure/railing/corner/wood, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"AB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/entrance) +"AM" = ( +/obj/structure/flora/ausbushes/fernybush/hell, +/turf/open/floor/plating/grass/lava/orange, +/area/overmap_encounter/planetoid/lava/explored) +"AU" = ( +/obj/structure/table/wood, +/obj/item/desk_flag/solgov, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Bk" = ( +/obj/structure/chair/office, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"Bq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Bw" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"BA" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/unpowered/winter_biodome/entrance) +"BK" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/item/paper/pamphlet/biodomelore, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"BS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"BU" = ( +/obj/structure/railing/corner/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plasteel/stairs/wood{ + dir = 8 + }, +/area/ruin/unpowered/winter_biodome) +"BV" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Cj" = ( +/obj/structure/flora/ash/fern, +/turf/open/floor/plating/grass/lava/purple, +/area/overmap_encounter/planetoid/lava/explored) +"CF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"CI" = ( +/obj/structure/railing/corner/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"CJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"CP" = ( +/obj/structure/flora/ash/space, +/turf/open/floor/plating/moss, +/area/overmap_encounter/planetoid/lava/explored) +"Dd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/unpowered/winter_biodome/engineering) +"De" = ( +/obj/structure/flora/bush, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Dt" = ( +/turf/closed/wall/r_wall, +/area/ruin/unpowered/winter_biodome/entrance) +"Dw" = ( +/obj/machinery/door/airlock/external, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/entrance) +"DO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"DX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/gibs/torso, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/entrance) +"Ef" = ( +/obj/structure/rack, +/obj/item/towel, +/obj/item/towel, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"Eh" = ( +/obj/structure/table/wood, +/obj/item/paper_bin/bundlenatural{ + pixel_y = 7 + }, +/obj/item/pen/solgov, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Ez" = ( +/obj/structure/flora/ausbushes/grassybush/hell, +/turf/open/floor/plating/grass/lava/orange, +/area/overmap_encounter/planetoid/lava/explored) +"EF" = ( +/obj/structure/railing/wood, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/wood{ + initial_gas_mix = "o2=22;n2=82;TEMP=180"; + name = "bridge" + }, +/area/ruin/unpowered/winter_biodome) +"EG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"EN" = ( +/obj/machinery/light/small/broken/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/pod/light, +/area/ruin/unpowered/winter_biodome/entrance) +"Fw" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"FD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"FL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/structure/sign/solgov_seal{ + pixel_y = 0; + pixel_x = 28 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"FY" = ( +/obj/structure/railing/corner/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Gf" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"Gn" = ( +/obj/item/toy/plush/moth/snow{ + pixel_y = 3 + }, +/obj/structure/table/wood, +/obj/item/candle{ + pixel_x = -10; + pixel_y = 10 + }, +/obj/item/candle{ + pixel_x = 11; + pixel_y = 10 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Go" = ( +/obj/structure/flora/tree/pine, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Gq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/sign/solgov_flag{ + pixel_y = 29 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"Gx" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"GF" = ( +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"GK" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/plating/ice, +/area/ruin/unpowered/winter_biodome) +"GS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"Hd" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters, +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Hh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"Hi" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/unpowered/winter_biodome) +"Hj" = ( +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"Hq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/living_quarters) +"HG" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/three_quarters{ + dir = 4 + }, +/obj/structure/fluff/hedge/opaque, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"HP" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"HR" = ( +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"ID" = ( +/obj/structure/flora/tree/pine/xmas, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"IY" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat/solgov, +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"Jl" = ( +/obj/machinery/light/small/directional/west{ + brightness = 3 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"Jm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"JH" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/structure/table/wood, +/obj/item/cutting_board, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"JK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"JZ" = ( +/obj/structure/flora/tree/dead/tall/grey, +/turf/open/floor/plating/grass/lava/purple, +/area/overmap_encounter/planetoid/lava/explored) +"Ke" = ( +/obj/structure/flora/tree/dead, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Kj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"Kn" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Kq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"KC" = ( +/obj/item/coin/gold, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"KI" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"KS" = ( +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"Lf" = ( +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Lt" = ( +/obj/effect/turf_decal/solgov/wood/bottom_right, +/obj/structure/chair/office, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"LM" = ( +/obj/machinery/door/airlock/solgov/glass{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/engineering) +"Mf" = ( +/obj/structure/railing/corner/wood, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Ml" = ( +/obj/effect/turf_decal/solgov/wood/top_right, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Mn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Mp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/airlock/solgov/glass{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/engineering) +"MB" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/structure/closet/emcloset/wall/directional/south, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) +"MJ" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/half{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/gibs/up, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"ML" = ( +/obj/machinery/airalarm/directional/west, +/turf/open/floor/pod/light, +/area/ruin/unpowered/winter_biodome/entrance) +"MU" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Nc" = ( +/obj/effect/turf_decal/solgov/wood/center_right, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/broken/directional/east, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Nk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Nl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/sofa/blue/right/directional/west, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Np" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet/blue, +/area/ruin/unpowered/winter_biodome/cabin) +"Nr" = ( +/obj/structure/flora/ausbushes/fullgrass/hell, +/turf/open/floor/plating/grass/lava/purple, +/area/overmap_encounter/planetoid/lava/explored) +"NF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/broken/directional/west, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"Oj" = ( +/obj/structure/flora/ash/cap_shroom, +/turf/open/floor/plating/moss, +/area/overmap_encounter/planetoid/lava/explored) +"Op" = ( +/obj/structure/chair/comfy/orange/old/alt/directional/south, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Os" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/splatter, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) +"Oz" = ( +/obj/structure/sign/solgov_flag{ + pixel_y = 29 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/living_quarters) +"OB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"OL" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"OR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"OS" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) +"OU" = ( +/obj/structure/chair/sofa/blue/left/directional/west, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Pa" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/three_quarters{ + dir = 1 + }, +/obj/structure/sink/kitchen{ + pixel_y = 15 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Po" = ( +/obj/machinery/computer/monitor/solgov{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/engineering) +"Pr" = ( +/obj/machinery/light/small/broken/directional/south, +/obj/structure/closet/firecloset, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"Py" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"PD" = ( +/obj/structure/flora/ash, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, +/area/overmap_encounter/planetoid/lava/explored) +"PH" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"PK" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/unpowered/winter_biodome/engineering) +"PU" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/half{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Qa" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Qc" = ( +/obj/structure/flora/grass/brown, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Qh" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/engineering) +"Qk" = ( +/obj/machinery/light/directional/west, +/obj/structure/flora/grass/green, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"QI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/living_quarters) +"QJ" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/half{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/broken/directional/north, +/obj/structure/fluff/paper/stack{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"QK" = ( +/turf/closed/mineral/random/volcanic, +/area/overmap_encounter/planetoid/lava/explored) +"QN" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"QO" = ( +/obj/structure/curtain/cloth, +/turf/open/floor/carpet/blue, +/area/ruin/unpowered/winter_biodome/cabin) +"QQ" = ( +/obj/structure/sink/kitchen{ + dir = 4 + }, +/obj/item/reagent_containers/glass/bucket/wooden{ + pixel_x = 3; + pixel_y = 9 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"Ra" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/big_legion, +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood{ + initial_gas_mix = "o2=22;n2=82;TEMP=180"; + name = "bridge" + }, +/area/ruin/unpowered/winter_biodome) +"Rh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Rs" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/half, +/obj/structure/fluff/hedge/opaque, +/obj/machinery/light/broken/directional/south, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Rt" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters, +/obj/structure/fluff/hedge/opaque, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"RE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"RK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"RN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/engineering) +"RR" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) +"Sj" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, +/area/overmap_encounter/planetoid/lava/explored) +"Ss" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"ST" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"SY" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/three_quarters, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Tf" = ( +/turf/open/floor/plating/grass/lava/orange, +/area/overmap_encounter/planetoid/lava/explored) +"Tj" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/entrance) +"Tq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"TH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"TQ" = ( +/obj/machinery/door/airlock/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"Ub" = ( +/turf/open/floor/plating/asteroid/basalt/lava, +/area/overmap_encounter/planetoid/lava/explored) +"Uo" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Up" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/closet/firecloset, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Uv" = ( +/obj/effect/turf_decal/solgov/wood/center_left, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Uz" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"UH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"UJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/ruin/unpowered/winter_biodome/engineering) +"UM" = ( +/obj/machinery/door/airlock/solgov{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/entrance) +"UT" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"UW" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) +"Vg" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Vk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Vm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/living_quarters) +"VG" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"VK" = ( +/obj/structure/railing/corner/wood, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/stairs/wood{ + dir = 4 + }, +/area/ruin/unpowered/winter_biodome) +"VP" = ( +/obj/effect/turf_decal/corner/opaque/solgovblue/diagonal, +/obj/machinery/light/directional/west, +/obj/item/ammo_box/magazine/pistol556mm{ + pixel_x = 7 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"VY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"Wc" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/pod/light, +/area/ruin/unpowered/winter_biodome/entrance) +"Wg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/grass/snow, +/area/ruin/unpowered/winter_biodome) +"Wh" = ( +/obj/machinery/door/airlock/external{ + dir = 4; + req_one_access = list(1,48) + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/pod/dark, +/area/ruin/unpowered/winter_biodome/engineering) +"WQ" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"Xq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Xu" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"XO" = ( +/obj/machinery/light/directional/south, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug/tea{ + pixel_y = 3; + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/mug/tea{ + pixel_x = 10 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"XZ" = ( +/obj/machinery/door/window/northleft, +/obj/structure/curtain, +/obj/machinery/shower{ + dir = 1; + layer = 3 + }, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/sauna) +"Yi" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/half{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/fluff/paper/stack{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"Yv" = ( +/turf/open/floor/carpet/blue, +/area/ruin/unpowered/winter_biodome/cabin) +"YH" = ( +/obj/structure/flora/ausbushes/fullgrass/hell, +/turf/open/floor/plating/grass/lava/orange, +/area/overmap_encounter/planetoid/lava/explored) +"Zc" = ( +/obj/structure/flora/ash/stem_shroom, +/turf/open/floor/plating/moss, +/area/overmap_encounter/planetoid/lava/explored) +"Zo" = ( +/obj/structure/flora/ash/cap_shroom, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, +/area/overmap_encounter/planetoid/lava/explored) +"Zq" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/unpowered/winter_biodome/cabin) +"Zw" = ( +/obj/effect/turf_decal/corner/opaque/solgovgold/half, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/obj/structure/fluff/paper/stack{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ruin/unpowered/winter_biodome/living_quarters) +"ZA" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, +/turf/open/floor/plating, +/area/ruin/unpowered/winter_biodome/engineering) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +wO +wO +wO +wO +hA +by +by +by +Nr +by +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +wO +wO +wO +wv +wO +by +by +by +by +by +by +JZ +by +by +Cj +by +by +by +by +by +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +wO +wO +wO +hA +wO +wO +wO +wO +hA +wO +by +Nr +by +by +by +by +by +by +by +by +by +rt +by +by +by +by +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +wO +wO +wO +qw +wO +wO +fE +wO +qw +wO +wO +aC +aC +aC +aC +aC +aC +gP +aC +aC +aC +aC +aC +aC +by +sX +by +by +by +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +wO +wO +wO +wO +qw +wO +wO +wO +wO +wO +wO +Ub +aC +bz +Hj +Kj +aC +oK +qt +Pr +aC +kQ +lX +Gf +aC +by +by +rt +by +by +Tf +AM +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(7,1,1) = {" +aa +wO +wO +hA +wO +wO +wO +qw +wO +wO +QK +Ub +Ub +aC +dC +UW +dM +aC +VY +qt +qK +aC +OL +rD +uI +aC +by +Nr +Cj +by +by +by +Tf +Tf +Tf +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +qw +wO +wO +mX +hA +wO +QK +QK +QK +QK +Ub +Ub +aC +BS +rY +ao +aC +kB +mq +FL +aC +GS +GF +jB +aC +by +by +by +by +by +by +Tf +Tf +Tf +Tf +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +wO +wO +wO +wO +wO +wO +QK +QK +QK +QK +QK +ZA +UJ +DO +PK +kj +PK +PK +vo +PK +PK +Wh +PK +HR +aC +by +by +by +JZ +by +Nr +Tf +Ez +Tf +Tf +YH aa aa -Wg -Wg -Wg -ak +aa +aa +aa +"} +(10,1,1) = {" +aa +wO +wO +wO +wv +wO +QK +QK +QK +QK +QK +bl +bl +PK +PK +PK +JK +NF +dl +Qh +qr +Jl +Hh +PK +PK +PK +bl +bl by -ak -Wg +by +by +Tf +Tf +Tf +Tf +Tf +Tf +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +wO +qw +wO +QK +QK +QK +QK +QK +bl +bl +bl +zT +ax +ax +PK +IY +IY +fV +aA +bA +Bk +Po +PK +ax +ax +ax +bl +bl +bl +by +Tf +Tf +zJ +Tf +Tf +Tf +Tf +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +wO +QK +QK +QK +QK +QK +bl +bl +ax +ac +ax +ax +HP +PK +bD +bD +PK +LM +PK +bD +bD +PK +ax +at +ax +Qk +ax +bl +bl +Tf +YH +Tf +YH +Tf +Tf +Tf +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +QK +QK +QK +QK +bl +bl +aw +aw +ax +Ar +nZ +Uo +eg +af +ax +PK +RN Dd +ax +bw +eg +ax +ax +af +ax +ax +ax +bl +bl +Tf +Tf +Tf +Tf +Tf +Tf +Tf +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +QK +QK +QK +QK +bl +aw +aw +aw +aw +al +aq +De +af +ax +ax +PK +Mp +PK +ax +ax +ax +yn +ax +ax +ax +HP +ax +ax +bl +AM +Tf +Tf +on +Tf +Ez +Tf +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +QK +QK +QK +QK +bl +bl +tg +ax +aw +aw +al +dO +aw +ax +ax +HP +ax +jQ +Jm +Ke +Qc +cT +ax +ax +ax +ax +ax +ax +Uz +bl +bl +Tf +Tf +Tf +Tf +Tf +Tf +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +QK +QK +QK +QK +bl +ax +ax +ax +ax +ae +al +rw +aw +aw +aw +ax +ax +up +ax +ax +ax +pD +bw +ax +yn +af +ax +ax HP +ax +bl +Tf +lT +Tf +YH +Tf +Tf +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +QK +QK +QK +QK +bl +ax +ax +ax HP -tl -PK -gz -UM -Wg +ax +ah +as +aw +aw +aw +aw +aw +xT +EG +EG +EG +Nk ak ak ak -Wg -Wg -Wg -QI -QI +ak +Bq +ax +ax +ax +bl +fs +Sj +Sj +Tf +Tf +zJ aa aa aa "} -(4,1,1) = {" +(18,1,1) = {" aa aa +QK +QK +QK +bl +bl +at +ax +ax +ax +ax +aP +CI +ax +ax +aw +aw +aw +aw +ax +bw +Go +CF +nZ +Uo +PH +ax +aO +ax +zT +ax +bl +Sj +Zo +Sj +Sj +Tf +Tf +Tf aa -Wg -Wg -ak -aC -ak -ak -ak -Wg -QN -QN -QN -qt -QN -QN -QN -Wg -ak -ak -ak -ak -ak -Wg -Wg -QI -QI +aa +"} +(19,1,1) = {" +aa +aa +QK +QK +QK +bl +ax +ax +ax +xU +xU +xU +xU +xU +xU +zT +ax +aw +aw +aw +aw +ax +Mf +dU +VK +eX +ax +ax +aO +ax +BA +BA +BA +BA +Sj +Zo +Sj +Tf +Tf +Tf aa aa "} -(5,1,1) = {" +(20,1,1) = {" +aa +QK +QK +QK +QK +bl +ax +HP +ax +cM +vr +ai +UH +dS +xU +xU +zg +at +aw +aw +aw +aw +al +xK +bv +ax +ax +ax +uX +Uz +BA +yY +ad +BA +PD +jH +Sj +Sj +AM +Tf aa aa -Wg -Wg -ao -ao -ak -aI -ak -ak -by +"} +(21,1,1) = {" +aa +QK +QK +QK +QK +bl +tg +ax +ax +xU +aj +aj +Zq +OB +dd +xU +ax +ax +aw +aw +aw +aw +al +av +bv +aw +ax +ax +aO +ax +BA +vQ az -ak -aB -ak -ak -ak -aI -by -ak -ak -ak -ak -ak -ak -Wg -Wg -QI -QI +BA +Sj +Sj +PD +Sj +Sj +Sj +aa +aa +"} +(22,1,1) = {" +aa +QK +QK +QK +QK +bl +ax +ax +af +xU +zG +an +an +RK +ay +xU +ax +PH +Lf +aw +aw +aw +al +Ra +EF +aw +aw +bw +aO +af +BA +Os +RR +BA +Dt +Dt +Dt +Dt +Zo +Sj +aa +aa +"} +(23,1,1) = {" +aa +QK +QK +QK +QK +bl +ax +ax +ax +xU +kb +vk +ma +RE +Yv +cM +ax +ax +ax +ax +Hi +HP +al +av +bv +aw +aw +ax +aO +ax +dq +DX +Aq +aQ +Dt +ML +dn +Dt +Sj +Sj aa -"} -(6,1,1) = {" aa +"} +(24,1,1) = {" aa -Wg -bv -ao -ao -ao -ao -ak -aI -ak -ak -ak -ak -ak -ak -ak -ak -ak -aQ -ak -ak +QK +QK +QK +QK +bl +ax +ax +PH +xU +aj +nj +kT +xv +Np +hJ +aJ +Ac ak -az ak ak -Wg -QI -QI +bn +FY +rJ +BU +eX +aw +aw +Ss +Rh +iP +AB +bY +bN +Dw +aD +EN +Wc +Sj +Sj +aa aa "} -(7,1,1) = {" +(25,1,1) = {" aa +QK +QK +QK +QK +bl +at +ax +ax +xU +xU +Gq +hD +aG +WQ +xU +Fw +ax +ax +tO Wg -Wg -ap -ak -ao -ao -ao -ao -ak -ak -ak -ak -ak -az -ak -aC -ak -ak -aI +bx +tC +gx +gx +KI +aw +aw +aw +ae +BA +uR aI -ak -ak -ak -ak -bM -Wg -Wg -QI +OS +Dt +Dt +Dt +Dt +Sj +Sj +aa aa "} -(8,1,1) = {" +(26,1,1) = {" aa -Wg -ak -ak -ak -ak -ak -ao -ao -ao -ao -ak -ak -ak -ak -ak -ak -ak +QK +QK +QK +QK +bl +zg +ax +ax +xU +rZ +QO +FD ap -aI -ak -aQ -ak -ak -ak -az -ak -Wg -QI -QI -"} -(9,1,1) = {" +XO +xU +ax +ax +ax +pr +PH +ax +ax +af +ax +ax +ax +aw +aw +aw +BA +aB +ar +Tj +MB +Dt +cV +Sj +aR +Sj +aa aa -Wg -Wg -Wg -ak -az -ak -ak -ao -ao -ao -ao -ao -ak -ak -ak -ak -ak -ak -ak -ak -aC -ak -ak -ak -ak -ak -Wg -hA -QI "} -(10,1,1) = {" -Wg -Wg +(27,1,1) = {" +aa +QK +QK +QK +QK +bl +ax af -Wg -ak -ak -ak -ak -ak -ak -ak -ao -ao -ao -ao -ak -aI -az -ak -ak -ak -ak -ak -aI -ak -ak -ak -Wg -QI -QI +ax +xU +xU +rZ +xU +Py +wt +xU +ax +ax +HP +pr +ax +ax +ax +Uz +yg +TQ +yg +yg +aw +GK +BA +aH +yf +aN +bM +Dt +PD +Sj +Sj +Sj +aa +aa +"} +(28,1,1) = {" +aa +aa +QK +QK +QK +bl +ax +ax +ax +MU +xU +xU +xU +xU +xU +xU +zg +ax +ax +pr +bw +ax +ax +ax +yg +QN +XZ +yg +aw +aw +BA +BA +BA +UM +hE +Dt +Dt +Sj +Sj +Sj +aa +aa "} -(11,1,1) = {" -Wg -ac -af -aq -aq -aq -aq -aq -aq -aq -bD -ao -ao -ao -ao -ao -ak -ak +(29,1,1) = {" +aa +aa +QK +QK +QK bl bl -ak -aI -ak -ak -ak -Wg -Wg -Wg -Wg +zT +ax +ax +ax +ax +eg +ax +ax +ax +ax +zT +ax +pr +ax +ax +HP +zT +yg +yg +yg +yg +yg +aw +aw +aw +zf +Vk +rk QI +lF +jG +jH +Sj +aa +aa "} -(12,1,1) = {" -Wg -ad -af -ar -bw -at -aD -at -aL -aq -ak -az -ak -ao -ao -ao -ao -ao +(30,1,1) = {" +aa +aa +QK +QK +QK +QK bl +ax +ax +ax +ax +bw +ax +ae +ax +ID +ax +ax +ax +pr +ax +ax +yg +yg +yg +QQ +KS +Ef +yg +ax +aw +aw +zf +PU +Xu +am +lF +Sj +Sj +Sj +aa +aa +"} +(31,1,1) = {" +aa +aa +QK +QK +QK +QK bl -ak -ak -ak -az -bM -Wg -Dd -Dd +ax +ax +HP +af +ax +ax +ax +ax +ax +ax +ax +HP +dJ +ri Wg -QI +aM +tl +gV +ts +KS +wC +yg +ax +HP +aw +zf +nf +TH +Rs +lF +Zo +Zo +Sj +aa +aa "} -(13,1,1) = {" -Wg -ae -af -aq -au -au -aq -at -bz -aq -ak -ak -ak -ao -ao -ao -ao -ao +(32,1,1) = {" +aa +aa +QK +QK +QK +QK bl bl -ao -ak -ak -ak -aI -Wg -Mp -dS -Wg -QI -"} -(14,1,1) = {" -Wg -af -al -aq -aq -aq -aE -at +zg +ax at -aq -ak -ak -aC -ak -ao -ak -ao -ao +ax +ax +PH +ax +ax +af +ax +ax +ph +ae +ax +yg +yg +yg +ex +KC +yg +yg +ax +Uz +zf +zf +xp +UT +Rt +lF +Sj +Sj +Sj +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +QK +QK +QK +QK +bl +ae +ax +ax +ax +ax +ax +yn +ax +ax +ax +bw +pr +ax +ax +ax +yn +yg +cj +Gx +yg +ax +ax +ax +zf +dE +kX +aE +lF +lF +Sj +Sj +Zo +QK +aa +"} +(34,1,1) = {" +aa +aa +aa +QK +QK +QK +QK bl bl -ao -ao -aI -ak -ak -Wg -tl -tl -Wg -QI +ax +ax +HP +zT +ax +ax +VG +ax +ax +ax +pr +ax +ax +ax +VG +yg +yg +yg +yg +ax +PH +zf +zf +QJ +Xq +Zw +lF +PD +aR +Sj +Sj +QK +aa "} -(15,1,1) = {" -Wg -ae -af -aq -av -at -at -aH -aM -aO -ap -ak -ak -ak -ak -ak -ak -ao +(35,1,1) = {" +aa +aa +aa +QK +QK +QK +QK +QK bl bl -ao -ao -ak -ak -ak -aO -tl -tl -Ez -QI +ax +VG +ax +ax +HP +zf +Mn +Mn +Mn +gE +Mn +Mn +Mn +zf +ax +ax +ax +ou +ax +zf +zf +rm +ST +hw +SY +lF +Sj +Sj +Sj +QK +QK +aa "} -(16,1,1) = {" -Wg -ag -ah -as -aw -aA -aA -at -aM -aP -ak -ak -aQ -ak -ak -az -ak -ak +(36,1,1) = {" +aa +aa +aa +QK +QK +QK +QK +QK +QK bl bl -ak -ao -ao -ak -ak -aP -tl -tl -aP -QI -"} -(17,1,1) = {" -Wg -ah +bl +ax +ax +ax +zf +gt +gt +Op +pu +pM +gt +gt +zf +Gn af -aq ax -aw -aF -at -at -aq -ak -aI -ak -ak -ak -ak -ak -ak -ak -ak -ak -ao -ao -ao -ak -Wg -tl -tl -Wg -QI -"} -(18,1,1) = {" -Wg -Wg -am -aq -av -at -aG -at -bz -aq -aR -ak -ak -ak -ak -ak -ak -ak -aC -ak -ak -ak -ao -ao -ao -Wg -HP -dS -Wg -QI +zf +zf +zf +bs +BV +pQ +uY +lF +lF +Sj +Sj +cV +QK +QK +aa "} -(19,1,1) = {" -Wg -ai -UH -aq -av -bx -aH -at -aN -aq -ak -ak -ak -az -ak -ak -ak -ak -ak -ak -ak -ak -ak -ao -bN -Wg +(37,1,1) = {" +aa +aa +aa +aa QK -AM -Wg -QI +QK +QK +QK +QK +QK +QK +zf +zf +zf +zf +zf +Up +eb +Vg +Kq +yb +eb +er +zf +zf +zf +zf +zf +HG +cU +hI +iv +au +lF +lF +Sj +jH +Sj +Sj +QK +QK +aa "} -(20,1,1) = {" -Wg -aj -Zq -aq -aq -aq -aq -aq -aq -aq -bD -ak -ak -ak -ak -aI -ak -az -ak -ak -ak -ak -az -ak -ao -Wg -Wg -Wg -Wg -QI +(38,1,1) = {" +aa +aa +aa +aa +QK +QK +QK +QK +QK +QK +QK +lF +oR +VP +qZ +zf +zf +zf +zf +ag +zf +zf +zf +zf +Oz +gz +MJ +gT +sE +pW +Yi +Qa +lF +lF +Sj +Sj +Zo +Sj +QK +QK +QK +aa "} -(21,1,1) = {" -Wg -Wg -an -Wg -ay -ak -ak -ak -ak -ak -ak -ak -ak -ak -aC -ak -ak -ak -ak -ap -ak -ak -ak -ak -ak -ak -ak -Wg -QI -QI +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +QK +QK +QK +QK +QK +lF +JH +ek +aF +CJ +Tq +lZ +gZ +Uv +rC +Vm +cb +uH +Hq +cN +Kn +ks +aL +ff +lF +lF +lF +Sj +Zo +Sj +Sj +Sj +QK +QK +aa +aa "} -(22,1,1) = {" +(40,1,1) = {" aa -Wg -Wg -Wg -ak -ak -aI -ak -ap -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -ak -aI -ak -ak -aQ -ak -ak -ak -Wg -hA +aa +aa +aa +aa +aa +aa +QK +QK +QK +QK +lF +qj +sV +zm +OR +AU +BK +cG +mD +nv +iB +Bw +mb QI +lq +Hd +lF +lF +lF +lF +Sj +Sj +aR +Sj +Sj +Sj +QK +QK +QK +aa +aa "} -(23,1,1) = {" +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +QK +QK +QK +lF +lF +lF +Pa +Nl +bb +OU +Ml +Nc +Lt +Eh +bB +lF +lF +lF +lF +lF +gh +gh +iA +Sj +jH +Sj +Sj +PD +QK +QK +QK +QK +aa aa -Wg -ak -ak -az -ak -aJ -ak -ak -ak -ak -ak -ak -az -ak -aQ -ak -aC -ak -aI -ak -az -aI -aI -ak -ak -ak -Wg -QI -QI "} -(24,1,1) = {" +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +QK +QK +QK +QK +lF +lF +lF +lF +lF +lF +lF +lF +lF +lF +lF +gh +Oj +gh +gh +gh +gh +gh +Sj +Sj +cV +QK +QK +QK +QK +QK +aa aa -Wg -Wg -ak -ak -aB -ak -ak -aC -ak -ak -ak -ak -aI -ak -ap -ak -ak -ak -ak -ak -ak -aI -aI -ak -bM -Wg -Wg -QI aa "} -(25,1,1) = {" +(43,1,1) = {" aa aa -Wg -ap -ak -ak -ak -ak -ak -aQ -ak -ak -ak -aI -ak -ak -ak -ak -aQ -ak -ak -aB -ak -ak -aC -ak -Wg -QI -QI aa -"} -(26,1,1) = {" aa aa -Wg -Wg -ak -ak -az -ak -ak -ak -bB -ak -ak -ak -ak -ak -az -ak -bB -ak -ak -az -ak -ak -ak -Wg -Wg -QI aa aa -"} -(27,1,1) = {" aa aa aa -Wg -Wg -ak -ak -ak -ak -ak -Wg -QN -QN -QN -zT -QN -QN -QN -Wg -ak -ak -ak -ak -ak -Wg -Wg -QI -QI +QK +QK +QK +QK +QK +QK +QK +CP +gh +Oj +gh +gh +gh +gh +gh +gh +Zc +gh +gh +Oj +gh +Sj +QK +QK +QK +QK +QK +QK +aa +aa aa aa "} -(28,1,1) = {" +(44,1,1) = {" aa aa aa aa -Wg -Wg -Wg -ak -bB -ak -Wg -eg -HP -tl -tl -tl -Sj -xU -Wg -ak -bB -ak -Wg -Wg -Wg -QI -QI +aa +aa +aa +aa +aa +aa +aa +aa +QK +QK +QK +QK +QK +QK +QK +QK +gh +Zc +gh +gh +Oj +gh +gh +gh +gh +QK +QK +QK +QK +QK +QK +QK +QK +aa +aa aa aa aa "} -(29,1,1) = {" +(45,1,1) = {" aa aa aa aa aa aa -Wg -Wg -Wg -Wg -Wg -HR -eb -gz -Oj -JZ -KS -Ef -Wg -Wg -Wg -Wg -Wg +aa +aa +aa +aa +aa +aa +aa +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK aa aa aa @@ -1303,7 +4595,7 @@ aa aa aa "} -(30,1,1) = {" +(46,1,1) = {" aa aa aa @@ -1314,15 +4606,27 @@ aa aa aa aa -Wg -Wg -Wg -Wg -Wg -Wg -Wg -Wg -Wg +aa +aa +aa +aa +aa +aa +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK +QK aa aa aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm index 91b482df849f..44988210b7e4 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm @@ -211,7 +211,7 @@ }, /area/ruin/unpowered/syndicate_outpost) "Ts" = ( -/mob/living/simple_animal/hostile/syndicate/ranged{ +/mob/living/simple_animal/hostile/human/syndicate/ranged{ dir = 8; health = 125; name = "Syndicate Radio Operative" diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm index ea2d614717da..943b1dccf126 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm @@ -891,7 +891,6 @@ "zb" = ( /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner{ loot = list(/obj/item/melee/transforming/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/keycard/gatedrop/lavacanyon); - crusher_loot = list(/obj/item/melee/transforming/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/crusher_trophy/miner_eye,/obj/item/keycard/gatedrop/lavacanyon) }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/overmap_encounter/planetoid/cave/explored) diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm index 505ae3600d31..b837eff979f7 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm @@ -35,7 +35,7 @@ /turf/open/floor/plastic, /area/ruin/rockplanet/nanotrasen) "aQ" = ( -/mob/living/simple_animal/hostile/nanotrasen, +/mob/living/simple_animal/hostile/human/nanotrasen, /obj/machinery/door/firedoor, /obj/effect/turf_decal/siding/white{ dir = 1 @@ -339,7 +339,7 @@ /turf/open/floor/engine, /area/ruin/rockplanet/nanotrasen) "ff" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg, /obj/effect/turf_decal/siding/white{ dir = 4 }, @@ -1347,7 +1347,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/oil, /obj/machinery/light/small/broken/directional/north, -/mob/living/simple_animal/hostile/pirate/ranged/space, +/mob/living/simple_animal/hostile/human/pirate/ranged/space, /turf/open/floor/plating, /area/ruin/rockplanet/nanotrasen) "vz" = ( @@ -1462,7 +1462,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/mob/living/simple_animal/hostile/nanotrasen, +/mob/living/simple_animal/hostile/human/nanotrasen, /turf/open/floor/wood{ icon_state = "wood-broken7" }, @@ -1728,7 +1728,7 @@ /turf/open/floor/plasteel/white, /area/ruin/rockplanet/nanotrasen) "CJ" = ( -/mob/living/simple_animal/hostile/pirate/melee/space, +/mob/living/simple_animal/hostile/human/pirate/melee/space, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -1767,7 +1767,7 @@ /turf/open/floor/plasteel, /area/ruin/rockplanet/nanotrasen) "Dt" = ( -/mob/living/simple_animal/hostile/pirate/ranged/space, +/mob/living/simple_animal/hostile/human/pirate/ranged/space, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -2036,7 +2036,7 @@ /obj/effect/turf_decal/corner/opaque/red/border{ dir = 8 }, -/mob/living/simple_animal/hostile/nanotrasen/ranged, +/mob/living/simple_animal/hostile/human/nanotrasen/ranged, /turf/open/floor/plasteel/dark, /area/ruin/rockplanet/nanotrasen) "Hs" = ( @@ -2069,7 +2069,7 @@ }, /area/ruin/rockplanet/nanotrasen) "Ie" = ( -/mob/living/simple_animal/hostile/pirate/melee/space, +/mob/living/simple_animal/hostile/human/pirate/melee/space, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -2697,7 +2697,7 @@ /turf/open/floor/plasteel/rockvault, /area/ruin/rockplanet/nanotrasen) "Vn" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged, +/mob/living/simple_animal/hostile/human/nanotrasen/ranged, /obj/effect/turf_decal/industrial/warning{ dir = 1 }, @@ -2744,9 +2744,8 @@ /turf/open/floor/plasteel/tech/grid, /area/ruin/rockplanet/nanotrasen) "WY" = ( -/obj/machinery/computer/communications{ +/obj/structure/frame/computer{ dir = 1; - req_access = null }, /obj/effect/turf_decal/corner/opaque/red/diagonal, /turf/open/floor/plasteel/tech/techmaint, @@ -2835,7 +2834,7 @@ /turf/open/floor/plating/dirt/jungle/lit, /area/overmap_encounter/planetoid/rockplanet/explored) "Ze" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg, /obj/effect/turf_decal/corner/transparent/purple/border{ dir = 1 }, @@ -2908,7 +2907,7 @@ /obj/structure/railing{ dir = 8 }, -/mob/living/simple_animal/hostile/nanotrasen/ranged/assault, +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault, /turf/open/floor/plasteel/dark, /area/ruin/rockplanet/nanotrasen) "ZZ" = ( diff --git a/_maps/RandomRuins/RockRuins/rockplanet_dangerpod.dmm b/_maps/RandomRuins/RockRuins/rockplanet_dangerpod.dmm index dd6bb43fd913..cf91b07b4072 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_dangerpod.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_dangerpod.dmm @@ -8,7 +8,7 @@ /turf/open/floor/pod/dark, /area/overmap_encounter/planetoid/rockplanet/explored) "h" = ( -/mob/living/simple_animal/hostile/skeleton/plasmaminer/jackhammer, +/mob/living/simple_animal/hostile/human/skeleton/plasmaminer/jackhammer, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/pod/dark, /area/overmap_encounter/planetoid/rockplanet/explored) diff --git a/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm b/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm index 088015c83b13..83e80f79a4a3 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm @@ -114,7 +114,7 @@ /turf/open/floor/plating/asteroid/rockplanet/lit, /area/overmap_encounter/planetoid/rockplanet/explored) "sP" = ( -/mob/living/simple_animal/hostile/skeleton/plasmaminer, +/mob/living/simple_animal/hostile/human/skeleton/plasmaminer, /turf/open/floor/plating/asteroid/rockplanet/lit, /area/overmap_encounter/planetoid/rockplanet/explored) "tN" = ( diff --git a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm new file mode 100644 index 000000000000..f4307cf7a84b --- /dev/null +++ b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm @@ -0,0 +1,12672 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ah" = ( +/obj/effect/turf_decal/road, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"aj" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"al" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"aq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"au" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"aA" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"aC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/restraints/legcuffs/beartrap{ + armed = 1 + }, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"aH" = ( +/obj/effect/turf_decal/road/line/opaque/yellow, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"aR" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "shippingdockwarehouse" + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"aV" = ( +/obj/effect/turf_decal/road/slow{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"aW" = ( +/obj/item/mine/pressure/explosive/live, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"aY" = ( +/obj/effect/turf_decal/road/stripes{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"bb" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 5 + }, +/obj/item/stack/cable_coil/cut/random, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"bj" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/hangar/plasteel/white, +/area/ruin/rockplanet/shippingdock) +"bo" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"bv" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"bA" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/warning{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"bH" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/item/newspaper, +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/rockplanet/shippingdockoffice) +"bN" = ( +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"bT" = ( +/obj/structure/table/wood, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"bV" = ( +/turf/closed/wall/r_wall, +/area/ruin/rockplanet/shippingdocksecure) +"bY" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"bZ" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 8 + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"ca" = ( +/obj/effect/turf_decal/industrial/outline, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"cb" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/table, +/obj/item/binoculars, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"cd" = ( +/obj/effect/decal/cleanable/robot_debris/gib, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ce" = ( +/obj/structure/cable/yellow, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"cf" = ( +/obj/effect/turf_decal/road/slow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ch" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ci" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/gun/ballistic/automatic/zip_pistol{ + pixel_x = 15 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"cl" = ( +/obj/machinery/light/broken/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"cm" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"cn" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + icon_state = "0-6" + }, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ct" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/obj/machinery/light/dim/directional/west, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"cv" = ( +/obj/structure/fence/door{ + dir = 1 + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"cw" = ( +/obj/machinery/light/small/directional/east, +/obj/item/reagent_containers/food/drinks/trophy/gold_cup{ + pixel_y = 6 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"cz" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"cB" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"cI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/toy/snappop, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"cS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"cT" = ( +/obj/effect/turf_decal/road{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/white/filled/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"cX" = ( +/obj/effect/turf_decal/road, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"cZ" = ( +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"db" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + piping_layer = 2 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdockoffice) +"di" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"dv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"dw" = ( +/obj/structure/girder/reinforced, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"dE" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/item/emptysandbag, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"dI" = ( +/obj/structure/table/wood, +/obj/item/folder, +/obj/item/pen/fountain, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"dL" = ( +/obj/item/trash/syndi_cakes, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"dR" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"dS" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"ea" = ( +/obj/effect/turf_decal/road{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 6 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"eb" = ( +/obj/structure/frame/computer/retro{ + dir = 8 + }, +/obj/item/stack/ore/salvage/scrapgold, +/obj/effect/turf_decal/corner/opaque/brown/border{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/tiled/white, +/area/ruin/rockplanet/shippingdock) +"ee" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/item/ammo_casing/spent{ + pixel_x = 3; + pixel_y = -5 + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"en" = ( +/turf/closed/wall/r_wall, +/area/ruin/rockplanet/shippingdockwarehouse) +"ep" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"es" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"ey" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"eJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"eL" = ( +/obj/effect/turf_decal/box/white/corners, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"eP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"eR" = ( +/obj/effect/turf_decal/road, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"eY" = ( +/obj/effect/turf_decal/road, +/obj/effect/turf_decal/trimline/opaque/white/corner, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/pressure/explosive/live, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"fd" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fk" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"fn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fr" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/solgovgold, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"fx" = ( +/obj/effect/turf_decal/road{ + dir = 6 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fz" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/item/emptysandbag, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"fB" = ( +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"fG" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/turf_decal/industrial/outline, +/obj/item/wallframe/apc{ + pixel_y = 19 + }, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"fH" = ( +/mob/living/simple_animal/hostile/netherworld/asteroid, +/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fM" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fN" = ( +/obj/structure/railing/corner/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/crayon, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fS" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fT" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/plating/dirt/rockplanet{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"fV" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"gb" = ( +/obj/machinery/suit_storage_unit/industrial, +/obj/item/clothing/head/helmet/space/eva, +/obj/item/clothing/under/pants/jeans, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"gc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"gh" = ( +/obj/machinery/button/door{ + pixel_y = 24; + id = "shippingdockwarehousesouth" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/ruin/rockplanet/shippingdockwarehouse) +"gj" = ( +/obj/effect/decal/cleanable/shreds{ + pixel_y = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rockplanet{ + icon_state = "platingdmg1"; + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"gm" = ( +/obj/machinery/power/floodlight{ + anchored = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"gr" = ( +/obj/effect/turf_decal/trimline/opaque/white/corner{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"gv" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/firingrange{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"gD" = ( +/obj/structure/frame/machine, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scrapgold, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"gF" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"gG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"gH" = ( +/obj/structure/closet/crate/grave/loot, +/turf/open/floor/plating/asteroid/rockplanet/wet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"gN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"gO" = ( +/obj/structure/girder/displaced, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"gR" = ( +/mob/living/simple_animal/hostile/netherworld/migo/asteroid, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"hb" = ( +/obj/effect/turf_decal/road{ + dir = 10 + }, +/obj/effect/turf_decal/road, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"he" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"hf" = ( +/obj/effect/decal/cleanable/crayon, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"hh" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"hi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/comfy/grey/old/directional/north, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"hm" = ( +/obj/effect/turf_decal/road/stop{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"hp" = ( +/obj/item/candle{ + pixel_x = -12 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"hr" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ht" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"hB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"hD" = ( +/obj/structure/table, +/obj/item/radio, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"hE" = ( +/obj/effect/turf_decal/industrial/outline, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"hG" = ( +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"hL" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"hN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"hT" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/barricade/sandbags, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"hU" = ( +/obj/effect/decal/cleanable/shreds{ + pixel_y = 6; + pixel_x = -7 + }, +/turf/open/floor/plating/rockplanet{ + icon_state = "platingdmg1"; + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"hW" = ( +/obj/item/mine/pressure/explosive/live, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"hY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ib" = ( +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ic" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/turf_decal/industrial/outline, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"if" = ( +/obj/structure/safe, +/obj/item/spacecash/bundle/mediumrand, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/rockplanet/shippingdocksecure) +"il" = ( +/obj/structure/table, +/obj/machinery/computer/secure_data/laptop{ + dir = 8; + pixel_x = 1 + }, +/obj/machinery/button/door{ + pixel_y = 24; + id = "shippingdockcustoms" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"im" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/white/filled/line{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ir" = ( +/obj/effect/turf_decal/trimline/opaque/white/filled/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"iv" = ( +/obj/structure/sign/warning/gasmask{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/item/mine/pressure/explosive/shrapnel/live, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"iB" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/passive_vent, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"iH" = ( +/obj/structure/chair/pew{ + dir = 8 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"iK" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"iL" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"iQ" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + piping_layer = 2 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating/rust{ + light_power = 0.6; + light_range = 2 + }, +/area/ruin/rockplanet/shippingdockoffice) +"jk" = ( +/obj/structure/cable/yellow{ + icon_state = "1-6" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-10" + }, +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ju" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jB" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"jC" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jD" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"jK" = ( +/obj/structure/railing/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil/slippery, +/mob/living/simple_animal/bot/mulebot, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jQ" = ( +/obj/effect/decal/remains/human, +/obj/item/ammo_casing/spent{ + pixel_x = 10; + pixel_y = 12 + }, +/obj/item/ammo_casing/spent{ + pixel_x = -14; + pixel_y = 1 + }, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/head/beret/cargo{ + pixel_y = 17 + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"jR" = ( +/obj/machinery/power/shuttle/engine/electric/bad{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"jT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/mine/pressure/explosive/fire/live, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"jU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/item/restraints/legcuffs/beartrap{ + armed = 1 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"jZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"kb" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"kf" = ( +/obj/structure/salvageable/machine, +/obj/structure/sign/departments/cargo{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"ko" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "shippingdockwarehousesouth" + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"kp" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ku" = ( +/obj/structure/door_assembly/door_assembly_public{ + dir = 8 + }, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"kv" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"kw" = ( +/obj/effect/turf_decal/road/edge{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ky" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "shippingdockcustoms" + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"kI" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"kJ" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"kV" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/plating/dirt/rockplanet{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"kX" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"lc" = ( +/obj/effect/turf_decal/road{ + dir = 4 + }, +/obj/effect/turf_decal/road{ + dir = 9 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"le" = ( +/obj/structure/table/wood, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 1 + }, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 2 + }, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 3 + }, +/obj/machinery/light/broken/directional/west, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"lf" = ( +/obj/structure/cable/yellow{ + icon_state = "0-6" + }, +/obj/machinery/power/tracker, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lj" = ( +/obj/effect/turf_decal/industrial/outline/red, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"ll" = ( +/obj/structure/fence, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lo" = ( +/obj/structure/fence/post{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lp" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lr" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lu" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/storage/ration/battered_fish_sticks, +/obj/item/storage/ration/cheese_pizza_slice, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"lw" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"lB" = ( +/turf/open/floor/plating/asteroid/rockplanet/wet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lC" = ( +/obj/effect/turf_decal/corner/opaque/brown/border, +/obj/item/wallframe/airalarm{ + pixel_y = -27 + }, +/turf/open/floor/hangar/plasteel/white, +/area/ruin/rockplanet/shippingdock) +"lM" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 4 + }, +/obj/item/ammo_casing/spent{ + pixel_x = 10; + pixel_y = 12 + }, +/obj/item/ammo_casing/spent, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"lQ" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"lR" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"lT" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/carpet/nanoweave/purple, +/area/ruin/rockplanet/shippingdockoffice) +"lU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/pressure/explosive/live, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"lZ" = ( +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"mb" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"mc" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"md" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"mi" = ( +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ml" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"ms" = ( +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "shippingdockwarehousesouth" + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"mu" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"mx" = ( +/obj/item/stack/cable_coil/cut/red, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"mC" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"mE" = ( +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"mF" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"mI" = ( +/obj/structure/poddoor_assembly, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"mP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"mU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"mV" = ( +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"mY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"nh" = ( +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/rockplanet/shippingdockoffice) +"nj" = ( +/obj/machinery/door/airlock/grunge{ + name = "Break Room"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"nr" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + req_one_access_txt = "52" + }, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"ns" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/item/stack/ore/salvage/scrapsilver, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"ny" = ( +/obj/structure/flora/rock/pile/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/wet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"nB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"nJ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"nK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"nO" = ( +/obj/structure/table, +/obj/item/clothing/head/welding, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"nP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"nR" = ( +/obj/effect/decal/cleanable/crayon, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"nT" = ( +/obj/effect/turf_decal/number/right_zero, +/obj/effect/turf_decal/number/left_zero, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"nV" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"nW" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/robot_debris/limb, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"nY" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/broken/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"nZ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/sofa/brown/old/directional, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"ob" = ( +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"of" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"og" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"oi" = ( +/obj/effect/turf_decal/trimline/opaque/white/arrow_cw{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"oj" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"on" = ( +/obj/structure/fence{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-9" + }, +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"op" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"ou" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/ammo_casing/spent{ + pixel_x = 10; + pixel_y = 12 + }, +/obj/item/ammo_casing/spent{ + pixel_x = 3; + pixel_y = -5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"oz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"oC" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"pe" = ( +/obj/machinery/light/broken/directional/east, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"pi" = ( +/obj/structure/flora/grass/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pl" = ( +/obj/effect/turf_decal/industrial/stand_clear/white, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"pm" = ( +/obj/effect/turf_decal/industrial/hatch, +/obj/structure/reagent_dispensers/foamtank, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"po" = ( +/obj/machinery/light/dim/directional/south, +/obj/structure/safe, +/obj/item/organ/cyberimp/arm/gun/taser, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/rockplanet/shippingdocksecure) +"pp" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/proximity/explosive/sting/live, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pv" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/solar_control{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/ruin/rockplanet/shippingdockoffice) +"pw" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/plating/dirt/rockplanet{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"px" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"py" = ( +/turf/closed/wall/rust, +/area/ruin/rockplanet/shippingdock) +"pz" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"pB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-9" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pI" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "shippingdocksecure" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdocksecure) +"pS" = ( +/obj/structure/flora/grass/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pT" = ( +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pV" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/plating/dirt/rockplanet{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"pX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/glass, +/obj/machinery/light/small/broken/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/pressure/gas/live, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"pY" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"qc" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"qi" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"qn" = ( +/turf/closed/wall/rust, +/area/ruin/rockplanet/shippingdockoffice) +"qo" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"qB" = ( +/turf/open/water/rockplanet{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"qG" = ( +/obj/structure/table, +/obj/machinery/door/window/brigdoor/eastright{ + dir = 2 + }, +/obj/machinery/door/window/northright, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"qH" = ( +/obj/effect/turf_decal/road/slow{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"qL" = ( +/obj/structure/cable/yellow, +/obj/item/solar_assembly, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"qM" = ( +/obj/structure/flora/rock/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"qN" = ( +/obj/structure/closet/cardboard, +/obj/item/stack/circuit_stack/full, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"qR" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"qU" = ( +/obj/structure/railing{ + max_integrity = 70; + dir = 4 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/rust{ + light_power = 0.6; + light_range = 2 + }, +/area/ruin/rockplanet/shippingdock) +"qW" = ( +/obj/effect/decal/fakelattice, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ra" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"re" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"rl" = ( +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"rC" = ( +/obj/item/stack/cable_coil/cut/random, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"rD" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/structure/closet/crate/secure/gear{ + req_one_access_txt = "53" + }, +/obj/item/ammo_box/magazine/tec9, +/obj/item/ammo_box/magazine/tec9, +/obj/item/gun/ballistic/automatic/pistol/tec9, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"rK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/sign/warning/gasmask{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/restraints/legcuffs/beartrap{ + armed = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"rN" = ( +/obj/effect/turf_decal/trimline/opaque/white/arrow_ccw, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"rO" = ( +/obj/machinery/door/airlock/grunge{ + name = "Manager's Office" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"rS" = ( +/obj/machinery/light/broken/directional/west, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"rV" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/item/restraints/legcuffs/beartrap{ + armed = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"rY" = ( +/obj/machinery/door/airlock/grunge{ + name = "Cargo Checkpoint" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"sa" = ( +/obj/effect/turf_decal/rechargefloor, +/obj/effect/turf_decal/industrial/warning/dust, +/obj/effect/spawner/lootdrop/whiteship_cere_ripley, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"sc" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"se" = ( +/obj/effect/turf_decal/trimline/opaque/white/arrow_cw{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/proximity/explosive/sting/live, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sl" = ( +/obj/structure/railing/wood{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sp" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/asteroid/rockplanet/wet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sq" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"st" = ( +/mob/living/simple_animal/hostile/netherworld/migo/asteroid, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"su" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sx" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"sz" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"sC" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"sL" = ( +/obj/machinery/button/door{ + dir = 4; + pixel_x = -24; + id = "shippingdocksecure" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"sO" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/donut/choco, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"sP" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/key, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"sS" = ( +/obj/effect/turf_decal/number/left_zero, +/obj/effect/turf_decal/number/right_one, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sU" = ( +/obj/effect/turf_decal/trimline/opaque/white/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sX" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/item/shard, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"sY" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tb" = ( +/obj/effect/turf_decal/road/slow, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tg" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ti" = ( +/obj/effect/decal/cleanable/shreds, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plating/rockplanet{ + icon_state = "platingdmg2"; + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tn" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/closet/crate/solarpanel_small, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/fyellow/old, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"to" = ( +/obj/effect/turf_decal/road/edge{ + dir = 4 + }, +/obj/effect/decal/cleanable/robot_debris/down, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tp" = ( +/obj/item/pipe{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"tq" = ( +/obj/effect/turf_decal/road{ + dir = 10 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tr" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tv" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"tx" = ( +/turf/open/floor/plasteel/stairs/right{ + dir = 1 + }, +/area/ruin/rockplanet/shippingdock) +"tz" = ( +/obj/structure/closet/crate/large, +/obj/item/stack/sheet/mineral/sandstone/thirty, +/obj/item/storage/box/emptysandbags, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"tC" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"tL" = ( +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tM" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tN" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"tQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/hangar/plasteel/white, +/area/ruin/rockplanet/shippingdock) +"tR" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"tX" = ( +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"tY" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ud" = ( +/obj/effect/turf_decal/road{ + dir = 10 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ue" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"ui" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ul" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/toy/plush/moth/firewatch, +/obj/item/toy/plush/lizardplushie, +/obj/item/toy/plush/knight, +/obj/item/toy/prize/mauler, +/obj/item/toy/talking/AI, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"um" = ( +/turf/closed/wall, +/area/ruin/rockplanet/shippingdockoffice) +"uo" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/trash/can, +/obj/item/trash/can/food/peaches, +/obj/item/trash/tray, +/obj/item/storage/bag/trash, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"uq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-9" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ut" = ( +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"ux" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"uF" = ( +/obj/effect/decal/cleanable/shreds, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"uP" = ( +/obj/item/wirecutters{ + pixel_y = 17 + }, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"uQ" = ( +/obj/structure/marker_beacon, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"uT" = ( +/obj/structure/sign/warning/nosmoking/circle{ + pixel_y = 24 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"uW" = ( +/obj/structure/cable/yellow{ + icon_state = "0-9" + }, +/obj/machinery/power/solar, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"uZ" = ( +/obj/structure/cable/yellow{ + icon_state = "0-6" + }, +/obj/item/solar_assembly, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"va" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/obj/effect/decal/cleanable/garbage, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ve" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"vj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"vs" = ( +/obj/effect/turf_decal/corner/opaque/brown/border, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/hangar/plasteel/white, +/area/ruin/rockplanet/shippingdock) +"vt" = ( +/obj/effect/turf_decal/road{ + dir = 5 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vz" = ( +/turf/closed/wall, +/area/ruin/rockplanet/shippingdockcustoms) +"vD" = ( +/obj/item/ammo_box/magazine/zip_ammo_9mm{ + pixel_x = 5; + pixel_y = 12 + }, +/obj/item/ammo_casing/spent{ + pixel_x = 3; + pixel_y = -5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"vG" = ( +/obj/effect/turf_decal/industrial/stand_clear/white, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"vM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vP" = ( +/obj/machinery/door/airlock/security{ + name = "Secure Storage"; + req_one_access_txt = "53" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"vR" = ( +/obj/structure/fence{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vS" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"vV" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wb" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"wf" = ( +/mob/living/simple_animal/hostile/netherworld/asteroid, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wj" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "shippingdockfront" + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdockcustoms) +"wo" = ( +/obj/structure/girder, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wp" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wq" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ws" = ( +/obj/effect/decal/cleanable/food/flour, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"wu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"wv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wy" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"wB" = ( +/obj/effect/turf_decal/road{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wE" = ( +/obj/effect/turf_decal/trimline/opaque/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wH" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/tracker, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wM" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 4 + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"wN" = ( +/obj/effect/turf_decal/road{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/warning, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wO" = ( +/obj/effect/turf_decal/number/left_one, +/obj/effect/turf_decal/number/right_zero, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"wX" = ( +/obj/effect/turf_decal/trimline/opaque/white/arrow_ccw, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"wY" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xc" = ( +/obj/effect/turf_decal/trimline/opaque/white/warning, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xd" = ( +/obj/effect/turf_decal/corner/opaque/brown/border{ + dir = 1 + }, +/turf/open/floor/hangar/plasteel/white, +/area/ruin/rockplanet/shippingdock) +"xe" = ( +/obj/item/trash/semki, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/purple, +/area/ruin/rockplanet/shippingdockoffice) +"xf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xh" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 26 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xi" = ( +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xl" = ( +/obj/effect/turf_decal/industrial/stand_clear/red, +/mob/living/simple_animal/bot/secbot/ed209/rockplanet, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"xn" = ( +/obj/effect/turf_decal/road, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"xo" = ( +/obj/effect/turf_decal/road{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 5 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xv" = ( +/obj/item/toy/crayon/spraycan, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xx" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/hangar/plasteel/white, +/area/ruin/rockplanet/shippingdock) +"xy" = ( +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"xC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/purple, +/area/ruin/rockplanet/shippingdockoffice) +"xF" = ( +/obj/effect/turf_decal/road/edge{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xQ" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xR" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"xS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xY" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"xZ" = ( +/obj/structure/flora/rock/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/wet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yc" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yj" = ( +/obj/structure/cable/yellow{ + icon_state = "1-9" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yl" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ys" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yx" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"yH" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"yJ" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdockoffice) +"yO" = ( +/obj/structure/frame/machine, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/stack/ore/salvage/scrapgold, +/obj/item/stock_parts/cell/empty, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"yT" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yV" = ( +/obj/effect/turf_decal/road/edge{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yW" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"yX" = ( +/obj/structure/cable/yellow{ + icon_state = "0-5" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"zf" = ( +/obj/structure/cable/yellow{ + icon_state = "0-6" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zg" = ( +/obj/machinery/door/airlock/public/glass{ + dir = 4 + }, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"zm" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/effect/supplypod_rubble, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/plating/rust{ + light_power = 0.6; + light_range = 2 + }, +/area/ruin/rockplanet/shippingdockoffice) +"zy" = ( +/obj/machinery/door/airlock/freezer{ + dir = 4; + name = "Bathroom" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/rockplanet/shippingdockoffice) +"zz" = ( +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"zD" = ( +/obj/structure/fence, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zE" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zH" = ( +/obj/effect/turf_decal/road{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zL" = ( +/obj/structure/frame/machine, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/stack/ore/salvage/scrapplasma, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"zM" = ( +/turf/closed/wall/rust, +/area/ruin/rockplanet/shippingdockcustoms) +"zS" = ( +/obj/effect/turf_decal/industrial/outline, +/obj/structure/closet/cardboard, +/obj/item/tank/internals/oxygen/yellow, +/obj/item/tank/internals/oxygen/yellow, +/obj/item/clothing/mask/gas/atmos, +/obj/item/clothing/mask/gas/atmos, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"zT" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/brown/border, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/pet/mothroach, +/turf/open/floor/mineral/titanium/tiled/white, +/area/ruin/rockplanet/shippingdock) +"zU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"zV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"zX" = ( +/obj/structure/flora/tree/cactus, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Aa" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/robot_debris/limb, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ai" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Aq" = ( +/obj/effect/turf_decal/road{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Av" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"AE" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/toy/plush/blahaj, +/obj/item/toy/plush/goatplushie, +/obj/item/toy/plush/nukeplushie, +/obj/item/toy/prize/phazon, +/obj/item/toy/windupToolbox, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"AG" = ( +/obj/effect/turf_decal/road{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/white/filled/line, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"AI" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"AJ" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"AL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"AQ" = ( +/obj/effect/turf_decal/road/stripes{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"AW" = ( +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Bi" = ( +/obj/structure/cable/yellow{ + icon_state = "0-6" + }, +/obj/item/solar_assembly, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Bl" = ( +/obj/structure/fence/corner{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Bm" = ( +/obj/structure/sign/warning/nosmoking/circle{ + pixel_y = 24 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Br" = ( +/obj/effect/turf_decal/road/edge{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Bx" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/trimline/opaque/ntblue, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"By" = ( +/obj/effect/turf_decal/number/left_zero, +/obj/effect/turf_decal/number/right_zero, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Bz" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/rust{ + light_power = 0.6; + light_range = 2 + }, +/area/ruin/rockplanet/shippingdock) +"BA" = ( +/obj/effect/turf_decal/road/line/opaque/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"BG" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/item/ammo_casing/spent{ + pixel_x = -14; + pixel_y = 1 + }, +/obj/item/ammo_casing/spent{ + pixel_x = 3; + pixel_y = -5 + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"BH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"BI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"BJ" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/sofa/brown/old/left, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"BN" = ( +/obj/effect/turf_decal/road/stop{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"BO" = ( +/obj/effect/turf_decal/road/slow{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ce" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/purple, +/area/ruin/rockplanet/shippingdockoffice) +"Ch" = ( +/obj/structure/flora/tree/cactus, +/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Cm" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Cu" = ( +/obj/structure/closet/crate/large, +/obj/item/bot_assembly/secbot, +/obj/item/bot_assembly/secbot, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Cx" = ( +/obj/structure/railing/corner, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Cy" = ( +/obj/effect/turf_decal/road{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"CE" = ( +/obj/structure/railing/corner/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"CF" = ( +/obj/item/toy/snappop, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"CH" = ( +/obj/structure/fence/post{ + dir = 8 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"CM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/candle{ + pixel_x = 11 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"CN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"CO" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = 26 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"CT" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet/nanoweave/purple, +/area/ruin/rockplanet/shippingdockoffice) +"CV" = ( +/obj/structure/closet/crate/large, +/obj/item/bot_assembly/floorbot, +/obj/item/bot_assembly/floorbot, +/obj/item/bot_assembly/firebot, +/obj/item/bot_assembly/firebot, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"CW" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Dv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Dz" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"DE" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/item/solar_assembly, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"DF" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/rack, +/obj/item/camera, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"DI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"DP" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/decal/cleanable/confetti, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"DR" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"DV" = ( +/obj/effect/turf_decal/road, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Eg" = ( +/obj/machinery/door/window/brigdoor{ + req_one_access_txt = "53" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"Eh" = ( +/obj/structure/railing, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ei" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ej" = ( +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ev" = ( +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ew" = ( +/obj/item/stack/ore/salvage/scrapplasma, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"EC" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ED" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"EE" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/closet/crate/large, +/obj/machinery/smoke_machine, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"EG" = ( +/obj/structure/closet/secure_closet/freezer, +/obj/item/storage/cans/sixbeer, +/obj/item/storage/ration/beef_strips, +/obj/item/storage/ration/pork_spaghetti, +/obj/item/storage/ration/beef_goulash, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"EL" = ( +/obj/machinery/door/window/eastleft, +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"EP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ER" = ( +/obj/structure/closet/crate, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"EZ" = ( +/obj/effect/decal/fakelattice, +/obj/item/stack/ore/salvage/scraptitanium, +/obj/item/crowbar/large, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Fb" = ( +/obj/structure/sign/warning/nosmoking/circle{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Fc" = ( +/obj/effect/turf_decal/industrial/outline, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Fg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Fj" = ( +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Fn" = ( +/obj/effect/turf_decal/road{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Fs" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ft" = ( +/obj/structure/cable/yellow, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Fv" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/decal/cleanable/garbage, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"Fx" = ( +/obj/item/mine/proximity/explosive/sting/live, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"FB" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/item/reagent_containers/glass/bottle/coniine{ + name = "bottle"; + desc = "A small bottle. Contains an unknown liquid." + }, +/obj/item/reagent_containers/glass/bottle/chloralhydrate{ + desc = "A small bottle. Contains an unknown liquid."; + name = "bottle" + }, +/obj/item/reagent_containers/glass/bottle/atropine{ + desc = "A small bottle. Contains an unknown liquid."; + name = "bottle" + }, +/obj/structure/closet/crate/secure/science{ + req_one_access_txt = "53" + }, +/obj/item/reagent_containers/glass/bottle/amanitin{ + desc = "A small bottle. Contains an unknown liquid."; + name = "bottle" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"FD" = ( +/obj/effect/turf_decal/road/edge, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"FH" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"FK" = ( +/obj/effect/turf_decal/road{ + dir = 9 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"FM" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"FN" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"FP" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"FQ" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen/fourcolor, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"FU" = ( +/obj/structure/table/wood, +/obj/machinery/microwave, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"FV" = ( +/obj/structure/flora/rock/pile/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"FX" = ( +/obj/effect/decal/cleanable/crayon, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"FZ" = ( +/obj/effect/decal/cleanable/confetti, +/obj/machinery/light/broken/directional/east, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"Gg" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/solar, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Gj" = ( +/obj/structure/safe, +/obj/item/spacecash/bundle/pocketchange, +/obj/item/spacecash/bundle/c10, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/rockplanet/shippingdocksecure) +"Gk" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Gr" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Gs" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Gy" = ( +/obj/effect/turf_decal/road{ + dir = 6 + }, +/obj/effect/turf_decal/road/edge{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Gz" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"GB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "shippingdocksecure" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdocksecure) +"GM" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/bottlegreen, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"GN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"GO" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"GP" = ( +/turf/template_noop, +/area/template_noop) +"GW" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"GZ" = ( +/obj/structure/table, +/obj/machinery/door/window/brigdoor, +/obj/machinery/door/window/northleft, +/obj/item/clipboard, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"Hd" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Hk" = ( +/turf/open/floor/plasteel/stairs/left{ + dir = 1 + }, +/area/ruin/rockplanet/shippingdock) +"Ho" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdockoffice) +"Hx" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "shippingdockwarehousesouth" + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"HA" = ( +/obj/structure/fence/corner, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"HB" = ( +/obj/machinery/light/broken/directional/south, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"HI" = ( +/obj/item/weldingtool/old, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"HK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"HL" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"HM" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"HN" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"HP" = ( +/mob/living/simple_animal/hostile/netherworld/asteroid, +/turf/open/floor/plating/asteroid/rockplanet/wet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"HV" = ( +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"HW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"HY" = ( +/obj/structure/curtain, +/obj/machinery/shower{ + pixel_y = 19 + }, +/obj/structure/window/reinforced/survival_pod, +/obj/machinery/door/window/survival_pod{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/rockplanet/shippingdockoffice) +"Ic" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Id" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ig" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Il" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Io" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Iu" = ( +/obj/structure/flora/ash/garden/arid, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Iv" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"IE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"IH" = ( +/obj/effect/decal/cleanable/food/tomato_smudge, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"IK" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"IS" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"IU" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/carpet/nanoweave/purple, +/area/ruin/rockplanet/shippingdockoffice) +"IV" = ( +/obj/effect/turf_decal/road, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"IY" = ( +/turf/closed/wall/rust, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Jd" = ( +/obj/structure/railing, +/obj/structure/table, +/obj/item/radio, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Jq" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Ju" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Jz" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"JD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"JE" = ( +/obj/effect/decal/fakelattice, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"JF" = ( +/obj/item/stack/cable_coil/cut/red, +/obj/item/stack/ore/salvage/scraptitanium, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"JG" = ( +/obj/effect/turf_decal/industrial/hatch, +/obj/structure/closet/cardboard/metal, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/plasteel/twenty, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"JI" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"JL" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters{ + id = "shippingdockwarehouse" + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"JO" = ( +/obj/item/clothing/shoes/magboots{ + name = "charred magboots" + }, +/obj/effect/decal/cleanable/shreds{ + pixel_x = -8; + pixel_y = 17 + }, +/obj/effect/decal/cleanable/shreds{ + pixel_y = -9; + pixel_x = 15 + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plating/rockplanet{ + icon_state = "platingdmg3"; + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"JQ" = ( +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"JU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"JZ" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Kc" = ( +/obj/effect/decal/cleanable/shreds{ + pixel_x = 7; + pixel_y = -8 + }, +/obj/effect/decal/cleanable/shreds{ + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rockplanet{ + icon_state = "platingdmg2"; + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ke" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"Kh" = ( +/obj/structure/flora/ash/garden, +/turf/open/floor/plating/dirt/rockplanet{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Km" = ( +/obj/structure/fence/cut/medium{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Kq" = ( +/obj/structure/marker_beacon, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Kr" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Ks" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/spawner/bundle/costume/marisawizard, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"Kt" = ( +/obj/structure/cable{ + icon_state = "1-6" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Kx" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"Kz" = ( +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, +/obj/structure/table, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"KA" = ( +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"KG" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"KJ" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"KQ" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 1 + }, +/obj/item/toy/snappop, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"KR" = ( +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"KS" = ( +/obj/structure/filingcabinet/double, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"Lb" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Lf" = ( +/obj/item/restraints/legcuffs/beartrap{ + armed = 1 + }, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Lh" = ( +/obj/structure/fence/corner{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ln" = ( +/obj/effect/turf_decal/number/left_one, +/obj/effect/turf_decal/number/right_one, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Lq" = ( +/obj/machinery/door/airlock/grunge{ + name = "Break Room"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"Lr" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"Ls" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"Lu" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "shippingdockwarehousesouth"; + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Ly" = ( +/turf/open/floor/plating/rust{ + light_power = 0.6; + light_range = 2 + }, +/area/ruin/rockplanet/shippingdock) +"LB" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/structure/barricade/sandbags, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"LE" = ( +/obj/structure/sign/departments/drop{ + pixel_x = 32 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"LL" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"LS" = ( +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"LW" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/turf_decal/corner/opaque/brown/border{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/hangar/plasteel/white, +/area/ruin/rockplanet/shippingdock) +"LY" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"Mg" = ( +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"Mj" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Mm" = ( +/obj/structure/flora/tree/cactus, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Mt" = ( +/obj/effect/turf_decal/trimline/opaque/white/filled/line{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Mv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"Mw" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"My" = ( +/obj/item/paper/crumpled/muddy{ + default_raw_text = "# 01010100 01001000 01001001 01010011 00100000 01010011 01010000 01000001 01000011 01000101 00100000 01001001 01001110 01010100 01000101 01001110 01010100 01001001 01001111 01001110 01000001 01001100 01001100 01011001 00100000 01001100 01000101 01000110 01010100 00100000 01000010 01001100 01000001 01001110 01001011" + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Mz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"MA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"MG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"MM" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"MO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rust{ + light_power = 0.6; + light_range = 2 + }, +/area/ruin/rockplanet/shippingdockoffice) +"MQ" = ( +/turf/closed/wall, +/area/overmap_encounter/planetoid/rockplanet/explored) +"MX" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Nb" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Nh" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ni" = ( +/obj/structure/fence/post{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Nj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"Np" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Nq" = ( +/turf/closed/wall/mineral/titanium, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ns" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Ny" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"NB" = ( +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"NE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"NH" = ( +/obj/structure/flora/rock/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"NK" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"NL" = ( +/obj/structure/chair/pew{ + dir = 4 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"NP" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/obj/effect/turf_decal/road{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"NQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/pressure/explosive/live, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"NR" = ( +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"NT" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"NU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/item/restraints/legcuffs/beartrap{ + armed = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"NY" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Oa" = ( +/obj/effect/turf_decal/road, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ob" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Od" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ruin/rockplanet/shippingdocksecure) +"Oe" = ( +/obj/effect/turf_decal/road/stripes{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Om" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/grille, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Ov" = ( +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Oz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"OG" = ( +/obj/item/pipe{ + dir = 8 + }, +/obj/item/wrench/old, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"OI" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"OO" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/grunge{ + name = "Cargo Checkpoint" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"OQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"OT" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"Pb" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Pc" = ( +/obj/effect/turf_decal/trimline/opaque/white/warning, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Pf" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"Pi" = ( +/obj/item/pickaxe, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Pn" = ( +/obj/structure/fence/cut/large{ + dir = 8 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Po" = ( +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Pp" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Pr" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"Ps" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/button/door{ + pixel_y = 24; + id = "shippingdockwarehousesouth" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/ruin/rockplanet/shippingdockwarehouse) +"Pw" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/purple, +/area/ruin/rockplanet/shippingdockoffice) +"Px" = ( +/obj/effect/turf_decal/road, +/obj/structure/barricade/sandbags, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Py" = ( +/obj/effect/decal/cleanable/generic, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"PA" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"PE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"PM" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 1 + }, +/obj/item/restraints/legcuffs/beartrap{ + armed = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"PP" = ( +/turf/closed/wall/r_wall/rust, +/area/ruin/rockplanet/shippingdockwarehouse) +"PZ" = ( +/obj/effect/turf_decal/road, +/obj/effect/turf_decal/trimline/opaque/white/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Qg" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"Qi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"Qn" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/button/door{ + pixel_y = 24; + id = "shippingdockfront" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"Qq" = ( +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Qr" = ( +/obj/effect/turf_decal/road{ + dir = 9 + }, +/obj/effect/turf_decal/road, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Qv" = ( +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"Qy" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"QB" = ( +/obj/structure/safe/floor, +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/item/spacecash/bundle/c500, +/obj/item/spacecash/bundle/mediumrand, +/obj/machinery/light/broken/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdockoffice) +"QC" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/suit/charcoal, +/obj/item/clothing/suit/toggle/lawyer/charcoal, +/obj/item/clothing/glasses/sunglasses/big, +/obj/item/clothing/shoes/laceup, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"QD" = ( +/obj/effect/turf_decal/road, +/obj/structure/barricade/sandbags, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"QI" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/hangar/plasteel/white, +/area/ruin/rockplanet/shippingdock) +"QQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Rd" = ( +/obj/effect/turf_decal/industrial/stand_clear/red, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"Ri" = ( +/obj/structure/flora/grass/rockplanet/dead, +/turf/open/floor/plating/asteroid/rockplanet/wet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Rl" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/button/door{ + pixel_y = 24; + id = "shippingdockwarehouse" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"Ro" = ( +/obj/item/stack/rods, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Rp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"Rq" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/chair/sofa/brown/old/right, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"Rw" = ( +/obj/effect/turf_decal/road, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Rz" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"RT" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"RV" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/garbage, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"RW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdockoffice) +"Sd" = ( +/obj/effect/turf_decal/road{ + dir = 6 + }, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Si" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"So" = ( +/obj/effect/turf_decal/trimline/opaque/white/warning{ + dir = 1 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Sq" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Sr" = ( +/obj/effect/turf_decal/road{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ss" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Su" = ( +/obj/structure/table, +/obj/item/folder, +/obj/machinery/light/broken/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/purple, +/area/ruin/rockplanet/shippingdockoffice) +"SB" = ( +/mob/living/simple_animal/hostile/netherworld/asteroid, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"SF" = ( +/obj/effect/turf_decal/road{ + dir = 5 + }, +/obj/effect/turf_decal/road/edge{ + dir = 8 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"SI" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"SJ" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/effect/spawner/lootdrop/donkpockets, +/obj/effect/spawner/lootdrop/donkpockets, +/obj/effect/spawner/lootdrop/donkpockets, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"SM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"SO" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/rockplanet/shippingdock) +"SV" = ( +/obj/item/pipe{ + dir = 8 + }, +/obj/item/stack/ore/salvage/scrapplasma, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"SX" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/item/mine/proximity/explosive/sting/live, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"SY" = ( +/obj/structure/flora/grass/rockplanet/dead, +/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"SZ" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Tc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Td" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Th" = ( +/obj/machinery/door/poddoor/shutters{ + id = "shippingdockwarehouse" + }, +/obj/effect/turf_decal/road, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Ti" = ( +/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Tl" = ( +/obj/item/stack/cable_coil/cut/red, +/obj/item/stock_parts/cell/empty, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Tv" = ( +/obj/effect/turf_decal/box/corners, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Tw" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Tx" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"Ty" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"TA" = ( +/obj/effect/turf_decal/road/edge{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"TE" = ( +/obj/machinery/button/door{ + dir = 1; + pixel_y = -24; + id = "shippingdockwarehouse" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/ruin/rockplanet/shippingdockwarehouse) +"TH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"TW" = ( +/obj/machinery/door/airlock/public/glass{ + dir = 4; + req_one_access_txt = "52" + }, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"TY" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ub" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ue" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/solar, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Uf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"Ug" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Ui" = ( +/obj/structure/cable/yellow{ + icon_state = "0-6" + }, +/obj/machinery/power/solar_control{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Uj" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/item/shard, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Uk" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Ul" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Un" = ( +/obj/structure/flora/ash/garden/arid, +/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ur" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 28 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Uy" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"UA" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/plastic, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"UD" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"UG" = ( +/obj/structure/cable, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plating, +/area/overmap_encounter/planetoid/rockplanet/explored) +"UK" = ( +/obj/structure/fence/post{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"UN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"UT" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"UV" = ( +/obj/structure/salvageable/computer{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/brown/border{ + dir = 6 + }, +/turf/open/floor/mineral/titanium/tiled/white, +/area/ruin/rockplanet/shippingdock) +"UW" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockcustoms) +"UX" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "shippingdockwarehouse" + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"UY" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Vf" = ( +/obj/structure/poddoor_assembly, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Vg" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/hangar/plasteel/dark, +/area/ruin/rockplanet/shippingdock) +"Vh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Vn" = ( +/obj/structure/railing{ + max_integrity = 70; + dir = 4 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Vt" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Vu" = ( +/obj/structure/railing/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"VE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"VJ" = ( +/obj/item/trash/waffles, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/nanoweave, +/area/ruin/rockplanet/shippingdockoffice) +"VK" = ( +/obj/structure/cable/yellow, +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"VW" = ( +/obj/effect/turf_decal/road{ + dir = 8 + }, +/obj/effect/turf_decal/road{ + dir = 10 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"VX" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Wb" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Wc" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"We" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Wh" = ( +/obj/machinery/door/poddoor, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"Wj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Wk" = ( +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/structure/sink{ + pixel_y = 17 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/rockplanet/shippingdockoffice) +"Wl" = ( +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Wn" = ( +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Wp" = ( +/obj/effect/decal/cleanable/garbage, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Wv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ww" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"WE" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/storage/box/maid, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"WH" = ( +/obj/structure/cable/yellow{ + icon_state = "0-6" + }, +/turf/open/floor/concrete/reinforced{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"WJ" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/concrete/slab_3{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"WO" = ( +/obj/machinery/light/broken/directional/north, +/turf/open/floor/plasteel/tech/grid, +/area/ruin/rockplanet/shippingdockwarehouse) +"WS" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/trimline/opaque/syndiered, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"WT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"WX" = ( +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/ash/large, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Xe" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/item/shard, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xg" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/asteroid/rockplanet/wet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xh" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xi" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen/fourcolor, +/turf/open/floor/carpet/nanoweave/purple, +/area/ruin/rockplanet/shippingdockoffice) +"Xj" = ( +/obj/effect/turf_decal/road{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 10 + }, +/obj/item/toy/snappop, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xk" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xm" = ( +/obj/effect/turf_decal/road{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 9 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xr" = ( +/obj/structure/flora/rock/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Xu" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Xx" = ( +/obj/effect/turf_decal/road/edge{ + dir = 1 + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"XB" = ( +/mob/living/simple_animal/hostile/netherworld/asteroid, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"XD" = ( +/obj/effect/turf_decal/road{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"XG" = ( +/turf/closed/wall/r_wall/rust, +/area/ruin/rockplanet/shippingdocksecure) +"XH" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"XI" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"XO" = ( +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"XP" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance/eight, +/turf/open/floor/plasteel/mono/white, +/area/ruin/rockplanet/shippingdockwarehouse) +"XU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/girder/displaced, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"XY" = ( +/obj/effect/turf_decal/road, +/obj/machinery/door/poddoor/shutters{ + id = "shippingdockwarehousesouth" + }, +/obj/effect/turf_decal/trimline/opaque/neutral/filled/warning{ + dir = 1 + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"XZ" = ( +/obj/effect/turf_decal/road{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Yc" = ( +/obj/structure/cable/yellow{ + icon_state = "1-6" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Yf" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Yk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/rockplanet/shippingdockoffice) +"Yn" = ( +/obj/effect/turf_decal/industrial/outline, +/obj/structure/closet/cardboard, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"Yr" = ( +/obj/effect/turf_decal/road{ + dir = 4 + }, +/obj/effect/turf_decal/road{ + dir = 5 + }, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Ys" = ( +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Yt" = ( +/obj/structure/fence/cut/large{ + dir = 1 + }, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Yu" = ( +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"Yx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/item/assembly/mousetrap/armed, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"Yy" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/carpet/nanoweave/beige, +/area/ruin/rockplanet/shippingdockoffice) +"Yz" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"YA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"YD" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/structure/sign/warning/electricshock{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"YE" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"YG" = ( +/obj/vehicle/ridden/atv{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"YI" = ( +/obj/effect/turf_decal/road{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"YO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/slab_4{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"YZ" = ( +/obj/effect/turf_decal/industrial/outline/red, +/obj/item/stack/sheet/mineral/gold/five, +/obj/item/stack/sheet/mineral/diamond/five, +/obj/structure/closet/crate/secure{ + req_one_access_txt = "53" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdocksecure) +"Zd" = ( +/obj/effect/turf_decal/road, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Zh" = ( +/obj/effect/turf_decal/road{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"Zn" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/rockplanet/shippingdockoffice) +"Zo" = ( +/obj/structure/flora/rock/pile/rockplanet, +/turf/open/floor/plating/asteroid/rockplanet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Zq" = ( +/obj/structure/flora/ash/garden/arid, +/turf/open/floor/plating/asteroid/rockplanet/wet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Zs" = ( +/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"Zz" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/girder, +/turf/open/floor/concrete{ + light_range = 2; + light_power = 0.6 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ZA" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"ZB" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/tech, +/area/ruin/rockplanet/shippingdockwarehouse) +"ZD" = ( +/obj/structure/closet/crate/large, +/obj/item/bot_assembly/ed209, +/obj/item/bot_assembly/ed209, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) +"ZE" = ( +/obj/effect/turf_decal/road/line/edge/opaque/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"ZF" = ( +/obj/structure/flora/ash/garden/arid, +/turf/open/floor/plating/asteroid/rockplanet/lit, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ZJ" = ( +/obj/item/stack/ore/salvage/scrapplasma, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/rockplanet/shippingdock) +"ZK" = ( +/obj/structure/railing{ + max_integrity = 70; + dir = 4 + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ZL" = ( +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ZM" = ( +/obj/effect/decal/fakelattice, +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/concrete/pavement{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ZR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/slab_1{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ZS" = ( +/obj/effect/turf_decal/road/line/opaque/yellow{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/concrete/pavement, +/area/ruin/rockplanet/shippingdockwarehouse) +"ZW" = ( +/obj/item/mine/pressure/explosive/rusty/live, +/turf/open/floor/concrete/slab_2{ + light_power = 0.6; + light_range = 2 + }, +/area/overmap_encounter/planetoid/rockplanet/explored) +"ZZ" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ruin/rockplanet/shippingdockwarehouse) + +(1,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(2,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(3,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +pi +ib +wf +Wn +ib +pi +ib +Wn +Wn +ib +Wn +ib +ib +ib +ib +ib +pi +ib +ib +ib +FV +ib +ib +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(4,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +Wn +Wn +ib +ib +Zo +Wn +Wn +Wn +Wn +Wn +ib +ib +Zo +Wn +Wn +ib +Wn +Wn +ib +zX +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(5,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +Mm +Wn +Wn +Wn +ib +Wn +ib +NH +Wn +Wn +Wn +Mm +Wn +Wn +Wn +Wn +NH +ib +Wn +ib +ib +ib +ib +FV +ib +pi +ib +ib +zX +ib +ZF +ib +ib +ib +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(6,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +ib +pS +Wn +Wn +Wn +Wn +Wn +pS +Wn +Wn +Wn +Wn +Wn +Wn +ib +ib +pi +Wn +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +Zo +Wn +Wn +Wn +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(7,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +FV +ib +ib +IY +IY +zD +zD +zD +zD +zD +zD +zD +zD +zD +zD +zD +zD +zD +Yt +Yt +zD +zD +zD +zD +zD +zD +zD +zD +zD +zD +IY +IY +Wn +ib +pS +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(8,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +ib +IY +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +MA +MA +MA +MA +MA +MA +MA +MA +Ev +Ev +Ev +Ev +Ev +Ev +Ev +IY +Wn +ib +Wn +Wn +Wn +Wn +ib +ib +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(9,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +ZF +ib +jD +Ev +FK +IV +IV +IV +IV +IV +IV +IV +IV +hb +PZ +Oa +IV +IV +eY +Qr +IV +IV +IV +Oa +Oa +Oa +IV +IV +ud +Ev +jD +Wn +ib +Wn +XB +ib +Wn +Wn +ib +ib +ib +ib +ib +FV +ib +ib +ib +ib +pi +ib +ib +ib +GP +GP +GP +GP +GP +GP +GP +"} +(10,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +pi +ib +ib +ib +jD +Ev +zH +uQ +mU +mU +mU +mU +xi +mU +Kq +ED +sU +xi +xi +Py +xc +zH +Kq +Py +xi +xi +xi +mU +mU +Kq +bo +Ev +jD +ib +Wn +Mm +ib +ib +qM +Wn +Wn +Wn +pS +Wn +Wn +Wn +ib +Wn +Wn +Mm +Wn +ib +ib +ib +Wn +Wn +Wn +Wn +ib +GP +GP +"} +(11,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +zX +ib +jD +Ev +zH +mU +xi +Py +xi +xi +mU +mU +xi +ED +sU +mU +mU +xi +xc +zH +xi +xi +xi +xi +xi +HL +mU +xi +bo +Ev +jD +ib +Wn +Wn +ib +ib +ib +ib +Iu +ib +ib +ib +ib +Wn +Wn +Wn +ib +ib +Wn +Wn +NH +Wn +Wn +ib +ib +Zo +ib +GP +GP +"} +(12,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +ib +ib +jD +Ev +zH +mU +mU +xi +xi +mU +mU +HL +mU +ED +So +xi +xi +mU +Pc +zH +xi +xi +mU +mU +xi +xi +mU +xi +bo +Ev +jD +ib +Wn +Wn +NH +Wn +pS +Wn +Wn +Wn +Mm +Wn +Wn +Wn +pS +Wn +Wn +Zo +Wn +Wn +Wn +ib +ib +ib +pi +Wn +ib +GP +GP +"} +(13,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +qM +ib +ib +ib +ib +jD +Ev +zH +Kq +mU +mU +su +xi +xi +xi +Kq +va +sU +xi +Ys +xi +Pc +Cy +uQ +HL +xi +mU +mU +xi +mU +Kq +bo +Ev +jD +ib +ib +ib +ib +ib +ib +ib +Wn +Wn +Wn +Wn +Wn +Wn +Wn +Wn +Wn +ib +ib +Wn +Wn +Wn +Wn +Wn +Wn +Wn +ib +GP +GP +"} +(14,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +pi +FV +ib +jD +Ev +zH +Po +xi +xi +xi +xi +xi +xi +xi +bo +se +uo +xi +xi +wX +zH +mU +mU +xi +xi +mU +mU +Py +xi +ED +Ev +Lh +zD +zD +zD +zD +zD +zD +zD +Yt +zD +zD +zD +zD +zD +zD +zD +zD +zD +zD +zD +zD +zD +IY +IY +ib +ib +ib +GP +GP +"} +(15,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +ib +ib +jD +Ev +zH +xi +XI +xi +xi +xi +Nh +xi +xi +bo +So +xi +xi +xi +xc +zH +xi +mU +xi +xi +Py +xi +xi +mU +ED +Ev +Ev +Ev +MA +MA +MA +MA +MA +MA +MA +MA +MA +MA +MA +MA +MA +MA +MA +wY +MA +Ev +Ev +Ev +Ev +IY +ib +ib +ib +GP +GP +"} +(16,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +XB +ib +ib +pi +jD +Ev +zH +xi +SO +jR +xi +Nh +zL +SO +xi +bo +So +Ys +xi +xi +xc +zH +xi +mU +mU +xi +xi +xi +xi +mU +bo +Ev +Ev +Wc +CW +hN +zU +gG +hN +NR +KA +ZW +ZL +NR +KA +hN +gG +CW +zU +Ub +CW +hN +BH +MA +Ev +jD +ib +zX +ib +ib +GP +"} +(17,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +ib +ib +jD +Ev +zH +zE +SO +gD +SO +SO +yO +SO +Ti +bo +So +xi +xi +xi +Pc +Cy +Uy +mU +ht +ht +mU +mU +xi +Ti +ED +MA +zU +Xk +SM +ch +ZR +SM +xS +hY +Kt +zU +tX +hY +hY +Fg +ZR +xS +SM +ZR +EP +ch +SX +zU +Ev +jD +ib +ib +ib +ib +GP +"} +(18,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ZF +ib +ib +jD +Ev +zH +xi +SO +Tl +AW +ZJ +JF +dw +lp +ED +se +Po +xi +su +rN +zH +xi +xi +xi +CM +mU +mU +xi +su +ED +Ev +hN +zK +Ev +Ev +um +um +qn +qn +qn +on +vR +vR +MQ +xh +lf +We +cn +Ev +cn +KJ +HW +gG +Ev +jD +ib +ib +qM +ib +GP +"} +(19,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +Wn +zX +Wn +qM +ib +jD +Ev +zH +xi +SO +SO +ku +zg +SO +tN +Nh +ED +So +xi +mU +xi +xc +zH +xi +xi +xi +My +mU +xi +mU +mU +bo +Ev +zU +QQ +qn +qn +um +EG +le +FU +qn +GW +UG +bv +ra +LL +zf +Ul +cn +yl +uZ +bY +QQ +hN +Ev +jD +ib +XB +ib +ib +GP +"} +(20,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +Wn +Wn +Wn +ib +ib +jD +Ev +zH +Ys +JE +SO +tp +lC +SO +JE +xi +ED +So +mU +mU +xi +xc +zH +xi +xi +xi +hp +mU +xi +mU +mU +ED +MA +KA +Dv +qn +Rq +Fv +Qi +aq +ws +um +um +um +qn +qn +Fs +cn +tg +cn +tg +zf +tg +HK +zU +tM +jD +ib +ib +ib +ib +GP +"} +(21,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +Wn +Wn +ib +jD +Ev +zH +Ic +Nh +Np +LW +vs +Np +HL +Ti +ED +So +mU +xi +xi +xc +zH +Ic +xi +xi +xi +mU +xi +mU +Ti +ED +MA +NR +mP +yN +nZ +Gz +uF +Mv +aq +IH +um +HY +bH +qn +EC +cn +Uj +Bi +tg +cn +TY +zK +zU +Ev +Km +uP +ib +ib +pi +GP +"} +(22,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +pi +Wn +Wn +ib +jD +Ev +zH +xi +EZ +tN +xd +mx +SO +JE +xi +ED +oi +mU +xi +Py +wX +zH +xi +Py +xi +mU +xi +xi +mU +xi +ui +MA +ZL +Dv +yN +nZ +sO +VJ +zd +Oz +DP +um +Wk +nh +qn +EC +cn +TY +WH +Uj +cn +tg +Vh +gG +MA +jD +ib +ib +ib +ib +GP +"} +(23,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +Wn +Wn +jD +Ev +zH +Nh +tN +SO +ER +Vg +SO +SO +XI +ED +So +mU +mU +xi +xc +zH +xi +xi +xi +mU +xi +HL +mU +xi +ED +MA +NR +HW +qn +BJ +Qi +FZ +uF +gN +Yx +um +um +zy +um +iB +IK +yj +yf +uq +Ei +pB +HK +Ov +MA +jD +ib +FV +ib +ib +GP +"} +(24,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +Wn +Wn +Lb +Pn +Ev +zH +xi +SO +kf +OG +tQ +ca +SO +XI +ED +So +xi +mU +xi +Pc +Cy +mU +mU +xi +mU +xi +xi +mU +xi +ED +MA +ZL +QQ +qn +qn +qn +um +um +Lq +nj +um +Mw +Uf +um +um +um +um +qn +pv +Ov +MA +Vh +ZL +MA +jD +ib +ib +ib +ib +GP +"} +(25,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +Wn +pS +Wn +CH +Ev +zH +Uy +Vf +SZ +Ew +xx +AW +Wh +Ti +ED +So +xi +mU +mU +Pc +zH +Ic +mU +Yf +xi +xi +xi +mU +Ti +ED +MA +ZW +QQ +yN +KS +Qg +QB +um +vj +VE +dL +JU +Ke +ux +XO +iv +XO +Zn +gc +NR +zU +Dv +Ov +MA +jD +ib +ib +zX +ib +GP +"} +(26,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +Wn +ib +Lb +Wn +Pn +tM +zH +mU +mI +cZ +bj +cz +px +Wh +xi +ED +oi +HL +xi +xi +wX +zH +xi +xi +mU +xi +Py +xi +mU +xi +ED +Ev +hN +ys +yN +dI +hi +Si +um +RV +Nj +hB +dv +eJ +au +Ls +MG +NU +dR +di +EP +EP +xT +Ev +MA +jD +ib +ib +ib +ib +GP +"} +(27,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +Wn +Wn +ib +jD +Ev +zH +xi +Wh +cZ +mx +QI +px +mI +mU +ED +So +xi +xi +xi +xc +zH +xi +xi +mU +xi +xi +mU +xi +xi +ED +Ev +KA +mP +yN +kI +bT +Yk +um +Yy +aC +CT +Xi +Su +um +um +qn +qn +um +NR +CW +Ev +Ev +Ev +MA +jD +ib +pi +ib +ib +GP +"} +(28,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +FV +Wn +Wn +ib +jD +Ev +zH +xi +Wh +Pr +Uk +bj +HI +Vf +mU +bo +So +xi +xi +xi +xc +Cy +mU +mU +mU +xi +xi +mU +xi +xi +ED +Ev +KA +HW +um +um +ue +fb +rO +Mz +IE +lT +Ce +xC +yN +Un +Zs +SY +um +uT +zU +MA +Ev +MA +UD +jD +ib +ib +ib +ib +GP +"} +(29,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +Wn +Wn +pS +jD +Ev +zH +Ic +Wh +Il +tQ +SV +ER +Wh +Ti +bo +So +xi +xi +mU +Pc +zH +Ic +xi +mU +xi +mU +xi +xi +Ti +ED +MA +ZL +QQ +KA +um +QC +cw +um +Rp +zV +Pw +xe +IU +yN +Ri +lB +Zs +WJ +Ov +CW +MA +Ev +MA +Ev +CH +ib +ib +pi +ib +GP +"} +(30,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +Wn +Wn +Wn +jD +Ev +zH +xi +SO +fG +Ju +tQ +ic +SO +xi +bo +oi +xi +Py +mU +wX +zH +xi +xi +mU +xi +mU +xi +ob +xi +bo +MA +ZL +mP +ZL +um +qn +qn +um +AL +IE +um +yN +yN +yN +lB +Ri +Zs +Ro +ZL +zU +MA +MA +Ev +Ev +jD +qM +ib +ib +ib +GP +"} +(31,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +pS +Wn +Wn +Wn +jD +Ev +zH +HL +tN +SO +TW +nr +SO +Nq +XI +bo +So +xi +mU +mU +xc +zH +xi +mU +mU +mU +xi +xi +ob +xi +bo +MA +hN +Dv +NR +um +db +zv +qn +Pf +sz +um +Zs +Un +lB +lB +Zq +lB +WJ +CW +Ov +MA +wY +Ev +Ev +jD +ib +ib +qM +ib +GP +"} +(32,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +Wn +ib +jD +Ev +Cy +xi +ZM +SO +ns +zT +SO +qW +xi +bo +So +xi +mU +xi +xc +zH +xi +mU +xi +mU +Py +cd +xY +fN +bo +Ev +CW +QQ +KA +um +iQ +MO +qn +cS +wP +qn +SY +Zs +SY +lB +gH +Zs +mc +zU +NR +Ev +wY +Ev +Ev +jD +ib +ib +ib +ib +GP +"} +(33,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +Wn +Mm +ib +jD +Ev +Cy +xi +Nh +Np +eb +UV +Np +xi +xi +bo +So +mU +xi +xi +xc +zH +mU +mU +mU +mU +xi +xi +jK +sl +bo +Ev +gG +QQ +ZL +um +um +Ho +RW +CN +pX +qn +lB +Zs +lB +Un +Zs +SY +lr +zU +Ov +Ev +wY +MA +Ev +IY +Ov +ib +ib +ib +GP +"} +(34,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +Wn +Wn +Wn +ib +ib +jD +Ev +Sr +Py +xi +Np +Np +Np +Np +xi +Ys +ED +se +mU +xi +HL +wX +zH +mU +xi +mU +xi +xi +nR +fd +CE +bo +Ev +Wc +HK +NR +KA +um +um +um +rK +vi +qn +Zs +SY +sp +Zs +lB +lB +WJ +gG +ZL +CW +hN +CW +KA +cv +Ov +ib +ib +ib +GP +"} +(35,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +Wn +pS +ib +ib +ib +jD +Ev +Sr +mU +xi +xi +xi +xi +Po +mU +mU +ED +So +xi +xi +xi +Pc +zH +xi +xi +mU +xi +xi +xi +xi +xi +bo +Ev +Ev +sY +KG +ZL +NR +KA +um +hh +Qv +qn +um +UA +ZL +NK +wp +wp +Sq +zU +NR +hN +zU +zU +Ov +cv +Ov +ib +ib +ib +GP +"} +(36,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +ib +ib +jD +Ev +Cy +xi +mU +mU +xi +mU +mU +mU +xi +bo +So +xi +Py +mU +Pc +zH +xi +xi +mU +mU +xi +xi +xi +xi +bo +Ev +Ev +zU +Dv +Ov +Ov +Ov +hf +WT +Wj +zU +zU +ZL +Ov +Ov +NR +NR +Ov +CW +KA +Ev +MA +MA +Ev +IY +Ov +ib +ib +ib +GP +"} +(37,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +ib +FV +jD +Ev +cT +Mt +hm +AQ +AQ +AQ +aY +hm +Mt +im +So +xi +mU +DR +xc +AG +ir +BN +AQ +Oe +AQ +AQ +hm +Mt +im +Ev +Ev +MA +wv +fn +fn +YA +TH +oz +Wv +Ov +NR +zU +zU +gG +tL +ZL +NR +zU +CW +Ev +MA +MA +Ev +jD +ib +ib +ib +zX +GP +"} +(38,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ZF +ib +ib +jD +Ev +Cy +Kq +xi +mU +mU +mU +mU +mU +uQ +bo +oi +mU +xi +xi +rN +Cy +uQ +xi +xi +mU +xi +mU +mU +uQ +bo +Ev +Ev +Ev +Tc +NR +MA +MA +Ev +Ev +Ev +Ev +Ev +Ev +Ev +MA +MA +Ev +Ev +KA +CW +Ev +MA +Ev +MA +jD +pi +ib +ib +ib +GP +"} +(39,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +ib +pi +ib +jD +Ev +Cy +xi +mU +Py +xi +xi +xi +xi +mU +tb +sU +xi +xi +xi +Pc +qH +xi +xi +xi +mU +mU +xi +Py +mU +ED +Ev +Ev +Ov +Tc +CW +MA +Ev +Ov +Ov +he +NL +vS +Ov +Ov +Ev +Ev +MA +Ov +Ov +hN +UD +Ev +MA +MA +jD +ib +ib +ib +FV +GP +"} +(40,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +zX +ib +ib +ib +jD +Ev +zH +mU +mU +Po +xi +xi +xi +xi +xi +cf +So +xi +xi +mU +Pc +qH +Py +xi +xi +xi +mU +xi +xi +xi +ED +Ev +Ev +Ov +mY +zU +Ev +Ov +Ov +Cx +ZK +ZK +ZK +kp +Ov +zU +KA +hN +zU +NR +Ov +MA +Ev +MA +Ev +jD +ib +qM +ib +ib +GP +"} +(41,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +ib +FV +ib +ib +ib +XB +ib +ib +jD +Ev +vt +MX +Gs +Gs +Gs +Gs +Gs +Gs +MX +Gy +wE +xi +xi +mU +gr +SF +Gs +Gs +Gs +Gs +MX +MX +MX +Gs +YI +MA +MA +hN +YO +MA +Ev +Ov +Cx +yW +kV +Kh +fT +Fj +kp +st +Ov +NR +KA +zU +Ev +Ev +Ev +MA +Ev +jD +ib +ib +ib +ib +GP +"} +(42,1,1) = {" +GP +GP +GP +GP +GP +GP +ib +ib +ib +ib +ib +ib +ib +ib +qM +ib +jD +MA +Ev +MA +Ev +Ev +Ev +Ev +MA +MA +Ev +zH +mU +xi +xi +mU +mU +bo +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +MA +MA +Ev +KA +re +MA +Ev +Ov +Eh +fT +pw +qB +qB +pw +mc +zU +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +MA +IY +ib +ib +ib +ib +GP +"} +(43,1,1) = {" +GP +GP +GP +GP +GP +GP +Wn +Wn +pi +ib +ib +ib +pi +ib +ib +ib +jD +Ev +MA +MA +Ev +Ev +Ev +MA +Ev +Ev +Ev +zH +mU +xi +xi +xi +mU +bo +wo +gO +Ev +Ev +Ev +Ev +Ev +JQ +MA +wY +Ev +tL +Tc +Ev +Ev +Ov +Eh +Kh +qB +qB +qB +kV +mc +zU +Ev +mb +zD +zD +zD +zD +zD +zD +IY +IY +ib +ib +ib +GP +GP +"} +(44,1,1) = {" +GP +GP +GP +GP +GP +GP +Wn +Wn +ib +ib +ib +ib +ib +ib +ib +ib +jD +Ev +MA +wY +MA +Ev +Ev +Ev +Ev +Ev +Ev +xo +hm +pT +mE +mE +BN +ea +zM +zM +vz +vz +vz +Ev +Ev +Ev +Ev +wY +Ev +Ov +YO +Ev +Ev +Ov +Ro +pV +qB +qB +qB +pw +mc +zU +Ev +jD +ib +Wn +Wn +ib +ib +Wn +ib +ib +ib +zX +ib +GP +GP +"} +(45,1,1) = {" +GP +GP +GP +GP +GP +GP +ib +NH +Wn +IY +IY +zD +zD +zD +zD +zD +HA +Ev +MA +MA +MA +Ev +py +Bz +Bz +Bz +SI +py +Ur +mU +xi +xi +Wp +zM +zM +Qn +FQ +DF +zM +zM +zM +FX +Ev +wY +Ov +KA +Tc +Ev +Ev +Ov +Eh +pw +qB +qB +Kh +fT +mc +zU +tM +jD +Wn +Zo +Wn +zX +Wn +Wn +ib +ib +ib +ib +ib +GP +GP +"} +(46,1,1) = {" +GP +GP +GP +GP +GP +GP +pi +ib +Wn +IY +Ev +MA +MA +MA +MA +MA +MA +MA +hN +Ov +hN +Ov +Hk +Lf +mC +Ly +Ly +Jd +xi +mU +pp +mU +xi +wj +GZ +xy +Jz +nP +rY +jT +LY +ch +SM +UN +xS +nB +lg +MA +Ev +tL +Gk +Ww +Kh +pV +pw +al +Sq +zU +Ev +Pn +Wn +Wn +ib +Wn +ib +qM +ib +pi +ib +ib +ib +GP +GP +"} +(47,1,1) = {" +GP +GP +GP +GP +GP +GP +Wn +Wn +Wn +jD +Ev +sf +Cx +ZK +ZK +kp +ZL +KA +NR +Ov +zU +ZW +tx +Ly +Ly +Ly +JI +cb +xi +xi +xi +xi +xi +wj +qG +Tx +ml +NE +OO +JD +Kx +jU +jv +jZ +pD +xf +Ev +MA +MA +Ov +Ov +Gk +Dz +Dz +Dz +Sq +st +zU +Ev +jD +ib +Lb +Wn +Wn +Wn +ib +ib +ib +GP +GP +GP +GP +GP +"} +(48,1,1) = {" +GP +ib +pi +ib +Wn +ib +Wn +Zo +Wn +jD +Ev +Vu +yW +pS +Mm +Fj +kp +Ov +KA +Ev +MA +Ev +py +qU +Vn +Vn +qU +py +ky +ky +ky +ky +ky +vz +vz +il +hD +UW +zM +zM +vz +Bm +Ov +BH +Ev +Ev +Ev +Ev +MA +MA +zU +Ov +Hd +iH +yc +Ov +zU +Ev +Ev +jD +ib +Wn +gR +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(49,1,1) = {" +GP +ib +ib +Wn +Wn +ib +Wn +Wn +ib +jD +MA +fS +pi +ib +Wn +pS +mc +Ov +Ov +Ev +MA +Ev +Ev +Ev +Ev +Ev +Ev +Xm +BO +mi +mi +mi +BO +Xj +zM +zM +zM +vz +zM +gO +Ev +Ev +CW +Wc +yJ +NY +NY +NY +NY +NY +tr +MA +MA +MA +MA +MA +Ev +Ev +Ev +IY +ib +pS +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(50,1,1) = {" +GP +ib +ZF +Wn +NH +Wn +Wn +Mm +ib +jD +MA +Eh +ib +Mm +Wn +ib +mc +KA +KA +MA +MA +Ev +Ev +Ev +Ev +Ev +Ev +Cy +mU +mU +mU +mU +mU +bo +Ev +Ev +Ev +wo +wo +Ev +Ev +MA +Wc +zU +ey +XD +IV +IV +IV +tq +Av +Ev +mb +zD +zD +zD +zD +zD +IY +IY +ib +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(51,1,1) = {" +GP +ib +ib +ib +ib +pi +ib +Wn +Wn +jD +MA +Ro +Wn +XB +pi +Wn +YE +NR +Ov +MA +Ev +Ev +MA +MA +MA +Ev +MA +zH +xi +xi +xi +xi +mU +bo +Ev +Ev +Ev +Ev +Ev +Ev +MA +MA +zU +NR +ey +zH +xi +qi +xi +bo +Av +Ev +jD +ib +ib +ib +ib +ib +ib +Wn +Wn +Wn +FV +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(52,1,1) = {" +ib +ib +IY +IY +zD +zD +zD +zD +zD +HA +Ev +Eh +pS +Wn +ib +Mm +mc +zU +zU +Ev +MA +MA +Ev +Ev +Ev +MA +Ev +zH +xi +xi +xi +xi +mU +ui +MA +MA +wY +PE +wY +MA +MA +MA +Ov +Ov +ey +zH +zm +sc +sc +bo +Av +Ev +jD +ib +NH +Wn +Iu +Wn +Wn +Mm +ib +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(53,1,1) = {" +pi +ib +IY +Ev +Ev +sS +sS +sS +Ev +Ev +Ev +Gk +Ww +Wn +pi +Iv +of +zU +NR +zU +zU +KA +Ov +Ov +zU +Ov +KA +Yr +aV +Gs +Gs +Gs +aV +NP +zU +hN +zU +vM +zU +Wc +zU +tL +NR +KA +ey +zH +sc +sc +zm +bo +Av +Ev +jD +ib +Wn +ib +Wn +ib +Wn +Wn +Wn +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(54,1,1) = {" +XB +ib +jD +MA +xv +sS +By +sS +MA +FX +Ev +Ev +Gk +Dz +OI +of +ZL +Ov +hN +CW +KA +Ov +ZW +Ov +hN +KA +KA +wN +Ej +Ej +bN +Ej +Ej +bA +Ov +KA +NR +KA +Ov +NR +hN +Ov +Ov +Ov +ey +zH +Po +Td +xi +bo +Av +Ev +jD +Wn +Wn +ib +Zo +Wn +ib +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(55,1,1) = {" +ib +ib +jD +MA +Ev +By +Ln +sS +MA +Ev +Ev +Ev +Ev +Ev +MA +Ev +Ev +Ev +zU +KA +Ov +NR +Ov +hN +KA +Ov +Ov +lc +BO +IV +IV +IV +BO +VW +KA +Ov +KA +KA +Ov +NR +zU +KA +Ov +Ev +ey +Aq +Gs +Gs +Gs +Sd +Av +Ev +jD +Wn +Mm +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(56,1,1) = {" +ib +ib +jD +MA +FX +wO +Ln +nT +MA +MA +Ev +Ev +Ev +MA +Ev +Ev +MA +MA +MA +Ev +Ev +Ev +MA +MA +MA +Ev +Ev +zH +xi +xi +mU +mU +mU +ED +Ev +Ev +Ev +Ev +Ev +MA +wY +wY +MA +Ev +JZ +HN +HN +HN +HN +HN +VX +LE +IY +Wn +Wn +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(57,1,1) = {" +ib +FV +jD +MA +Ev +Ev +Ev +xv +MA +MA +MA +Ev +Ev +MA +Ev +MA +MA +Ev +Ev +Ev +Ev +MA +Ev +Ev +MA +Ev +FK +FD +xi +mU +mU +xi +xi +Br +wB +MA +MA +Pi +nW +MA +Ev +MA +Ev +MA +Ev +mb +zD +zD +zD +zD +zD +IY +IY +Wn +Wn +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(58,1,1) = {" +ib +ib +jD +Ev +MA +Fn +IV +Oa +IV +IV +Oa +Oa +Oa +eR +DV +Oa +IV +IV +IV +Oa +Oa +IV +IV +IV +Oa +IV +FD +xi +xi +mU +xi +xi +Po +xi +Br +IV +Oa +Rw +Oa +Rw +ud +rl +MA +Ev +Ev +jD +ib +ib +ib +ib +ib +Wn +Wn +Wn +pi +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(59,1,1) = {" +ib +ib +CH +Ev +FK +FD +mU +mU +xi +xi +Id +fV +og +xi +xi +mU +qo +Ty +HM +xi +xi +xi +Id +fV +HM +xi +xi +xi +mU +mU +mU +mU +mU +mU +mU +qo +Ty +wq +mU +Kc +to +ud +MA +Ev +Ev +jD +Wn +ZF +Wn +Wn +pS +Wn +ib +Wn +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(60,1,1) = {" +ib +ib +jD +Ev +zH +mU +mU +Po +xi +xi +GO +ve +xQ +xi +xi +xi +GO +ve +xQ +xi +xi +xi +GO +ve +xQ +DR +mU +mU +mU +xi +xi +xi +xi +xi +xi +GO +hr +ju +ti +JO +gj +qR +MA +HV +Ev +jD +Wn +Wn +zX +ib +Wn +Wn +ib +ib +Wn +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(61,1,1) = {" +GP +ib +jD +Ev +zH +mU +xi +xi +xF +Gs +MX +MX +MX +MX +Gs +Gs +Gs +Gs +Gs +Gs +Gs +Gs +Gs +Gs +Gs +MX +MX +Gs +Gs +Gs +Gs +Gs +Gs +Gs +Gs +Gs +MX +Xx +cB +hU +Aa +qR +Ev +MA +Ev +jD +ib +pS +Wn +Wn +NH +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(62,1,1) = {" +GP +pi +jD +Ev +zH +qo +og +xF +fx +Ev +MA +Ev +Ev +MA +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +Ev +MA +vt +kw +aj +HM +ED +MA +MA +MA +Xh +ib +Wn +Wn +Wn +Wn +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(63,1,1) = {" +GP +ib +jD +Ev +zH +BA +yT +bo +gO +Ai +Ev +gO +Ev +MA +PP +PP +en +en +en +en +en +en +en +en +en +en +en +en +en +en +en +en +en +en +Ev +SB +MA +MA +Cy +aH +yT +ED +Ev +Ev +Ev +Xh +ib +ib +pS +Wn +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(64,1,1) = {" +GP +ib +jD +Ev +zH +UY +ju +ED +Ev +Ev +Ev +SB +DI +XU +PP +ZB +hG +YG +Ks +wb +KR +SJ +Ui +Nb +pY +XP +nJ +fk +ul +Gr +nO +ct +Kz +en +en +Ev +Ev +Ev +Sr +UY +xQ +bo +Ev +Ev +Ev +jD +ib +Wn +Wn +Wn +Mm +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(65,1,1) = {" +GP +ib +Pn +Fx +zH +xi +xi +bo +Ev +gO +Ai +Ev +Zz +Ny +PP +gb +XH +OQ +fr +Cm +Mj +Bx +mu +FN +BI +GM +Cm +KR +WS +dE +rC +op +WX +qc +en +Ev +Ev +Ev +Cy +mU +mU +bo +Ev +Ev +Ev +jD +ib +FV +Wn +ib +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(66,1,1) = {" +GP +ib +jD +Ev +zH +Id +og +bo +Ai +Ev +SB +Ai +PP +PP +PP +PP +OQ +yx +WE +nJ +Mj +lu +ut +gm +BI +XP +nJ +KR +AE +mF +cm +Qq +Kr +sa +en +Ev +MA +MA +zH +Id +og +ED +MA +Ev +Ev +lo +ib +ib +Wn +Wn +Wn +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(67,1,1) = {" +GP +ib +jD +MA +Cy +BA +md +ED +Ev +Ev +Ev +PP +PP +Rl +sx +en +EL +sP +en +tv +kJ +en +YD +Xu +ZZ +en +MM +xR +en +bb +Qy +fz +Ug +RT +en +Bm +MA +Ev +zH +aH +yT +bo +MA +MA +Ev +jD +ib +Wn +Wn +ib +ib +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(68,1,1) = {" +GP +ib +jD +MA +zH +GO +xQ +Br +ud +Ev +TE +PP +NB +LS +CF +LS +jE +IS +cl +IS +IS +LS +LS +aA +eP +aW +LS +LS +rS +cI +jE +jE +LS +HB +en +gh +Ev +FK +FD +GO +xQ +bo +SB +MA +Ev +jD +ib +Wn +Wn +Wn +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(69,1,1) = {" +GP +ib +CH +MA +zH +Po +xi +xi +TA +Oa +IV +Th +xn +xn +xn +ah +ah +xn +QD +QD +Px +Px +ah +Zd +cX +xn +xn +xn +ah +ah +ah +Px +xn +xn +XY +IV +IV +FD +xi +xi +xi +Ig +MA +MA +Ev +jD +ib +Mm +pi +qM +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(70,1,1) = {" +GP +ib +jD +Ev +Cy +xi +mU +mU +qo +Ty +og +JL +hW +lZ +ZE +es +Ss +Wb +hT +ci +ou +dS +tC +PA +hL +Wb +Wb +Wb +Om +kb +ZS +iK +wu +Wb +Hx +rV +fV +og +xi +xi +mU +ED +MA +Ev +Ev +jD +ib +Wn +ib +ib +wf +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(71,1,1) = {" +GP +ib +jD +Ev +XZ +kw +mU +xi +GO +hr +PM +UX +lZ +Yz +Ns +bZ +KQ +lZ +tR +jQ +vD +lM +Ob +wy +nK +Yz +lZ +lZ +lZ +wM +bZ +pz +Yz +NQ +ms +Rz +ve +xQ +mU +mU +yV +fx +Ev +yX +Ev +jD +ib +Wn +Wn +ib +Wn +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(72,1,1) = {" +ib +ib +jD +Ev +Ev +vt +Gs +Gs +Gs +MX +Gs +aR +FP +sC +oC +oC +oC +oC +gF +ee +BG +FP +FP +FP +Io +nY +gv +iL +Jq +Jq +Zh +LB +oC +Lu +ko +Tw +Gs +MX +MX +Gs +fx +vV +jk +Gg +Ev +jD +Wn +Zo +Wn +FV +Wn +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(73,1,1) = {" +pi +ib +jD +Ev +Ev +Ev +Ev +Ev +MA +MA +TE +PP +WO +LS +IS +qN +IS +IS +LS +IS +IS +cI +aW +mV +bV +bV +XG +XG +pI +pI +GB +XG +XG +XG +bV +Ps +GN +AI +Ei +Ei +kv +Yc +wH +uW +Ev +jD +ib +ib +Wn +ib +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(74,1,1) = {" +ib +Wn +jD +Ev +MA +MA +MA +MA +Ev +Ev +Ev +PP +CV +Lr +OQ +OT +Yu +OQ +vG +tz +pl +hG +OQ +OQ +XG +fB +Mg +sL +Mg +Mg +FH +jB +Od +po +XG +CO +Ue +Pb +Gg +Ev +DE +Pp +uW +Ev +Ev +jD +ib +NH +Wn +ZF +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(75,1,1) = {" +Wn +Wn +IY +Ev +MA +MA +MA +MA +UD +Ev +Ev +en +Fb +Wl +lU +Vt +UT +ZA +zS +zz +Fc +nV +ep +ut +vP +Mg +Rd +Mg +xl +Mg +Rd +Eg +Od +Gj +XG +Pb +Gg +jC +ce +AJ +wY +We +Ev +Ev +Ev +IY +Wn +Wn +Wn +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(76,1,1) = {" +Wn +pi +IY +IY +zD +zD +zD +Bl +MA +MA +Ev +en +zz +NT +mu +EE +ut +mu +hE +mu +Yn +ut +ZD +mu +vP +Mg +lj +Mg +YZ +Mg +lj +kX +Od +if +XG +sq +VK +FM +Ue +MA +mb +zD +zD +zD +IY +IY +Wn +ib +zX +Wn +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(77,1,1) = {" +Wn +Wn +ib +Zo +Wn +ib +ib +jD +Ev +Ev +MA +PP +PP +yH +Cu +tn +oj +Tv +pm +pe +JG +lw +eL +ut +bV +fB +rD +Mg +lR +Mg +FB +bV +bV +bV +bV +sX +Gg +Pb +Ue +tY +jD +Zs +lB +lB +lB +lB +ib +ib +ib +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(78,1,1) = {" +ib +Wn +Wn +Wn +Wn +pS +Wn +jD +Ev +Ev +MA +Ev +PP +PP +PP +PP +en +en +en +PP +PP +PP +en +en +XG +bV +bV +bV +XG +XG +XG +bV +Ny +gO +Ai +Pb +qL +FM +Ft +Ev +jD +Zs +Zs +lB +lB +Ri +lB +ib +ib +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(79,1,1) = {" +GP +ib +ib +ib +pS +XB +Wn +jD +Ev +Ev +MA +MA +Ev +Ev +Ev +Ev +Ev +MA +MA +MA +MA +MA +MA +Ev +Ev +HV +Ev +Ev +Ev +Ev +DI +MA +MA +MA +gO +fM +Ue +Xe +Gg +Ev +jD +lB +Zs +Ch +Zs +lB +lB +Wn +Wn +Wn +ib +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(80,1,1) = {" +GP +GP +GP +GP +ib +Wn +Wn +IY +Ev +Ev +Ev +Ev +Ev +MA +MA +MA +MA +HV +MA +Ev +Ev +Ev +MA +MA +MA +MA +MA +MA +MA +Ev +Ev +Ev +Ai +MA +DI +MA +lQ +Ev +Ev +Ev +IY +lB +Zs +lB +Zs +lB +lB +ib +Wn +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(81,1,1) = {" +GP +GP +GP +GP +Zo +Wn +ZF +IY +IY +zD +zD +zD +zD +ll +Ni +zD +zD +zD +ll +ll +ll +ll +UK +ll +ll +ll +ll +ll +ll +ll +ll +UK +zD +zD +zD +Yt +zD +zD +zD +IY +IY +lB +Zs +SY +Zs +lB +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(82,1,1) = {" +GP +GP +GP +GP +Wn +Wn +Wn +ib +ib +ib +Wn +Wn +FV +ib +ib +ib +ib +ib +pi +ib +ib +ib +ib +FV +ib +lB +Zs +lB +Ri +lB +Zs +lB +xZ +lB +Xg +Zs +Zs +SY +Zs +lB +lB +lB +Zs +Zs +Xr +lB +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(83,1,1) = {" +GP +GP +GP +GP +ib +ib +pS +Wn +Wn +NH +ib +Wn +Wn +ib +ib +ib +zX +ib +qM +ib +zX +ib +ib +ib +ib +lB +Zs +Zs +lB +Zs +SY +Zs +Zs +lB +lB +fH +lB +lB +Zs +lB +ny +lB +lB +lB +Zs +lB +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(84,1,1) = {" +GP +GP +GP +GP +ib +ib +Wn +Wn +pS +ib +ib +ib +Wn +Wn +zX +Wn +ib +ib +ib +ib +pi +ib +ib +ib +ib +lB +lB +xZ +Zs +lB +lB +lB +Zs +Ch +Zs +Zs +lB +lB +Ch +Zs +lB +lB +HP +Zs +lB +Ri +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} +(85,1,1) = {" +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +ib +ib +Wn +Wn +pi +ib +ib +ib +ib +qM +ib +ib +GP +GP +GP +GP +GP +GP +lB +Zs +Zs +Zs +SY +ny +lB +lB +lB +Zs +Xr +lB +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +GP +"} diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm index f8b569cebdf4..f59cff023b4a 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm @@ -89,7 +89,7 @@ }, /area/overmap_encounter/planetoid/sand/explored) "eq" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor, +/mob/living/simple_animal/hostile/human/hermit/survivor, /turf/open/floor/plating/asteroid/whitesands{ light_range = 2 }, @@ -157,7 +157,7 @@ /area/ruin) "fO" = ( /obj/structure/chair/plastic, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ faction = list("adobe") }, /turf/open/floor/plating/asteroid/whitesands{ @@ -360,7 +360,7 @@ }, /area/overmap_encounter/planetoid/sand/explored) "nx" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 4; faction = list("adobe") }, @@ -425,7 +425,7 @@ "oB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ faction = list("saloon"); name = "Whitesands Bartender" }, @@ -592,7 +592,7 @@ /turf/open/floor/concrete, /area/ruin) "we" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor, +/mob/living/simple_animal/hostile/human/hermit/survivor, /turf/open/floor/plating/asteroid/whitesands/dried{ light_range = 2 }, @@ -678,14 +678,14 @@ }, /area/overmap_encounter/planetoid/sand/explored) "zB" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1; faction = list("adobe") }, /turf/open/floor/concrete, /area/ruin) "AC" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger{ +/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger{ dir = 4; faction = list("adobe") }, @@ -704,7 +704,7 @@ /turf/open/floor/wood, /area/ruin) "AR" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter, +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter, /turf/open/floor/plating/asteroid/whitesands{ light_range = 2 }, @@ -782,14 +782,14 @@ /area/ruin) "Ed" = ( /obj/item/chair/stool/bar, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1; faction = list("saloon") }, /turf/open/floor/wood, /area/ruin) "Ef" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ dir = 4; faction = list("adobe") }, @@ -939,7 +939,7 @@ /obj/structure/chair/plastic{ dir = 4 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 4; faction = list("adobe") }, @@ -1189,7 +1189,7 @@ /turf/open/floor/concrete, /area/ruin) "TH" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ faction = list("adobe") }, /turf/open/floor/concrete, @@ -1200,7 +1200,7 @@ /area/ruin) "UT" = ( /obj/structure/chair/stool/bar, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1; faction = list("saloon") }, @@ -1209,7 +1209,7 @@ "Vq" = ( /obj/structure/chair/stool/bar, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 8; faction = list("saloon") }, @@ -1253,7 +1253,7 @@ /area/overmap_encounter/planetoid/sand/explored) "Ws" = ( /obj/structure/chair/stool/bar, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 8; faction = list("saloon") }, diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm index 4bf53b738636..7f69ca337c00 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm @@ -80,7 +80,7 @@ /turf/open/floor/wood, /area/ruin/unpowered) "n" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 4 }, /turf/open/floor/wood{ diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm index b17207b75020..400a710091b4 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm @@ -243,7 +243,7 @@ }, /obj/effect/turf_decal/siding/wood, /obj/structure/chair/stool/bar, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor, +/mob/living/simple_animal/hostile/human/hermit/survivor, /turf/open/floor/wood, /area/ruin/whitesands/saloon) "gC" = ( @@ -328,7 +328,7 @@ "ih" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ name = "Hermit Bartender" }, /turf/open/floor/wood{ @@ -499,7 +499,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1 }, /turf/open/floor/wood, @@ -615,7 +615,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 6 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1 }, /turf/open/floor/wood, @@ -654,7 +654,7 @@ /obj/structure/chair/stool/bar{ dir = 1 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1 }, /turf/open/floor/wood{ @@ -666,7 +666,7 @@ dir = 8 }, /obj/item/chair/stool/bar, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 8 }, /turf/open/floor/wood, @@ -744,7 +744,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ dir = 8 }, /turf/open/floor/wood{ @@ -756,7 +756,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1 }, /turf/open/floor/wood{ @@ -981,7 +981,7 @@ /area/ruin/whitesands/saloon) "DT" = ( /obj/structure/chair/wood, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ name = "Robert"; desc = "This fellow seems relatively sane and normal"; faction = list("neutral") @@ -1114,7 +1114,7 @@ /obj/structure/chair/stool/bar{ dir = 8 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 8 }, /turf/open/floor/wood, @@ -1148,7 +1148,7 @@ }, /area/ruin/whitesands/saloon) "Ie" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1 }, /turf/open/floor/plating/asteroid/whitesands/lit, @@ -1389,7 +1389,7 @@ /obj/structure/chair/stool/bar{ dir = 8 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 8 }, /turf/open/floor/wood, @@ -1421,7 +1421,7 @@ /turf/open/floor/wood, /area/ruin/whitesands/saloon) "QV" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter{ +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{ name = "Hermit Bartender"; dir = 4 }, @@ -1497,7 +1497,7 @@ /area/ruin/whitesands/saloon) "Ua" = ( /obj/structure/chair/stool/bar, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 8 }, /turf/open/floor/wood{ @@ -1525,7 +1525,7 @@ /obj/structure/sign/poster/official/cohiba_robusto_ad{ pixel_y = 32 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor, +/mob/living/simple_animal/hostile/human/hermit/survivor, /turf/open/floor/wood{ icon_state = "wood-broken7" }, @@ -1641,7 +1641,7 @@ /obj/structure/chair/stool/bar{ dir = 1 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1 }, /turf/open/floor/wood, diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm index 5d63a30bf22b..d4fa2737cd38 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_chokepoint.dmm @@ -26,7 +26,7 @@ "g" = ( /obj/structure/bed, /obj/item/bedsheet/hos, -/mob/living/simple_animal/hostile/nanotrasen/ranged{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged{ atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0); damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0); name = "\improper Nanotrasen Stranded Security Officer" @@ -34,7 +34,7 @@ /turf/open/floor/plating/asteroid/whitesands/dried, /area/ruin) "h" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged{ atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0); damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0); dir = 4; @@ -46,7 +46,7 @@ /obj/structure/chair/wood{ dir = 8 }, -/mob/living/simple_animal/hostile/nanotrasen/ranged{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged{ atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0); damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0); dir = 8; @@ -93,7 +93,7 @@ /turf/open/floor/plating/asteroid/whitesands, /area/ruin) "v" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged{ atmos_requirements = list("min_oxy"=5,"max_oxy"=0,"min_tox"=0,"max_tox"=0,"min_co2"=0,"max_co2"=999,"min_n2"=0,"max_n2"=0); damage_coeff = list("brute"=1,"fire"=1,"toxin"=1,"clone"=1,"stamina"=0,"oxygen"=0); dir = 8; diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_onlyaspoonful.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_onlyaspoonful.dmm index f74a8895976a..f84ccaf6c8ef 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_onlyaspoonful.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_onlyaspoonful.dmm @@ -65,7 +65,7 @@ /area/ruin/powered) "ew" = ( /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor, +/mob/living/simple_animal/hostile/human/hermit/survivor, /turf/open/floor/plastic, /area/ruin/powered) "eH" = ( @@ -155,7 +155,7 @@ /turf/open/floor/plastic, /area/ruin/powered) "hw" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter, +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter, /turf/open/floor/plastic, /area/ruin/powered) "hA" = ( @@ -318,7 +318,7 @@ pixel_y = 9 }, /obj/effect/decal/cleanable/blood/tracks, -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger, +/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger, /turf/open/floor/plastic, /area/ruin/powered) "wr" = ( @@ -439,7 +439,7 @@ /turf/open/floor/plastic, /area/ruin/powered) "EC" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter, +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter, /turf/open/floor/plating/asteroid/whitesands, /area/overmap_encounter/planetoid/sand/explored) "Fi" = ( diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm index 209709f2599b..e664dfec8d96 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm @@ -804,7 +804,7 @@ /obj/effect/decal/fakelattice{ icon_state = "lattice-2" }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1; faction = list("adobe"); desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body, twisted by the heavy metals and high background radiation of the sandworlds. Their helmet also seems to be filled with vomit" @@ -1003,7 +1003,7 @@ /turf/open/floor/plasteel/tech, /area/ruin/whitesands/pubbycrash/engine_room) "xc" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 4 }, /turf/open/floor/plating/asteroid/whitesands/lit, @@ -1145,7 +1145,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/directional/west, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1; faction = list("saloon") }, @@ -1744,7 +1744,7 @@ /obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 1 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ faction = list("saloon") }, /turf/open/floor/plasteel/dark, @@ -1777,7 +1777,7 @@ /obj/effect/turf_decal/ntspaceworks_small/left{ dir = 4 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 4; faction = list("saloon") }, @@ -1946,7 +1946,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/decal/cleanable/vomit/old, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 1; faction = list("saloon") }, @@ -1969,7 +1969,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 1 }, -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor{ +/mob/living/simple_animal/hostile/human/hermit/survivor{ dir = 4; faction = list("adobe"); desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body, twisted by the heavy metals and high background radiation of the sandworlds. Their helmet also seems to be filled with vomit" @@ -2060,7 +2060,7 @@ /turf/open/floor/plating/asteroid/whitesands/dried, /area/overmap_encounter/planetoid/cave/explored) "Qo" = ( -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged, +/mob/living/simple_animal/hostile/human/hermit/ranged, /turf/open/floor/plating/asteroid/whitesands/dried, /area/overmap_encounter/planetoid/cave/explored) "Qu" = ( diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm index bc8616028058..230481e65503 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_starfurycrash.dmm @@ -34,9 +34,7 @@ }, /area/overmap_encounter/planetoid/cave/explored) "dX" = ( -/obj/item/gun/ballistic/automatic/pistol{ - spawnwithmagazine = 0 - }, +/obj/item/gun/ballistic/automatic/pistol/no_mag, /turf/open/floor/plating/asteroid/whitesands, /area/overmap_encounter/planetoid/cave/explored) "eg" = ( @@ -147,7 +145,7 @@ /obj/effect/turf_decal/industrial/traffic{ dir = 4 }, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space, /turf/open/floor/engine{ initial_gas_mix = "ws_atmos" }, @@ -224,7 +222,7 @@ }, /area/overmap_encounter/planetoid/cave/explored) "mv" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/space, /turf/open/floor/plating/asteroid/whitesands, /area/overmap_encounter/planetoid/cave/explored) "mP" = ( @@ -395,15 +393,15 @@ }, /area/overmap_encounter/planetoid/cave/explored) "wS" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space, /turf/open/floor/plating{ icon_state = "platingdmg2"; initial_gas_mix = "ws_atmos" }, /area/overmap_encounter/planetoid/cave/explored) "xr" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, -/mob/living/simple_animal/hostile/syndicate/ranged/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/space, /turf/open/floor/plating{ icon_state = "platingdmg2"; initial_gas_mix = "ws_atmos" @@ -467,7 +465,7 @@ }, /area/overmap_encounter/planetoid/cave/explored) "Bt" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space, /turf/open/floor/plating{ icon_state = "platingdmg1"; initial_gas_mix = "ws_atmos" @@ -546,7 +544,7 @@ }, /area/overmap_encounter/planetoid/cave/explored) "Eu" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper, +/mob/living/simple_animal/hostile/human/syndicate/ranged/space/stormtrooper, /turf/open/floor/plating{ icon_state = "panelscorched"; initial_gas_mix = "ws_atmos" @@ -632,7 +630,7 @@ }, /area/overmap_encounter/planetoid/cave/explored) "KR" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space, /turf/open/floor/plating/asteroid/whitesands, /area/overmap_encounter/planetoid/cave/explored) "KT" = ( @@ -645,7 +643,7 @@ }, /area/overmap_encounter/planetoid/cave/explored) "Md" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/space, /turf/open/floor/plating{ initial_gas_mix = "ws_atmos" }, @@ -880,7 +878,7 @@ /area/overmap_encounter/planetoid/cave/explored) "Xh" = ( /obj/item/stack/tile/plasteel, -/mob/living/simple_animal/hostile/syndicate/ranged/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/space, /turf/open/floor/plating/asteroid/whitesands/dried, /area/overmap_encounter/planetoid/cave/explored) "XR" = ( diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm deleted file mode 100644 index 63659db94417..000000000000 --- a/_maps/RandomRuins/SpaceRuins/DJstation.dmm +++ /dev/null @@ -1,932 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/ruin/space/djstation/solars) -"ac" = ( -/obj/machinery/power/solar/fake, -/obj/effect/turf_decal/solarpanel, -/turf/open/floor/plasteel/airless, -/area/ruin/space/djstation/solars) -"ad" = ( -/turf/open/floor/plating/airless, -/area/ruin/space/djstation/solars) -"ae" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/space/nearstation) -"af" = ( -/turf/closed/wall, -/area/ruin/space/djstation) -"ag" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"ah" = ( -/turf/open/floor/plating, -/area/ruin/space/djstation) -"ai" = ( -/obj/machinery/telecomms/relay/preset/ruskie, -/obj/machinery/light/directional/north, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"aj" = ( -/obj/machinery/power/terminal, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"ak" = ( -/obj/item/multitool, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"al" = ( -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"am" = ( -/obj/item/extinguisher, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"as" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/syndicate/orange, -/obj/item/clothing/head/helmet/space/syndicate/orange, -/obj/item/clothing/mask/breath, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"at" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"au" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"av" = ( -/obj/machinery/vending/snack, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aw" = ( -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"ax" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"ay" = ( -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"az" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aA" = ( -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aB" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aC" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aD" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aE" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aF" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 8 - }, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aG" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Kitchen"; - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aH" = ( -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/obj/item/radio/intercom/table{ - dir = 8; - freerange = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aI" = ( -/obj/structure/chair/office/light, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aJ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Rest Room"; - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aK" = ( -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aL" = ( -/obj/machinery/sleeper{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aM" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aN" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aO" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/corner/transparent/bar, -/obj/effect/turf_decal/corner/transparent/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aP" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aQ" = ( -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/obj/item/radio/intercom/table{ - freerange = 1 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aS" = ( -/obj/structure/frame/computer{ - anchored = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aT" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aU" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aV" = ( -/obj/structure/closet, -/turf/open/floor/plasteel/grimy, -/area/ruin/space/djstation) -"aW" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/ruin/space/djstation) -"aX" = ( -/obj/machinery/door/airlock/hatch{ - name = "Washroom" - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/space/djstation) -"aY" = ( -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"aZ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"ba" = ( -/turf/open/floor/plasteel/freezer, -/area/ruin/space/djstation) -"bb" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"bc" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/space_heater, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"bd" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/rack, -/obj/item/clothing/under/costume/pirate, -/obj/item/clothing/head/bandana, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"be" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/freezer, -/area/ruin/space/djstation) -"bf" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/ruin/space/djstation) -"bg" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"bh" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"bi" = ( -/obj/machinery/door/airlock/external{ - name = "Ruskie DJ Station" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"bj" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"hc" = ( -/obj/machinery/power/smes/magical{ - desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; - name = "power storage unit" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"lU" = ( -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 2 - }, -/obj/item/paper/fluff/ruins/djstation, -/turf/open/floor/plasteel, -/area/ruin/space/djstation) -"nM" = ( -/obj/item/storage/box/lights/mixed, -/obj/structure/sign/warning/electricshock{ - pixel_y = -32 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"uK" = ( -/obj/machinery/power/apc{ - name = "Worn-out APC"; - pixel_y = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"zO" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"Co" = ( -/obj/machinery/door/airlock/external{ - name = "Ruskie DJ Station" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) -"Gg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ruin/space/djstation) - -(1,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -af -ag -ag -ag -af -aa -ae -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -ab -ac -ad -ac -ad -ac -ab -aa -af -az -aF -aM -aW -aZ -aZ -aZ -bj -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -ab -ac -ad -ac -ad -ac -ab -aa -af -aA -aA -aN -af -ae -ae -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aA -aA -aO -af -af -af -af -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -ae -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aA -aA -aA -aX -ba -be -af -aa -aa -"} -(6,1,1) = {" -ab -ab -ab -ab -ab -af -ag -ag -af -ag -ag -af -af -af -ag -aG -ag -af -af -bf -af -aa -aa -"} -(7,1,1) = {" -ab -ac -ac -ac -ac -ag -ah -ah -ah -am -ah -uK -af -au -aw -aw -aw -aw -af -af -af -aa -aa -"} -(8,1,1) = {" -ab -ad -ad -ad -ad -ag -ah -ah -ah -ah -ah -nM -af -av -aw -aH -aP -aw -bb -bg -af -aa -aa -"} -(9,1,1) = {" -ab -ac -ac -ac -ac -af -ai -ah -aj -hc -Gg -zO -at -aw -aw -aI -aQ -aw -aw -aw -af -aa -aa -"} -(10,1,1) = {" -ab -ad -ad -ad -ad -ag -ah -ah -ak -ah -ah -ah -af -ax -aw -lU -aQ -aw -bc -bh -af -af -af -"} -(11,1,1) = {" -ab -ac -ac -ac -ac -ag -ah -ah -al -ah -ah -as -af -ay -aw -aw -aw -aY -bd -aw -bi -ah -Co -"} -(12,1,1) = {" -ab -ab -ab -ab -ab -af -ag -ag -af -ag -ag -af -af -af -ag -aJ -ag -af -af -af -af -af -af -"} -(13,1,1) = {" -aa -aa -ae -ae -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aB -aK -aS -af -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aC -aK -aT -af -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -ae -ab -ac -ad -ac -ad -ac -ab -aa -af -aD -aK -aU -af -ae -ae -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -ab -ac -ad -ac -ad -ac -ab -aa -af -aE -aL -aV -af -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -af -ag -ag -ag -af -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ae -ae -aa -ae -aa -aa -ae -aa -aa -aa -aa -aa -aa -"} diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm index 2629cc5d1cd1..6b83da98447f 100644 --- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm +++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm @@ -1724,7 +1724,7 @@ /turf/open/floor/plasteel/airless, /area/ruin/space/has_grav/astraeus/munitions) "TV" = ( -/obj/machinery/computer/communications{ +/obj/structure/frame/computer{ dir = 8 }, /turf/open/floor/plating/airless, diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index a4f6006bf88b..73f4a5875db1 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -522,9 +522,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/powerstorage) "bI" = ( -/obj/item/gun/ballistic/automatic/pistol/candor{ - spawnwithmagazine = 0 - }, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, /turf/open/floor/plasteel, /area/ruin/space/has_grav/derelictoutpost/powerstorage) "bJ" = ( @@ -1333,9 +1331,7 @@ desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor" }, -/obj/item/gun/ballistic/automatic/pistol/candor{ - spawnwithmagazine = 0 - }, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, /obj/item/ammo_box/magazine/m45, /turf/open/floor/plating/asteroid, /area/ruin/space/has_grav/derelictoutpost) @@ -1493,9 +1489,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/derelictoutpost) "dJ" = ( -/obj/item/gun/ballistic/automatic/pistol/candor{ - spawnwithmagazine = 0 - }, +/obj/item/gun/ballistic/automatic/pistol/candor/no_mag, /obj/structure/alien/weeds{ color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index 9a154053c0bf..358b08790095 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -2232,7 +2232,7 @@ /turf/closed/mineral/diamond, /area/awaymission/BMPship) "hw" = ( -/turf/closed/mineral/bananium, +/turf/closed/mineral/bscrystal, /area/awaymission/BMPship) "hE" = ( /turf/closed/wall/mineral/titanium/nodiagonal, diff --git a/_maps/RandomRuins/SpaceRuins/ntfacility.dmm b/_maps/RandomRuins/SpaceRuins/ntfacility.dmm index d17fe7601d26..bacfb7fe76ac 100644 --- a/_maps/RandomRuins/SpaceRuins/ntfacility.dmm +++ b/_maps/RandomRuins/SpaceRuins/ntfacility.dmm @@ -114,7 +114,7 @@ /obj/effect/mob_spawn/human/corpse/assistant{ outfit = /datum/outfit/job/cmo }, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /turf/open/floor/mineral/titanium/blue, /area/ruin/powered) "dh" = ( @@ -136,7 +136,7 @@ /turf/open/floor/plating, /area/ruin/powered) "dm" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, /area/ruin/powered) @@ -269,7 +269,7 @@ /turf/open/floor/plating, /area/ruin/powered) "gb" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, @@ -389,8 +389,8 @@ /turf/open/floor/vault, /area/ruin/powered) "hI" = ( -/mob/living/simple_animal/hostile/zombie, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ruin/powered) @@ -478,7 +478,7 @@ /turf/open/floor/plasteel/white, /area/ruin/powered) "jP" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/corner/opaque/black{ @@ -568,7 +568,7 @@ pixel_x = -12 }, /obj/effect/gibspawner/human, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, @@ -879,7 +879,7 @@ /obj/effect/turf_decal/number/four{ dir = 4 }, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, @@ -1113,13 +1113,13 @@ /obj/effect/decal/cleanable/blood/tracks{ dir = 6 }, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/powered) "BG" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -1619,9 +1619,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/powered) "KJ" = ( -/obj/item/gun/ballistic/revolver/detective{ - spawnwithmagazine = 0 - }, +/obj/item/gun/ballistic/revolver/detective/no_mag, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, @@ -1633,7 +1631,7 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/computer/communications{ +/obj/structure/frame/computer{ dir = 1 }, /turf/open/floor/wood, @@ -1671,7 +1669,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/powered) "LD" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/carpet/royalblue, @@ -1959,7 +1957,7 @@ /area/ruin/powered) "TD" = ( /obj/effect/gibspawner/human, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, @@ -2037,7 +2035,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/powered) "VE" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, @@ -2140,7 +2138,7 @@ /turf/open/floor/carpet/royalblue, /area/ruin/powered) "XB" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ruin/powered) @@ -2221,7 +2219,7 @@ /area/ruin/powered) "Zu" = ( /obj/machinery/door/poddoor/preopen, -/mob/living/simple_animal/hostile/zombie, +/mob/living/simple_animal/hostile/human/zombie, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, /area/ruin/powered) diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm index 0ff038bd93de..85f087ec38a9 100644 --- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -1766,7 +1766,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/onehalf) "Gv" = ( -/obj/machinery/computer/communications{ +/obj/structure/frame/computer{ dir = 8 }, /turf/open/floor/plasteel, diff --git a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm index 7577cdeb99f5..83e662b69ad0 100644 --- a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm +++ b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm @@ -115,7 +115,7 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ruin/space/has_grav/syndicircle/research) "du" = ( -/mob/living/simple_animal/hostile/syndicate/civilian{ +/mob/living/simple_animal/hostile/human/syndicate/civilian{ name = "Syndicate Researcher" }, /turf/open/floor/mineral/plastitanium/red, @@ -232,7 +232,7 @@ /turf/open/floor/plating/asteroid/snow/atmosphere, /area/ruin/space/has_grav/syndicircle/winter) "gz" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg{ +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg{ name = "REDFOR operative" }, /turf/open/floor/plating/asteroid/snow/atmosphere, @@ -309,7 +309,7 @@ /obj/structure/flippedtable{ dir = 4 }, -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{ name = "BLUFOR operative" }, /turf/open/floor/plasteel/tech, @@ -422,7 +422,7 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/syndicircle/halls) "lX" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/infiltrator{ +/mob/living/simple_animal/hostile/human/syndicate/ranged/infiltrator{ name = "REDFOR operative" }, /turf/open/floor/plasteel/tech/techmaint, @@ -465,7 +465,7 @@ /area/ruin/space/has_grav/syndicircle/winter) "na" = ( /obj/structure/flippedtable, -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg{ name = "BLUFOR operative" }, /obj/structure/cable{ @@ -497,7 +497,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/syndicircle/winter) "ov" = ( -/mob/living/simple_animal/hostile/syndicate/civilian{ +/mob/living/simple_animal/hostile/human/syndicate/civilian{ name = "Syndicate Researcher" }, /obj/structure/cable{ @@ -561,7 +561,7 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/space/has_grav/syndicircle/winter) "qv" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun{ +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun{ name = "REDFOR operative" }, /turf/open/floor/plating/ice, @@ -610,7 +610,7 @@ /obj/effect/turf_decal/ntlogo{ dir = 1 }, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space{ +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space{ name = "REDFOR commando" }, /turf/open/floor/mineral/titanium/white, @@ -693,7 +693,7 @@ /obj/effect/turf_decal/ntlogo{ dir = 4 }, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space{ +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space{ name = "REDFOR commando" }, /turf/open/floor/mineral/titanium/white, @@ -1222,7 +1222,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/mob/living/simple_animal/hostile/syndicate, +/mob/living/simple_animal/hostile/human/syndicate, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/syndicircle/halls) "Fv" = ( @@ -1247,7 +1247,7 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ruin/space/has_grav/syndicircle/research) "FM" = ( -/mob/living/simple_animal/hostile/syndicate/civilian{ +/mob/living/simple_animal/hostile/human/syndicate/civilian{ name = "Syndicate Researcher" }, /turf/open/floor/mineral/plastitanium, @@ -1304,7 +1304,7 @@ /turf/open/space/basic, /area/ruin/space/has_grav/syndicircle/halls) "HC" = ( -/mob/living/simple_animal/hostile/syndicate/civilian{ +/mob/living/simple_animal/hostile/human/syndicate/civilian{ name = "Syndicate Researcher" }, /obj/structure/cable{ @@ -1507,7 +1507,7 @@ /area/ruin/space/has_grav/syndicircle/training) "MP" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space{ +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space{ name = "REDFOR commando" }, /obj/item/storage/backpack/duffelbag/syndie/c4, @@ -1608,7 +1608,7 @@ /turf/open/floor/plating/dirt/jungle/wasteland, /area/ruin/space/has_grav/syndicircle/training) "Rj" = ( -/mob/living/simple_animal/hostile/syndicate, +/mob/living/simple_animal/hostile/human/syndicate, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/syndicircle/halls) "Rs" = ( @@ -1670,7 +1670,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 8 }, -/mob/living/simple_animal/hostile/nanotrasen/ranged{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged{ name = "BLUFOR operative" }, /turf/open/floor/mineral/titanium, @@ -1705,7 +1705,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/nanotrasen/ranged{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged{ name = "BLUFOR operative" }, /turf/open/floor/mineral/titanium, @@ -1756,7 +1756,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/syndicircle/halls) "UA" = ( -/mob/living/simple_animal/hostile/syndicate, +/mob/living/simple_animal/hostile/human/syndicate, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/syndicircle/halls) "UI" = ( @@ -1794,7 +1794,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/mob/living/simple_animal/hostile/nanotrasen/ranged{ +/mob/living/simple_animal/hostile/human/nanotrasen/ranged{ name = "BLUFOR operative" }, /turf/open/floor/mineral/titanium, @@ -1931,7 +1931,7 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/syndicircle/halls) "XW" = ( -/mob/living/simple_animal/hostile/syndicate/melee/space{ +/mob/living/simple_animal/hostile/human/syndicate/melee/space{ name = "REDFOR commando" }, /turf/open/space, @@ -1950,7 +1950,7 @@ /area/ruin/space/has_grav/syndicircle/escape) "Yr" = ( /obj/structure/chair/comfy/shuttle, -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech/nanotrasen{ +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/no_mech/nanotrasen{ name = "BLUFOR Pilot" }, /turf/open/floor/mineral/titanium/blue, @@ -2027,7 +2027,7 @@ /area/ruin/space/has_grav/syndicircle/halls) "ZU" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space{ +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space{ name = "REDFOR commando" }, /turf/open/floor/plating/asteroid/airless, diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 202a6c0c0b74..54896bfe8630 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -827,7 +827,7 @@ /obj/structure/spacevine/dense{ pixel_x = -32 }, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Assistant" }, /obj/structure/flora/ausbushes/lavendergrass, @@ -885,7 +885,7 @@ /area/ruin/space/has_grav/singularitylab/cargo) "dx" = ( /obj/structure/spacevine/dense, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Assistant" }, /turf/open/floor/plating/grass/jungle{ @@ -2576,7 +2576,7 @@ }, /obj/structure/window/reinforced/tinted/frosted, /obj/item/soap/nanotrasen, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Assistant" }, /turf/open/floor/plasteel/dark, @@ -2642,7 +2642,7 @@ /turf/open/floor/plating/asteroid/airless, /area/ruin/space/has_grav) "kR" = ( -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Cargo Technician" }, /obj/effect/turf_decal/siding/yellow{ @@ -2942,7 +2942,7 @@ /area/ruin/space/has_grav/singularitylab/lab) "lL" = ( /obj/structure/spacevine/dense, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Assistant" }, /obj/structure/flora/ausbushes/fullgrass, @@ -3049,7 +3049,7 @@ /area/ruin/space/has_grav/singularitylab/cargo) "mj" = ( /obj/structure/spacevine/dense, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Assistant" }, /obj/structure/flora/ausbushes/fullgrass, @@ -3290,7 +3290,7 @@ /area/ruin/space/has_grav/singularitylab/reactor) "nd" = ( /obj/effect/turf_decal/corner/opaque/white/full, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Scientist" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ @@ -3610,7 +3610,7 @@ }, /area/ruin/space/has_grav/singularitylab) "ol" = ( -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Shaft Miner" }, /turf/open/floor/plasteel/dark, @@ -4271,7 +4271,7 @@ dir = 10 }, /obj/structure/railing/corner, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Station Engineer" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, @@ -5557,7 +5557,7 @@ /area/ruin/space/has_grav/singularitylab) "wV" = ( /obj/structure/spacevine/dense, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Assistant" }, /turf/open/floor/plating/grass/jungle{ @@ -6315,7 +6315,7 @@ "zC" = ( /obj/effect/turf_decal/corner/opaque/white/full, /obj/effect/turf_decal/corner/opaque/white/full, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Scientist" }, /obj/effect/turf_decal/siding/thinplating/light, @@ -6899,7 +6899,7 @@ /obj/effect/turf_decal/corner/opaque/purple{ dir = 5 }, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Scientist" }, /turf/open/floor/plasteel, @@ -7222,7 +7222,7 @@ "CX" = ( /obj/effect/turf_decal/corner/opaque/white/full, /obj/effect/turf_decal/corner/opaque/white/full, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Scientist" }, /obj/effect/turf_decal/siding/thinplating/light{ @@ -9024,7 +9024,7 @@ /obj/structure/chair/office{ dir = 8 }, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Security Officer" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, @@ -9452,7 +9452,7 @@ pixel_y = 4 }, /obj/effect/turf_decal/corner/opaque/white/full, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Scientist" }, /obj/effect/turf_decal/siding/thinplating/light/corner, @@ -9798,7 +9798,7 @@ /obj/structure/chair{ dir = 1 }, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Cargo Technician" }, /obj/machinery/light/small/directional/south, @@ -10328,7 +10328,7 @@ /obj/structure/chair{ dir = 8 }, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Cargo Technician" }, /turf/open/floor/carpet/nanoweave/beige, @@ -11694,7 +11694,7 @@ /obj/structure/chair/office{ dir = 4 }, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Quartermaster" }, /obj/effect/decal/cleanable/blood{ @@ -12894,7 +12894,7 @@ /area/ruin/space/has_grav/singularitylab/civvie) "WE" = ( /obj/structure/spacevine, -/mob/living/simple_animal/hostile/zombie/kudzu{ +/mob/living/simple_animal/hostile/human/zombie/kudzu{ zombiejob = "Assistant" }, /turf/open/floor/plating/grass/jungle{ diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm index 20301b381145..31c53d09a82e 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm @@ -480,7 +480,7 @@ /area/ruin/wasteplanet/abandoned_mechbay/bay1) "fe" = ( /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/syndicate/melee{ +/mob/living/simple_animal/hostile/human/syndicate/melee{ name = "Syndicate Mech Pilot" }, /turf/open/floor/concrete/slab_1, @@ -1376,7 +1376,7 @@ dir = 4 }, /obj/effect/decal/cleanable/plastic, -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun, +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun, /turf/open/floor/plasteel/dark, /area/ruin/wasteplanet/abandoned_mechbay/mechlab) "pA" = ( @@ -1499,7 +1499,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/mob/living/simple_animal/hostile/syndicate{ +/mob/living/simple_animal/hostile/human/syndicate{ name = "Syndicate Engineer"; desc = "Death to bad mechanics." }, @@ -1558,7 +1558,7 @@ /area/ruin/wasteplanet/abandoned_mechbay/bay1) "rT" = ( /obj/structure/chair/sofa/brown/right/directional/south, -/mob/living/simple_animal/hostile/syndicate{ +/mob/living/simple_animal/hostile/human/syndicate{ name = "Syndicate Engineer"; desc = "Death to bad mechanics." }, @@ -1779,7 +1779,7 @@ /obj/machinery/camera/autoname{ dir = 4 }, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space, /turf/open/floor/plasteel/tech/techmaint, /area/ruin/wasteplanet/abandoned_mechbay/crewquarters) "uM" = ( @@ -1907,7 +1907,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun, +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun, /turf/open/floor/plasteel/dark, /area/ruin/wasteplanet/abandoned_mechbay/mechlab) "vS" = ( @@ -2047,7 +2047,7 @@ /obj/structure/cable{ icon_state = "0-4" }, -/mob/living/simple_animal/hostile/syndicate{ +/mob/living/simple_animal/hostile/human/syndicate{ name = "Syndicate Launderer"; desc = "Death to Dirty Laundry?" }, @@ -2180,7 +2180,7 @@ dir = 8 }, /obj/machinery/light/floor, -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space, /obj/machinery/door/firedoor/border_only{ dir = 8 }, @@ -2473,7 +2473,7 @@ pixel_y = 19 }, /obj/structure/curtain, -/mob/living/simple_animal/hostile/syndicate/civilian{ +/mob/living/simple_animal/hostile/human/syndicate/civilian{ desc = "Can an armored mook not shower in peace?" }, /turf/open/floor/carpet/blue, @@ -2722,7 +2722,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/syndicate/melee{ +/mob/living/simple_animal/hostile/human/syndicate/melee{ name = "Syndicate Mech Pilot" }, /turf/open/floor/plasteel/tech/techmaint, @@ -2770,7 +2770,7 @@ /area/overmap_encounter/planetoid/cave/explored) "Hj" = ( /obj/machinery/light/dim/directional/south, -/mob/living/simple_animal/hostile/syndicate/melee{ +/mob/living/simple_animal/hostile/human/syndicate/melee{ name = "Syndicate Mech Pilot" }, /turf/open/floor/plasteel/tech/techmaint, @@ -3015,7 +3015,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/directional/south, -/mob/living/simple_animal/hostile/syndicate/melee{ +/mob/living/simple_animal/hostile/human/syndicate/melee{ name = "Syndicate Mech Pilot" }, /turf/open/floor/plasteel/dark, @@ -3056,7 +3056,7 @@ /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/mob/living/simple_animal/hostile/syndicate{ +/mob/living/simple_animal/hostile/human/syndicate{ name = "Syndicate Engineer"; desc = "Death to bad mechanics." }, @@ -3375,7 +3375,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/west, -/mob/living/simple_animal/hostile/syndicate{ +/mob/living/simple_animal/hostile/human/syndicate{ name = "Syndicate Engineer"; desc = "Death to bad mechanics." }, diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm index ae2434a3ca45..11c0ecc1a2ff 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm @@ -96,7 +96,7 @@ /area/overmap_encounter/planetoid/cave/explored) "r" = ( /obj/structure/table/reinforced, -/obj/item/stack/ore/bananium, +/obj/item/stack/ore/hellstone, /turf/open/floor/plating/asteroid, /area/overmap_encounter/planetoid/cave/explored) "s" = ( diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm index 73735c65542b..b795826ec6c2 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm @@ -342,7 +342,7 @@ "cX" = ( /obj/structure/statue/bananium/clown, /obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "dg" = ( /obj/structure/sign/poster/contraband/eat, @@ -430,7 +430,7 @@ /area/ruin/powered) "ed" = ( /obj/item/trash/cheesie, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "ee" = ( /obj/machinery/photocopier, @@ -578,12 +578,8 @@ /turf/open/floor/plating/rust, /area/ruin/powered) "fk" = ( -/obj/machinery/door/airlock/bananium{ - name = "Clown Embassy"; - dir = 4 - }, /obj/item/grown/bananapeel, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "fn" = ( /obj/effect/gibspawner/human, @@ -695,7 +691,7 @@ /area/ruin/powered) "go" = ( /obj/machinery/light/small/directional/west, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "gp" = ( /mob/living/simple_animal/hostile/rat, @@ -735,7 +731,7 @@ /turf/open/floor/plating, /area/ruin/powered) "gL" = ( -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "gM" = ( /obj/structure/rack, @@ -762,7 +758,7 @@ /area/ruin/powered) "hd" = ( /obj/item/reagent_containers/food/snacks/cakeslice/clown_slice, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "he" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -1123,7 +1119,7 @@ /obj/effect/decal/cleanable/blood, /obj/effect/mob_spawn/human/clown/corpse, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "kO" = ( /obj/item/trash/chips, @@ -1133,7 +1129,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "kS" = ( /obj/effect/decal/cleanable/blood, @@ -1507,7 +1503,7 @@ /obj/item/pneumatic_cannon/pie, /obj/item/reagent_containers/spray/waterflower/lube, /obj/machinery/light/small/directional/east, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "nK" = ( /obj/structure/table, @@ -2100,7 +2096,7 @@ /obj/structure/chair/wood{ dir = 8 }, -/mob/living/simple_animal/hostile/frontier{ +/mob/living/simple_animal/hostile/human/frontier{ dir = 8 }, /turf/open/floor/wood, @@ -2375,7 +2371,7 @@ /obj/effect/decal/cleanable/blood, /obj/effect/mob_spawn/human/clown/corpse, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "vX" = ( /obj/item/ammo_casing, @@ -2773,7 +2769,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/generic, /obj/item/trash/cheesie, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "Aa" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -3113,7 +3109,7 @@ /area/ruin/powered) "Cy" = ( /obj/structure/closet/cardboard, -/obj/item/coin/bananium, +/obj/item/coin/hellstone, /obj/item/reagent_containers/food/snacks/soup/clownstears, /turf/open/floor/plating, /area/ruin/powered) @@ -4333,7 +4329,7 @@ "Ow" = ( /obj/structure/table/wood/fancy/orange, /obj/item/clothing/under/rank/civilian/clown/rainbow, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "Ox" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -4422,7 +4418,7 @@ /area/ruin/powered) "Pr" = ( /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "Px" = ( /mob/living/simple_animal/hostile/rat, @@ -5549,7 +5545,7 @@ /turf/open/floor/plating, /area/ruin/powered) "Zo" = ( -/mob/living/simple_animal/hostile/cat_butcherer{ +/mob/living/simple_animal/hostile/human/cat_butcherer{ dir = 4 }, /obj/effect/decal/cleanable/blood, diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm index 8a63378ced3c..a880d2947ae2 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm @@ -35,7 +35,6 @@ /area/ruin/wasteplanet) "bL" = ( /obj/structure/fluff/divine/convertaltar, -/obj/item/nullrod/tribal_knife, /obj/item/clothing/accessory/pandora_hope, /turf/open/indestructible/hierophant/two/waste, /area/ruin/wasteplanet) @@ -660,7 +659,7 @@ /turf/open/floor/mineral/titanium/white, /area/ruin/wasteplanet) "Bb" = ( -/mob/living/simple_animal/hostile/skeleton{ +/mob/living/simple_animal/hostile/human/skeleton{ desc = "A villager resurrected by the power of an unknown deity, eternally seeking vengeance for its people." }, /turf/open/floor/plating/dirt/old/waste, @@ -792,7 +791,7 @@ /turf/open/indestructible/hierophant/waste, /area/ruin/wasteplanet) "Fc" = ( -/mob/living/simple_animal/hostile/skeleton{ +/mob/living/simple_animal/hostile/human/skeleton{ desc = "A villager resurrected by the power of an unknown deity, eternally seeking vengeance for its people." }, /turf/open/floor/wood/waste, @@ -1379,7 +1378,7 @@ /turf/open/indestructible/hierophant/waste, /area/ruin/wasteplanet) "Xq" = ( -/mob/living/simple_animal/hostile/skeleton{ +/mob/living/simple_animal/hostile/human/skeleton{ desc = "A villager resurrected by the power of an unknown deity, eternally seeking vengeance for its people." }, /turf/open/floor/plating/grass/wasteplanet, diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm index 194e34a6a838..ddbaaf262714 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm @@ -375,7 +375,7 @@ /turf/open/floor/plating/rust, /area/ruin/wasteplanet/wasteplanet_radiation/maint) "vV" = ( -/obj/item/clothing/head/helmet/r_trapper{ +/obj/item/clothing/head/helmet{ pixel_x = 1; pixel_y = 7 }, diff --git a/_maps/configs/independent_beluga.json b/_maps/configs/independent_beluga.json index 64230b0dc797..6d7926a8e845 100644 --- a/_maps/configs/independent_beluga.json +++ b/_maps/configs/independent_beluga.json @@ -13,7 +13,6 @@ ], "starting_funds": 4000, "limit": 2, - "roundstart": true, "job_slots": { "Captain": { "outfit": "/datum/outfit/job/independent/captain", diff --git a/_maps/configs/independent_boyardee.json b/_maps/configs/independent_boyardee.json index f099b23952e9..d4659b14e0ac 100644 --- a/_maps/configs/independent_boyardee.json +++ b/_maps/configs/independent_boyardee.json @@ -16,6 +16,7 @@ "starting_funds": 5000, "map_short_name": "Boyardee-class", "map_path": "_maps/shuttles/independent/independent_boyardee.dmm", + "unique_ship_access": false, "job_slots": { "Bartender": { "outfit": "/datum/outfit/job/independent/bartender", diff --git a/_maps/configs/independent_dwayne.json b/_maps/configs/independent_dwayne.json index 1cd4a3683f0f..64f68af68752 100644 --- a/_maps/configs/independent_dwayne.json +++ b/_maps/configs/independent_dwayne.json @@ -15,7 +15,6 @@ "Mining", "Generalist" ], - "roundstart": true, "limit": 1, "job_slots": { "Captain": { diff --git a/_maps/configs/independent_lagoon.json b/_maps/configs/independent_lagoon.json index 017850eef555..313b4cd71d95 100644 --- a/_maps/configs/independent_lagoon.json +++ b/_maps/configs/independent_lagoon.json @@ -13,6 +13,7 @@ ], "map_short_name": "Lagoon-class", "map_path": "_maps/shuttles/independent/independent_lagoon.dmm", + "unique_ship_access": false, "starting_funds": 3000, "job_slots": { "Captain": { diff --git a/_maps/configs/independent_mudskipper.json b/_maps/configs/independent_mudskipper.json index 1dfd48861d13..9f4cf32e0cf8 100644 --- a/_maps/configs/independent_mudskipper.json +++ b/_maps/configs/independent_mudskipper.json @@ -14,7 +14,6 @@ "SPACE" ], "map_path": "_maps/shuttles/independent/independent_mudskipper.dmm", - "roundstart": true, "limit": 2, "starting_funds": 1500, "job_slots": { diff --git a/_maps/configs/independent_rigger.json b/_maps/configs/independent_rigger.json index 3550773cc0e4..e36b57ca750a 100644 --- a/_maps/configs/independent_rigger.json +++ b/_maps/configs/independent_rigger.json @@ -15,7 +15,6 @@ "Generalist" ], "map_path": "_maps/shuttles/independent/independent_rigger.dmm", - "roundstart": true, "limit": 1, "job_slots": { "Captain": { diff --git a/_maps/configs/independent_shetland.json b/_maps/configs/independent_shetland.json index 344f9a99ee50..de5873f80d75 100644 --- a/_maps/configs/independent_shetland.json +++ b/_maps/configs/independent_shetland.json @@ -14,7 +14,6 @@ ], "map_path": "_maps/shuttles/independent/independent_shetland.dmm", "map_id": "independent_shetland", - "roundstart": true, "job_slots": { "Captain": { "outfit": "/datum/outfit/job/independent/captain/cheap", diff --git a/_maps/configs/minutemen_vela.json b/_maps/configs/minutemen_vela.json deleted file mode 100644 index 74746ef5432e..000000000000 --- a/_maps/configs/minutemen_vela.json +++ /dev/null @@ -1,54 +0,0 @@ - { - "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "map_name": "Vela-class Industrial Cruiser", - "prefix": "CMGSV", - "namelists": ["GENERAL", "MYTHOLOGICAL", "BEASTS"], - "description": "The Vela-Class is the designation for a series of semi-modular industrial cruisers created by the CLIP Minutemen in the early 440s. While the original design was created almost exclusively for extracting minerals from asteroid belts, modern examples tend to take on a multi-mission role, with the most common configuration being a mech hanger, and research pod. The ship itself often sees long deployments that encourage modification, leading to Velas taking on a personality as their crews leave their mark.", - "tags": [ - "Robotics", - "Construction", - "Science" - ], - "map_short_name": "Vela-class", - "starting_funds": 1000, - "map_path": "_maps/shuttles/minutemen/minutemen_vela.dmm", - "limit": 1, - "job_slots": { - "Captain": { - "outfit": "/datum/outfit/job/clip/minutemen/captain", - "officer": true, - "slots": 1 - }, - "Foreman": { - "outfit": "/datum/outfit/job/clip/ce", - "officer": true, - "slots": 1 - }, - "First Officer": { - "outfit": "/datum/outfit/job/clip/first_officer", - "officer": true, - "slots": 1 - }, - "Mech Pilot": { - "outfit": "/datum/outfit/job/clip/minutemen/vehicle_pilot", - "slots": 4 - }, - "Minuteman": { - "outfit": "/datum/outfit/job/clip/minutemen/grunt", - "slots": 2 - }, - "Engineer": { - "outfit": "/datum/outfit/job/clip/mechanic", - "slots": 2 - }, - "Researcher": { - "outfit": "/datum/outfit/job/clip/scientist", - "slots": 2 - }, - "Deckhand": { - "outfit": "/datum/outfit/job/clip/minutemen/deckhand", - "slots": 1 - } - }, - "enabled": false -} diff --git a/_maps/configs/nanotrasen_delta.json b/_maps/configs/nanotrasen_delta.json index f367497a820e..57e920f77d67 100644 --- a/_maps/configs/nanotrasen_delta.json +++ b/_maps/configs/nanotrasen_delta.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Delta-class Frigate", - "prefix": "NTSV", + "prefix": "NSSV", "namelists": [ "GENERAL", "SPACE", @@ -10,7 +10,7 @@ "NANOTRASEN" ], "map_short_name": "Delta-class", - "description": "The Delta is a compact and advanced mining ship that supplements its comparatively small organic crew with a full suite of robotics facilities, including an AI and a host of mining and logistics drones and cyborgs. While much-loved by Nanotrasen logisticians for their minimal upkeep and high cost efficiency, Deltas are far less popular among the crews chosen to operate them, as they are severely lacking in crew accommodations and defensive armament.", + "description": "The Delta is a compact and advanced mining ship that supplements its comparatively small organic crew with a full suite of robotics facilities, including an AI and a host of mining and logistics drones and cyborgs. The Delta's low logistical footprint has thoroughly endeared it to N+S Logistics' upper management, but its cramped accomodations and lackluster defensive armament make it distinctly unpopular with the company's spacefaring employees.", "tags": [ "Science", "Robotics" @@ -19,11 +19,11 @@ "starting_funds": 4000, "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/nanotrasen/captain", + "outfit": "/datum/outfit/job/nanotrasen/captain/ns", "officer": true, "slots": 1 }, - "Roboticist": { + "Robotics Contractor": { "outfit": "/datum/outfit/job/nanotrasen/roboticist", "slots": 2 }, @@ -31,8 +31,8 @@ "outfit": "/datum/outfit/job/nanotrasen/engineer", "slots": 1 }, - "Assistant": { - "outfit": "/datum/outfit/job/nanotrasen/assistant", + "Deckhand": { + "outfit": "/datum/outfit/job/nanotrasen/cargo_tech", "slots": 3 } }, diff --git a/_maps/configs/nanotrasen_skipper.json b/_maps/configs/nanotrasen_skipper.json index 9ced4c28038c..2f61c3afa601 100644 --- a/_maps/configs/nanotrasen_skipper.json +++ b/_maps/configs/nanotrasen_skipper.json @@ -17,7 +17,6 @@ "Mining" ], "starting_funds": 4500, - "roundstart": true, "job_slots": { "Captain": { "outfit": "/datum/outfit/job/nanotrasen/captain", diff --git a/_maps/configs/pirate_ember.json b/_maps/configs/pirate_ember.json deleted file mode 100644 index 29a45c64cd6c..000000000000 --- a/_maps/configs/pirate_ember.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "map_name": "Ember-class Pirate Raider", - "prefix": "ISV", - "namelists": [ - "PIRATES", - "BRITISH_NAVY" - ], - "map_short_name": "Ember-class", - "map_path": "_maps/shuttles/pirate/pirate_ember.dmm", - "description": "The Ember class is a red flag in any sector. A giant, slow moving, safety hazard of a ship, makeshift in almost every regard, finds itself favored amongst the most ruthless and cutthroat of pirates and scoundrels galaxy-wide. Simply to be willing to exist on one of these ships shows a hardiness not typically found in most spacers. The best way to deal with Ember vessels is to simply give them a wide berth.", - "tags": [ - "Combat", - "Riot", - "Combat", - "Engineering" - ], - "limit": 1, - "job_slots": { - "Captain": { - "outfit": "/datum/outfit/job/frontiersmen/captain", - "officer": true, - "slots": 1 - }, - "Bridge Officer": { - "outfit": "/datum/outfit/job/frontiersmen/hop", - "officer": true, - "slots": 2 - }, - "Shipswain": { - "outfit": "/datum/outfit/job/frontiersmen/hos", - "officer": true, - "slots": 1 - }, - "Senior Sapper" :{ - "outfit": "/datum/outfit/job/frontiersmen/ce", - "officer": true, - "slots": 1 - }, - "Cargo Tech": { - "outfit": "/datum/outfit/job/frontiersmen/cargo_tech", - "slots": 2 - }, - "Aidman": { - "outfit": "/datum/outfit/job/frontiersmen/doctor", - "slots": 1 - }, - "Sapper": { - "outfit": "/datum/outfit/job/frontiersmen/engineer", - "slots": 2 - }, - "Atmospheric Technician": { - "outfit": "/datum/outfit/job/frontiersmen/atmos", - "slots": 1 - }, - "Steward": { - "outfit": "/datum/outfit/job/frontiersmen/cook", - "slots": 1 - }, - "Boarder": { - "outfit": "/datum/outfit/job/frontiersmen/security", - "slots": 3 - }, - "Rookie": { - "outfit": "/datum/outfit/job/frontiersmen/assistant", - "slots": 3 - } - }, - "enabled": false -} diff --git a/_maps/configs/pirate_libertatia.json b/_maps/configs/pirate_libertatia.json index f61e421b0952..4ed426746512 100644 --- a/_maps/configs/pirate_libertatia.json +++ b/_maps/configs/pirate_libertatia.json @@ -12,6 +12,7 @@ "PIRATES", "NATURAL_AGGRESSIVE" ], + "space_spawn": true, "job_slots": { "Captain": { "outfit": "/datum/outfit/job/independent/captain/pirate", diff --git a/_maps/configs/pirate_noderider.json b/_maps/configs/pirate_noderider.json index 1341a6197635..7863a9d96896 100644 --- a/_maps/configs/pirate_noderider.json +++ b/_maps/configs/pirate_noderider.json @@ -15,6 +15,7 @@ "Riot", "Combat" ], + "space_spawn": true, "job_slots": { "Command Node": { "outfit": "/datum/outfit/job/independent/captain/pirate/jupiter", diff --git a/_maps/configs/pirate_tortuga.json b/_maps/configs/pirate_tortuga.json new file mode 100644 index 000000000000..702185c02387 --- /dev/null +++ b/_maps/configs/pirate_tortuga.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "map_name": "Tortuga-class Converted Cargo Freighter", + "prefix": "ISV", + "namelists": [ + "PIRATES", + "BRITISH_NAVY" + ], + "map_short_name": "Tortuga-class", + "map_path": "_maps/shuttles/pirate/pirate_tortuga.dmm", + "description": "Originally a cargo transport vessel, the Tortuga is an improvised combat vessel used by the Frontiersmen fleet. Civilian transports are modified with shuttle handling facilities, and asteroid rubble is belted to the exterior of the hull as a form of cheap improvised armor and concealment. The Tortuga serves a dual purpose as a reconnaissance element and a vessel capable of establishing forward bases within a sector. While the Brawler-class shuttle carried by the Tortuga offers a surprising degree of speed and range to its boarding parties, the Tortuga itself is sluggish and nearly helpless without its shuttle.", + "tags": [ + "Combat", + "Subshuttle" + ], + "limit": 1, + "job_slots": { + "Captain": { + "outfit": "/datum/outfit/job/frontiersmen/captain", + "officer": true, + "slots": 1 + }, + "Deck Boss": { + "outfit": "/datum/outfit/job/frontiersmen/hos", + "officer": true, + "slots": 1 + }, + "Surgeon": { + "outfit": "/datum/outfit/job/frontiersmen/doctor", + "slots": 1 + }, + "Mechanic": { + "outfit": "/datum/outfit/job/frontiersmen/engineer", + "slots": 1 + }, + "Boarder": { + "outfit": "/datum/outfit/job/frontiersmen/security", + "slots": 2 + }, + "Rookie": { + "outfit": "/datum/outfit/job/frontiersmen/assistant", + "slots": 2 + } + }, + "enabled": false +} diff --git a/_maps/configs/syndicate_gorlex_hyena.json b/_maps/configs/syndicate_gorlex_hyena.json index 51b046d114b7..a835e00b1eba 100644 --- a/_maps/configs/syndicate_gorlex_hyena.json +++ b/_maps/configs/syndicate_gorlex_hyena.json @@ -18,25 +18,25 @@ "map_path": "_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm", "job_slots": { "Captain": { - "outfit": "/datum/outfit/job/syndicate/captain/gorlex", + "outfit": "/datum/outfit/job/syndicate/captain/ngr", "officer": true, "slots": 1 }, "Foreman": { - "outfit": "/datum/outfit/job/syndicate/ce/gorlex", + "outfit": "/datum/outfit/job/syndicate/ce/ngr", "officer": true, "slots": 1 }, "Mechanic": { - "outfit": "/datum/outfit/job/syndicate/engineer/gorlex", + "outfit": "/datum/outfit/job/syndicate/engineer/ngr", "slots": 1 }, "Wrecker": { - "outfit": "/datum/outfit/job/syndicate/miner/gorlex", + "outfit": "/datum/outfit/job/syndicate/miner/ngr", "slots": 2 }, - "Junior Agent": { - "outfit": "/datum/outfit/job/syndicate/assistant/gorlex", + "Initiate": { + "outfit": "/datum/outfit/job/syndicate/assistant/ngr", "slots": 2 } }, diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt index 99335de52ddc..e7b6ca5db5d3 100644 --- a/_maps/map_catalogue.txt +++ b/_maps/map_catalogue.txt @@ -131,8 +131,8 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Tags = "Medium Combat", "Medium Loot", "Hazardous", "Lava", "Inhospitable" File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_biodome_winter.dmm" - Size = (x = 30)(y = 30)(z = 1) - Tags = "Minor Combat Challenge", "Minor Loot", "Shelter" + Size = (x = 46)(y = 42)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter" File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_comm_outpost.dmm" Size = (x = 13)(y = 14)(z = 1) @@ -241,9 +241,9 @@ Find the key for using this catalogue in "map_catalogue_key.txt" Size = (x = 30)(y = 20)(z = 1) Tags = "Medium combat Challenge", "Medium Loot", "Inhospitable" - File Name = "_maps\RandomRuins\RockRuins\.dmm" - Size = (x = 9)(y = 9)(z = 1) - Tags = "Boss Combat Challenge", "Major Loot", "Hazardous", "Inhospitable" + File Name = "_maps\RandomRuins\RockRuins\rockplanet_shippingdock.dmm" + Size = (x = 85)(y = 73)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Shelter" File Name = "_maps\RandomRuins\RockRuins\rockplanet_nomadcrash.dmm" Size = (x = 58)(y = 48)(z = 1) @@ -302,10 +302,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt" SpaceRuins: - File Name = "_maps\RandomRuins\SpaceRuins\.dmm" - Size = (x = 18)(y = 23)(z = 1) - Tags = "No Combat", "Minor Loot", "Shelter" - File Name = "_maps\RandomRuins\SpaceRuins\astraeus.dmm" Size = (x = 47)(y = 35)(z = 1) Tags = "Minor Combat Challenge", "Medium Loot", "Inhospitable" diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm index f1595e0ffaa1..dd0519efde1e 100644 --- a/_maps/shuttles/independent/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -4857,7 +4857,7 @@ /turf/open/floor/plasteel/tech, /area/ship/cargo) "VV" = ( -/obj/machinery/computer/communications{ +/obj/structure/frame/computer{ dir = 8 }, /obj/effect/turf_decal/techfloor{ diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index 45ecbf33d0a7..1e08e3912dc6 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -3417,14 +3417,12 @@ /obj/structure/sign/poster/retro/lasergun_new{ pixel_x = -32 }, -/obj/item/gun/ballistic/shotgun/bulldog/inteq{ +/obj/item/gun/ballistic/shotgun/bulldog/inteq/no_mag{ pixel_x = -8; pixel_y = 8; - spawnwithmagazine = 0 }, -/obj/item/gun/ballistic/shotgun/bulldog/inteq{ +/obj/item/gun/ballistic/shotgun/bulldog/inteq/no_mag{ pixel_x = -12; - spawnwithmagazine = 0 }, /turf/open/floor/plasteel/tech/grid, /area/ship/security/armory) diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm index 927f372ab3c5..23a80717b42f 100644 --- a/_maps/shuttles/inteq/inteq_vaquero.dmm +++ b/_maps/shuttles/inteq/inteq_vaquero.dmm @@ -263,10 +263,9 @@ /obj/item/ammo_box/magazine/co9mm{ pixel_x = -5 }, -/obj/item/gun/ballistic/shotgun/bulldog/inteq{ +/obj/item/gun/ballistic/shotgun/bulldog/inteq/no_mag{ pixel_x = -4; pixel_y = 5; - spawnwithmagazine = 0 }, /obj/item/gun/ballistic/automatic/pistol/commander/inteq, /obj/item/gun/ballistic/automatic/pistol/commander/inteq{ diff --git a/_maps/shuttles/minutemen/minutemen_vela.dmm b/_maps/shuttles/minutemen/minutemen_vela.dmm deleted file mode 100644 index d4ae92298e58..000000000000 --- a/_maps/shuttles/minutemen/minutemen_vela.dmm +++ /dev/null @@ -1,11835 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ab" = ( -/obj/machinery/power/smes, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/outline/red, -/obj/structure/sign/poster/contraband/tools{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"ac" = ( -/obj/machinery/airalarm/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/item/training_toolbox, -/turf/open/floor/plating, -/area/ship/storage) -"af" = ( -/obj/structure/closet/secure_closet/lethalshots{ - populate = 0 - }, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/smgm9mm/rubber, -/obj/item/ammo_box/magazine/smgm9mm/rubber, -/obj/item/ammo_box/magazine/smgm9mm/rubber, -/obj/structure/cable{ - icon_state = "0-6" - }, -/obj/item/ammo_box/c9mm/rubbershot, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"al" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 5 - }, -/obj/structure/table/glass, -/obj/item/flashlight/lamp{ - pixel_x = -7; - pixel_y = 1 - }, -/obj/item/paicard{ - pixel_x = 6; - pixel_y = -8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"am" = ( -/obj/machinery/light/directional/west, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"an" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"aq" = ( -/obj/machinery/button/door{ - dir = 8; - id = "obai2"; - name = "AI core blast door button"; - pixel_x = 22; - pixel_y = 14 - }, -/obj/structure/AIcore, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/button/door{ - dir = 8; - id = "obai"; - name = "AI core window shutters button"; - pixel_x = 22; - pixel_y = -15 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/science/ai_chamber) -"aE" = ( -/obj/machinery/washing_machine, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"aH" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"aM" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/obj/item/cardboard_cutout{ - desc = "Guardian of the engines."; - name = "John" - }, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"aO" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/borg_fancy_2{ - pixel_x = 28 - }, -/obj/machinery/shieldgen, -/turf/open/floor/plating, -/area/ship/storage) -"aQ" = ( -/obj/structure/closet/secure_closet/personal, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"aZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"bc" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/corner/transparent/purple/diagonal, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"bh" = ( -/obj/structure/frame/machine, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"bt" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/ship/storage) -"bu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/oil{ - icon_state = "streak5" - }, -/obj/effect/turf_decal/techfloor/hole{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/engine, -/area/ship/hangar/port) -"bA" = ( -/obj/effect/turf_decal/techfloor/hole{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/engine, -/area/ship/hangar/port) -"bH" = ( -/turf/open/floor/wood, -/area/ship/crew/dorm) -"bK" = ( -/obj/effect/turf_decal/techfloor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/techfloor/hole, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"bX" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "obhang21" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/machinery/door/poddoor{ - id = "obmine11" - }, -/turf/open/floor/engine, -/area/ship/hangar/port) -"bZ" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/atmospherics/components/unary/thermomachine{ - dir = 8; - piping_layer = 2 - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/obj/structure/sign/poster/official/moth/piping{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"ca" = ( -/obj/effect/turf_decal/industrial/outline/red, -/obj/effect/turf_decal/rechargefloor, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"cd" = ( -/obj/machinery/door/poddoor/preopen{ - id = "obhangarent1" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"cg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"ci" = ( -/obj/structure/rack, -/obj/item/mecha_parts/mecha_equipment/mining_scanner, -/obj/item/mecha_parts/mecha_equipment/generator, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/item/mecha_parts/mecha_equipment/weapon/energy/mecha_kineticgun, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"cj" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth, -/obj/item/bedsheet/blue, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"cn" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"co" = ( -/obj/structure/curtain/cloth, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"cw" = ( -/obj/structure/toilet{ - pixel_y = 12 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"cz" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"cE" = ( -/obj/structure/rack, -/obj/item/storage/belt/utility, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"cF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"cI" = ( -/obj/machinery/button/door{ - dir = 4; - id = "obengi"; - name = "Engineering Storage Lock"; - pixel_x = -21; - pixel_y = -7 - }, -/obj/structure/closet/crate/engineering/electrical, -/obj/item/storage/box/lights/mixed, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/item/mecha_parts/mecha_equipment/extinguisher, -/obj/item/mecha_parts/mecha_equipment/extinguisher, -/turf/open/floor/plating, -/area/ship/storage) -"cJ" = ( -/obj/structure/rack, -/obj/machinery/door/window/brigdoor/westright{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/item/circuitboard/aicore, -/obj/item/stack/sheet/rglass, -/obj/item/stack/sheet/rglass, -/obj/item/aiModule/core, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"cK" = ( -/obj/structure/musician/piano/unanchored, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 6 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/pod/dark, -/area/ship/cargo) -"cT" = ( -/obj/structure/rack, -/obj/item/chair, -/obj/item/chair, -/obj/item/chair, -/obj/item/chair, -/obj/item/chair, -/obj/item/chair, -/obj/item/chair, -/obj/item/chair, -/obj/item/chair, -/obj/item/chair, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/crew/canteen) -"cV" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew) -"cW" = ( -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/structure/frame/machine, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"cY" = ( -/obj/structure/closet/secure_closet/security{ - populate = 0 - }, -/obj/item/reagent_containers/spray/pepper, -/obj/item/clothing/mask/gas/sechailer/balaclava, -/obj/item/clothing/under/clip/minutemen, -/obj/item/clothing/head/helmet/bulletproof/x11/clip, -/obj/item/storage/belt/military/clip, -/obj/item/restraints/handcuffs, -/obj/item/ammo_box/magazine/co9mm/rubber, -/obj/item/ammo_box/magazine/co9mm/rubber, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/sign/poster/official/focus{ - pixel_y = 32 - }, -/obj/item/clothing/suit/armor/vest/bulletproof, -/turf/open/floor/plasteel/tech/grid, -/area/ship/security/armory) -"dc" = ( -/obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/borderfloor, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"dd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"df" = ( -/obj/structure/cable{ - icon_state = "5-8" - }, -/obj/structure/cable{ - icon_state = "6-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/corner_techfloor_grid, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"dh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"dp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/machinery/light/directional/north, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"dq" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/computer/card{ - dir = 4; - icon_state = "computer-right" - }, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"ds" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners, -/obj/structure/closet/crate/science{ - name = "G.Station Science Kit" - }, -/obj/item/circuitboard/machine/rdserver, -/obj/item/circuitboard/computer/rdconsole, -/obj/item/clothing/head/papersack/smiley, -/obj/item/clothing/head/papersack/smiley, -/obj/item/clothing/head/papersack/smiley, -/obj/item/clothing/head/papersack/smiley, -/obj/item/clothing/head/papersack/smiley, -/obj/item/clothing/head/papersack/smiley, -/obj/item/circuitboard/machine/circuit_imprinter/department/science, -/obj/item/circuitboard/machine/protolathe/department/science, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 9 - }, -/turf/open/floor/pod/dark, -/area/ship/cargo) -"dt" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4; - pixel_y = 1 - }, -/obj/effect/turf_decal/borderfloor{ - dir = 10 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/toilet) -"dx" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"dB" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/door/firedoor/window, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "vela_lablock" - }, -/turf/open/floor/plating, -/area/ship/science/xenobiology) -"dD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"dF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"dK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"dN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"dV" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/ship/hangar/port) -"dW" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"dZ" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/hangar/port) -"ea" = ( -/obj/machinery/door/poddoor{ - id = "obcargo" - }, -/obj/structure/cable, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "obcargos" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/turf/open/floor/engine, -/area/ship/cargo) -"ed" = ( -/obj/structure/closet/secure_closet{ - icon_state = "cap"; - name = "foreman's locker"; - req_access = list(56) - }, -/obj/item/clothing/head/clip/slouch, -/obj/item/clothing/under/clip/officer, -/obj/item/storage/backpack/industrial, -/obj/item/storage/backpack/satchel/eng, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/shoes/combat, -/obj/item/radio/headset/clip/alt/captain, -/obj/item/megaphone, -/obj/item/binoculars, -/obj/effect/turf_decal/box, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/suit/hazardvest, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"ee" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"ek" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering/atmospherics) -"em" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/structure/sign/poster/clip/random{ - pixel_x = 28 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"eq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/steeldecal/steel_decals_central7{ - dir = 8; - pixel_x = 1 - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -13; - pixel_y = -16 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"eB" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/sign/poster/clip/random{ - pixel_y = 28 - }, -/obj/item/kirbyplants/random{ - pixel_y = 12 - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"eI" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -12; - pixel_y = -16 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"eJ" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 8 - }, -/obj/machinery/door/airlock{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/canteen) -"eM" = ( -/obj/structure/closet/crate/engineering, -/obj/item/stack/conveyor/thirty, -/obj/item/stack/conveyor/thirty, -/obj/item/crowbar, -/obj/item/screwdriver, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/box/corners, -/obj/item/conveyor_switch_construct, -/obj/item/conveyor_switch_construct, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plating, -/area/ship/storage) -"eN" = ( -/turf/open/floor/plasteel/tech, -/area/ship/science) -"eQ" = ( -/obj/structure/catwalk, -/turf/open/floor/plating, -/area/ship/external) -"eR" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "obengines"; - name = "Engine Shutters" - }, -/turf/open/floor/engine, -/area/ship/engineering) -"eS" = ( -/obj/machinery/power/smes, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/industrial/outline/red, -/obj/structure/sign/warning/nosmoking/burnt{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"eT" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"eV" = ( -/obj/structure/closet/radiation, -/obj/item/picket_sign, -/obj/item/picket_sign, -/obj/item/picket_sign, -/obj/machinery/firealarm{ - pixel_y = 28 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/machinery/light/small/broken/directional/west, -/turf/open/floor/plating, -/area/ship/storage) -"eZ" = ( -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = 32 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"fh" = ( -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6" - }, -/obj/machinery/computer/atmos_alert, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"fi" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/rack, -/obj/item/mecha_parts/mecha_equipment/weapon/energy/mecha_kineticgun, -/obj/item/mecha_parts/mecha_equipment/thrusters/gas, -/obj/item/mecha_parts/mecha_equipment/drill, -/obj/item/mecha_parts/mecha_equipment/mining_scanner, -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"fj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/corner_techfloor_grid, -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"fk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"fl" = ( -/obj/machinery/grill/unwrenched, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/pod, -/area/ship/cargo) -"fm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/item/kirbyplants/random{ - pixel_x = 2; - pixel_y = 5 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"fr" = ( -/obj/structure/sign/painting/library{ - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"fv" = ( -/obj/effect/turf_decal/industrial/caution, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"fx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/turf_decal/corner/transparent/mauve/diagonal, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"fz" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/obj/machinery/camera/autoname, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"fD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"fF" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/minutemen/edge{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"fH" = ( -/obj/machinery/door/window/brigdoor/westleft{ - id = "vela"; - req_access = list(2) - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"fJ" = ( -/obj/machinery/porta_turret/ship{ - dir = 9 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) -"fW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer5{ - dir = 9 - }, -/obj/effect/turf_decal/industrial/caution, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 28; - pixel_y = 11 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"fY" = ( -/obj/machinery/door/poddoor{ - id = "obcargo" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/turf/open/floor/engine, -/area/ship/cargo) -"ga" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer5, -/obj/machinery/advanced_airlock_controller{ - pixel_x = -24 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"gh" = ( -/obj/structure/rack, -/obj/machinery/airalarm/directional/south, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"gj" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"gx" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"gB" = ( -/obj/structure/closet/emcloset/wall/directional/south, -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"gD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/engine, -/area/ship/hangar/port) -"gL" = ( -/obj/machinery/door/poddoor{ - id = "obair" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"gQ" = ( -/obj/structure/railing{ - dir = 1; - layer = 3.1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"gV" = ( -/obj/machinery/ai_slipper, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/science/ai_chamber) -"gX" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew) -"hf" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 9; - pixel_y = -6 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"hh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"hk" = ( -/obj/machinery/cryopod{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/orange{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/orange/corner{ - dir = 1 - }, -/obj/machinery/light/small/directional/north, -/obj/structure/railing{ - dir = 4; - layer = 2.8 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/dorm) -"hm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"ho" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/fore) -"hv" = ( -/obj/structure/table, -/obj/item/pen{ - pixel_x = 11; - pixel_y = 9 - }, -/obj/item/paper/crumpled{ - pixel_x = -4; - pixel_y = -3 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"hw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/stand_clear, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"hx" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"hD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/railing{ - dir = 1; - layer = 3.1 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"hH" = ( -/obj/effect/turf_decal/arrows, -/turf/open/floor/engine, -/area/ship/hangar/port) -"hJ" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/minutemen/corner{ - dir = 8 - }, -/obj/item/circuitboard/mecha/ripley/main, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar/port) -"hP" = ( -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6" - }, -/obj/structure/cable, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/hole/right{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"hR" = ( -/obj/machinery/computer/communications{ - dir = 8 - }, -/obj/effect/turf_decal/steeldecal/steel_decals4, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"hS" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/traffic, -/obj/docking_port/mobile{ - dir = 2; - port_direction = 8; - preferred_direction = 4 - }, -/turf/open/floor/engine, -/area/ship/external) -"hX" = ( -/obj/machinery/vending/cola/space_up, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/light/small/directional/south, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/dorm) -"ib" = ( -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/fore) -"ic" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/railing/corner{ - dir = 4; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"ie" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"il" = ( -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"in" = ( -/obj/machinery/door/window/brigdoor/westleft{ - dir = 4; - req_access = list(3) - }, -/obj/structure/sign/poster/official/mini_energy_gun{ - pixel_y = -32 - }, -/obj/structure/cable{ - icon_state = "4-9" - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"io" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/science/xenobiology) -"ip" = ( -/obj/effect/turf_decal/spline/fancy/wood/corner, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"is" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"iu" = ( -/obj/structure/rack, -/turf/open/floor/plasteel/tech, -/area/ship/crew/canteen) -"iw" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"iz" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"iD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/steeldecal/steel_decals4, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"iE" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"iG" = ( -/obj/item/kirbyplants/random{ - pixel_x = -4; - pixel_y = 11 - }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/science/ai_chamber) -"iL" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"iO" = ( -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"iP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"iQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"iR" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"iV" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"jb" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 9 - }, -/turf/open/floor/pod/dark, -/area/ship/cargo) -"jf" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/snacks/honeybar{ - pixel_x = 7; - pixel_y = 1 - }, -/obj/item/storage/fancy/cigarettes/cigpack_uplift{ - pixel_x = -7 - }, -/obj/item/lighter{ - pixel_x = -4; - pixel_y = -2 - }, -/obj/item/reagent_containers/food/drinks/coffee{ - pixel_x = 11; - pixel_y = 3 - }, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"jh" = ( -/turf/open/floor/plasteel/stairs/mid{ - dir = 1 - }, -/area/ship/hallway/central) -"jj" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -12; - pixel_y = -16 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"jm" = ( -/obj/effect/turf_decal/techfloor/orange, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/circuit/green, -/area/ship/science/ai_chamber) -"jn" = ( -/obj/structure/rack, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/item/stack/sheet/glass/fifty, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/ship/storage) -"jr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/corner_techfloor_grid, -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"jx" = ( -/obj/structure/closet/secure_closet/engineering_personal{ - anchored = 1 - }, -/obj/effect/turf_decal/box, -/obj/structure/sign/poster/contraband/tools{ - pixel_y = 32 - }, -/obj/item/clothing/suit/toggle/industrial, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"jB" = ( -/obj/structure/table/reinforced, -/obj/item/disk/design_disk/clip_mechs, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"jD" = ( -/obj/structure/rack, -/obj/item/mecha_parts/mecha_equipment/drill, -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, -/obj/item/mecha_parts/mecha_equipment/thrusters/gas, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"jF" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"jI" = ( -/obj/structure/closet/wall/directional/south, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew) -"jN" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/turf/open/floor/plating, -/area/ship/crew) -"jO" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/effect/turf_decal/corner/transparent/mauve/diagonal, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"jP" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/engine/hull, -/area/ship/engineering) -"jS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/railing{ - dir = 1; - layer = 3.1 - }, -/obj/machinery/camera/autoname{ - dir = 10 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"jY" = ( -/obj/structure/chair/plastic{ - dir = 4 - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_x = -9; - pixel_y = 23 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"kd" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"ke" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"kg" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"kh" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/security{ - req_access = list(1) - }, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"kl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew) -"kn" = ( -/obj/machinery/porta_turret/ship, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) -"ko" = ( -/obj/structure/rack, -/obj/machinery/door/window/brigdoor/westleft{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/item/stack/cable_coil/red{ - amount = 4 - }, -/obj/item/stack/sheet/rglass, -/obj/item/stack/sheet/rglass, -/obj/item/storage/toolbox/electrical{ - pixel_y = 10 - }, -/obj/item/mmi/posibrain, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"kp" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"kq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"kr" = ( -/obj/structure/filingcabinet, -/obj/item/kitchen/knife/letter_opener, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/item/clothing/mask/cigarette/cigar/havana, -/obj/item/clothing/mask/cigarette/cigar/havana, -/obj/item/clothing/mask/cigarette/cigar/havana, -/obj/item/clothing/mask/cigarette/cigar/havana, -/obj/item/clothing/mask/cigarette/cigar/havana, -/obj/item/clothing/mask/cigarette/cigar/havana, -/obj/structure/sign/poster/official/cohiba_robusto_ad{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"kv" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/effect/turf_decal/minutemen/edge{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/east{ - pixel_y = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"kw" = ( -/obj/effect/turf_decal/industrial/stand_clear, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/ship/hangar/port) -"ky" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -18 - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"kF" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/box, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"kS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/holopad/emergency/engineering, -/obj/effect/turf_decal/box, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"kW" = ( -/obj/structure/table/chem, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 6; - pixel_y = 11 - }, -/obj/structure/sign/departments/chemistry/pharmacy{ - pixel_y = 32 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 7 - }, -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"kZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/directional/south, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"la" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/item/paper/crumpled, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"lb" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"ld" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"le" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -18 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"lk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"lm" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/item/kirbyplants{ - icon_state = "plant-04"; - pixel_x = -7; - pixel_y = 22 - }, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"lp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"lr" = ( -/obj/structure/window/reinforced, -/obj/effect/turf_decal/steeldecal/steel_decals4{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"lu" = ( -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/borderfloor, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"lv" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "obendo" - }, -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/turf/open/floor/plating, -/area/ship/engineering) -"lx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/structure/closet/secure_closet/engineering_electrical{ - anchored = 1 - }, -/obj/effect/turf_decal/box, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"lz" = ( -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/firealarm/directional/west, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"lB" = ( -/obj/machinery/washing_machine, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"lD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/central) -"lE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/structure/sign/poster/contraband/power{ - pixel_x = 32; - pixel_y = 32 - }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"lH" = ( -/obj/machinery/door/airlock/external, -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "vela_labeva" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science) -"lK" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/cargo) -"lM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"lQ" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ship/cargo) -"lR" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 15; - height = 15; - width = 30 - }, -/turf/template_noop, -/area/template_noop) -"lV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"md" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"mi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/transparent/purple/diagonal, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"ml" = ( -/obj/machinery/vending/games, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"mq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"mC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/modular_computer/console/preset/engineering{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"mK" = ( -/obj/machinery/door/airlock/command{ - dir = 4; - req_access = list(19) - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/science/ai_chamber) -"mN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"mO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 1 - }, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"mP" = ( -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/corner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"mR" = ( -/obj/effect/turf_decal/trimline/opaque/purple/filled/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"mS" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "obfront"; - name = "Window Shutters" - }, -/turf/open/floor/plating, -/area/ship/bridge) -"mW" = ( -/obj/structure/table/reinforced, -/obj/machinery/light/small/directional/south, -/obj/item/reagent_containers/glass/maunamug{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 1 - }, -/obj/item/pen/fourcolor{ - pixel_x = -6; - pixel_y = 2 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"mY" = ( -/obj/effect/turf_decal/steeldecal/steel_decals1, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"ng" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"nh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/machinery/power/floodlight, -/turf/open/floor/plating, -/area/ship/storage) -"ni" = ( -/obj/machinery/cryopod{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/orange{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 2.8 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/dorm) -"nm" = ( -/obj/structure/sign/clip{ - pixel_y = 36 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/machinery/light/directional/north{ - pixel_y = 28 - }, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"no" = ( -/obj/structure/janitorialcart, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/structure/mopbucket, -/turf/open/floor/pod, -/area/ship/cargo) -"np" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"nq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"nr" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/black/diagonal{ - dir = 4 - }, -/obj/item/radio/intercom/directional/west, -/obj/item/reagent_containers/food/condiment/mayonnaise{ - pixel_y = 12; - pixel_x = 5 - }, -/obj/item/reagent_containers/food/condiment/ketchup{ - pixel_x = 8; - pixel_y = 6 - }, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"nw" = ( -/obj/structure/frame/machine, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"nA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"nC" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/storage) -"nF" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"nO" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"nP" = ( -/obj/machinery/door/poddoor/preopen{ - id = "obhangarent2" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/mining, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"nQ" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 8 - }, -/obj/machinery/door/airlock{ - dir = 4; - name = "Showers" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew) -"nS" = ( -/obj/effect/turf_decal/minutemen/edge{ - dir = 8 - }, -/obj/item/mecha_parts/part/ripley_right_arm, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar/port) -"nU" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"nV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"nW" = ( -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "obengines"; - name = "Engine Shutters" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"oa" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/closet/firecloset/wall/directional/east, -/obj/machinery/button/door{ - dir = 8; - id = "vela_labeva"; - name = "airlock shutters"; - pixel_x = 22; - pixel_y = -16; - req_access = list(1) - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"ot" = ( -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"ov" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"oC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"oJ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"oT" = ( -/obj/structure/chair/office{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/sign/poster/official/moth/boh{ - pixel_y = -32 - }, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"oZ" = ( -/obj/machinery/ai_slipper, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"pd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4, -/obj/machinery/meter{ - target_layer = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/manifold/supply/visible/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"pe" = ( -/obj/machinery/camera/autoname{ - dir = 4 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"pf" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/science) -"pk" = ( -/obj/structure/table/wood, -/obj/item/trash/plate{ - pixel_x = 9 - }, -/obj/item/newspaper{ - pixel_x = -6; - pixel_y = 2 - }, -/obj/item/newspaper{ - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/clothing/mask/cigarette/dromedary{ - pixel_x = 7; - pixel_y = 10 - }, -/obj/effect/decal/cleanable/vomit/old{ - pixel_x = 9; - pixel_y = 18 - }, -/turf/open/floor/carpet, -/area/ship/crew) -"pp" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/closet/secure_closet/miner{ - name = "pilot's equipment"; - populate = 0 - }, -/obj/item/clothing/head/helmet/bulletproof/m10/clip_vc, -/obj/item/clothing/suit/armor/vest/alt, -/obj/item/clothing/shoes/combat, -/obj/item/gps/mining, -/obj/item/clothing/glasses/hud/diagnostic, -/obj/item/clothing/gloves/fingerless, -/obj/item/stock_parts/cell/high/plus, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"pq" = ( -/obj/effect/turf_decal/techfloor/orange{ - dir = 1 - }, -/obj/item/radio/intercom/wideband/directional/west, -/turf/open/floor/circuit/green, -/area/ship/science/ai_chamber) -"pw" = ( -/obj/structure/chair/sofa/brown/left/directional/west, -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/carpet, -/area/ship/crew) -"pA" = ( -/obj/structure/table, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_x = -4 - }, -/obj/item/lighter{ - pixel_x = -9; - pixel_y = -4 - }, -/obj/item/newspaper{ - pixel_x = 5; - pixel_y = 9 - }, -/obj/item/holosign_creator/security{ - pixel_x = 4; - pixel_y = -1 - }, -/obj/item/reagent_containers/food/drinks/coffee{ - pixel_x = -8; - pixel_y = 14 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"pC" = ( -/obj/structure/noticeboard/qm{ - desc = "Important notices from the Supply Officer"; - name = "Supply Officer's Notice Board"; - pixel_y = 28 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/pod, -/area/ship/cargo) -"pG" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning/cee{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"pJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/toilet) -"pK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/industrial/stand_clear, -/turf/open/floor/engine, -/area/ship/hangar/port) -"pM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"pU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"pW" = ( -/obj/machinery/camera/autoname{ - dir = 9 - }, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"pX" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"qa" = ( -/obj/structure/table, -/obj/item/newspaper{ - pixel_x = -6; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = -9 - }, -/obj/item/toy/figure/scientist{ - pixel_x = 8; - pixel_y = 5 - }, -/obj/item/radio/old{ - pixel_y = -11 - }, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"qc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/transparent/mauve/diagonal, -/obj/machinery/light/directional/west, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"qd" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"qe" = ( -/obj/machinery/computer/monitor{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/sign/warning/enginesafety{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"qj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/ship/storage) -"qk" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning/cee{ - dir = 4 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"qy" = ( -/obj/machinery/door/poddoor/preopen{ - id = "obhangarent2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/mining, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"qB" = ( -/obj/structure/sign/poster/official/report_crimes{ - pixel_y = -32 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/closet/secure_closet/miner{ - name = "pilot's equipment"; - populate = 0 - }, -/obj/item/clothing/head/helmet/bulletproof/m10/clip_vc, -/obj/item/clothing/suit/armor/vest/alt, -/obj/item/clothing/shoes/combat, -/obj/item/gps/mining, -/obj/item/clothing/glasses/hud/diagnostic, -/obj/item/clothing/gloves/fingerless, -/obj/item/stock_parts/cell/high/plus, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"qC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"qF" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/toy/cards/deck{ - pixel_x = 6; - pixel_y = 1 - }, -/turf/open/floor/carpet, -/area/ship/crew) -"qG" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/engine/hull, -/area/ship/engineering/engine) -"qJ" = ( -/obj/structure/table/reinforced, -/obj/item/gps{ - gpstag = "GOLD-VHEV"; - pixel_x = -5; - pixel_y = -2 - }, -/obj/machinery/button/door{ - dir = 8; - id = "obfront"; - name = "Window Shutters"; - pixel_x = 8; - pixel_y = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"qO" = ( -/obj/effect/turf_decal/techfloor, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"qP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"qR" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"qS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"qT" = ( -/obj/structure/sign/poster/official/bless_this_spess{ - pixel_x = -32 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/camera/autoname{ - dir = 5 - }, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/pilot, -/obj/item/clothing/head/helmet/space/pilot/random, -/obj/item/reagent_containers/food/drinks/bottle/trappist, -/obj/structure/sign/warning/nosmoking/burnt{ - pixel_x = -4; - pixel_y = -28 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"qU" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/traffic, -/turf/open/floor/engine, -/area/ship/external) -"qX" = ( -/obj/structure/filingcabinet/double, -/obj/item/clipboard, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"qY" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/closet/secure_closet{ - icon_state = "cap"; - name = "first officer's locker"; - req_access_txt = "19" - }, -/obj/effect/turf_decal/box, -/obj/machinery/light/small/directional/west, -/obj/item/binoculars, -/obj/item/megaphone, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/shoes/combat, -/obj/item/radio/headset/clip/alt/captain, -/obj/item/storage/backpack/captain, -/obj/item/storage/backpack/satchel/cap, -/obj/item/clipboard, -/obj/item/reagent_containers/spray/pepper, -/obj/item/clothing/suit/toggle/lawyer/clip/fo, -/obj/item/clothing/head/clip/slouch/officer, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"ra" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/external) -"rb" = ( -/obj/machinery/computer/security{ - dir = 8 - }, -/obj/effect/turf_decal/box/red, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"rd" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/line, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"rn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"rr" = ( -/obj/machinery/shower{ - pixel_y = 16 - }, -/obj/structure/window/reinforced/tinted{ - dir = 4 - }, -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/effect/turf_decal/floordetail/tiled, -/turf/open/floor/plasteel/tech, -/area/ship/crew) -"rs" = ( -/obj/structure/rack, -/obj/machinery/door/window/brigdoor/northleft, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/spawner/lootdrop/aimodule_harmless, -/obj/effect/spawner/lootdrop/aimodule_harmless, -/obj/effect/spawner/lootdrop/aimodule_harmless, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"rv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"rw" = ( -/obj/structure/chair/sofa/brown/right/directional/east, -/obj/machinery/light/small/directional/west, -/obj/item/kirbyplants{ - icon_state = "plant-22"; - pixel_x = -8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet, -/area/ship/crew) -"rx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"ry" = ( -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/pod, -/area/ship/cargo) -"rA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/structure/closet/secure_closet/engineering_welding{ - anchored = 1 - }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"rB" = ( -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"rO" = ( -/obj/effect/turf_decal/trimline/opaque/purple/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/warning{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/airlock/research{ - dir = 4; - name = "Science Lab" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"rR" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/wood, -/area/ship/crew/office) -"rT" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 8 - }, -/obj/machinery/door/airlock{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/canteen) -"sa" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/decal/cleanable/generic, -/obj/machinery/light/small/directional/west, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -18 - }, -/turf/open/floor/plating, -/area/ship/storage) -"sb" = ( -/obj/effect/turf_decal/techfloor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"sc" = ( -/obj/machinery/door/poddoor/preopen{ - id = "obhangarent1" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"si" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"sn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/sign/warning/fire{ - pixel_x = 8; - pixel_y = 24 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"sr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"sy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"sA" = ( -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 8; - name = "Waste to Environment" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"sD" = ( -/obj/structure/sign/poster/official/cohiba_robusto_ad{ - pixel_y = -32 - }, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/pod, -/area/ship/cargo) -"sF" = ( -/obj/effect/turf_decal/techfloor/orange{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/circuit/green, -/area/ship/science/ai_chamber) -"sK" = ( -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"sM" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"sN" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 8 - }, -/obj/machinery/door/airlock{ - dir = 4; - name = "Airlock Access" - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"sR" = ( -/obj/machinery/porta_turret/ship{ - dir = 8 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) -"sV" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/stairs{ - dir = 8 - }, -/area/ship/bridge) -"ta" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/machinery/door/poddoor{ - id = "obmine11" - }, -/turf/open/floor/engine, -/area/ship/hangar/port) -"tb" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/obj/machinery/light/directional/west, -/obj/item/reagent_containers/food/condiment/hotsauce{ - pixel_x = 5; - pixel_y = 7 - }, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"tc" = ( -/obj/structure/railing, -/obj/effect/turf_decal/steeldecal/steel_decals1{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"tf" = ( -/obj/machinery/door/airlock/external, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "vela_labeva" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science) -"tk" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"tm" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/item/cutting_board, -/obj/structure/closet/crate/freezer{ - name = "food supplies" - }, -/obj/item/cutting_board, -/obj/item/pizzabox/pineapple, -/obj/item/pizzabox/pineapple, -/obj/item/pizzabox/pineapple, -/obj/effect/spawner/lootdrop/ration, -/obj/item/reagent_containers/glass/mortar/metal, -/obj/item/pestle, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/peppermill, -/obj/item/reagent_containers/food/condiment/peppermill, -/turf/open/floor/pod, -/area/ship/cargo) -"tn" = ( -/obj/machinery/blackbox_recorder, -/obj/machinery/door/window/brigdoor/eastright, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"tq" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - id = "vela_cap" - }, -/turf/open/floor/plating, -/area/ship/crew/office) -"tu" = ( -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"tx" = ( -/obj/structure/frame/machine, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"tA" = ( -/obj/effect/turf_decal/industrial/caution{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/sign/warning/nosmoking{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"tI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"tJ" = ( -/obj/structure/window/reinforced, -/obj/structure/rack, -/obj/machinery/door/window/brigdoor/eastleft, -/obj/item/gps{ - gpstag = "GOLD-VHEV"; - pixel_x = -5; - pixel_y = -2 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/multitool, -/obj/item/storage/toolbox/mechanical, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"tO" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/mining{ - name = "Cargo Bay" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/brown/filled/warning, -/obj/effect/turf_decal/trimline/opaque/brown/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/cargo) -"tP" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"tQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/turf_decal/corner/transparent/mauve/diagonal, -/obj/effect/turf_decal/steeldecal/steel_decals_central4, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"tR" = ( -/obj/effect/turf_decal/minutemen/edge{ - dir = 1 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar/port) -"tT" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer5, -/obj/effect/turf_decal/industrial/warning{ - dir = 5 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"tW" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/machinery/microwave{ - anchored = 0 - }, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 6 - }, -/turf/open/floor/pod/dark, -/area/ship/cargo) -"tY" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "obmine11"; - name = "Bay 1 Doors"; - pixel_x = -7; - pixel_y = 23 - }, -/obj/machinery/button/shieldwallgen{ - id = "obhang21"; - name = "Bay 1 Air Shield"; - pixel_x = 5; - pixel_y = 22 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"uc" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"ue" = ( -/obj/structure/urinal{ - pixel_y = 32 - }, -/obj/effect/turf_decal/borderfloor{ - dir = 9 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/toilet) -"ug" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"ul" = ( -/obj/structure/table, -/obj/machinery/jukebox/boombox, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/ship/hallway/central) -"uo" = ( -/obj/structure/table, -/obj/item/clipboard{ - pixel_x = -3; - pixel_y = 8 - }, -/obj/item/paper/crumpled{ - pixel_x = 9; - pixel_y = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"up" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/ship/crew) -"uq" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/machinery/button/shieldwallgen{ - dir = 8; - id = "obcargos"; - pixel_x = 23; - pixel_y = 5 - }, -/obj/machinery/button/door{ - dir = 8; - id = "obcargo"; - name = "Cargo Shutters"; - pixel_x = 25; - pixel_y = -5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"ur" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/item/weldingtool/mini, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/techfloor/hole/right{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/engine, -/area/ship/hangar/port) -"us" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"uv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"uw" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"uB" = ( -/obj/effect/turf_decal/minutemen/corner, -/obj/item/circuitboard/mecha/ripley/peripherals, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar/port) -"uQ" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/structure/closet/secure_closet/freezer/fridge/open, -/turf/open/floor/pod, -/area/ship/cargo) -"uR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"uT" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/closet/secure_closet/miner{ - name = "pilot's equipment"; - populate = 0 - }, -/obj/item/clothing/head/helmet/bulletproof/m10/clip_vc, -/obj/item/clothing/suit/armor/vest/alt, -/obj/item/clothing/shoes/combat, -/obj/item/gps/mining, -/obj/item/clothing/glasses/hud/diagnostic, -/obj/item/clothing/gloves/fingerless, -/obj/item/stock_parts/cell/high/plus, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_y = -32 - }, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"uU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"uX" = ( -/obj/machinery/door/poddoor{ - id = "obcargo" - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "obcargos" - }, -/turf/open/floor/engine, -/area/ship/cargo) -"vr" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/sign/poster/clip/random{ - pixel_x = -28 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"vz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/techfloor/hole/right{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/engine, -/area/ship/hangar/port) -"vD" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "obmine11"; - name = "Bay 1 Doors"; - pixel_x = 7; - pixel_y = 23 - }, -/obj/machinery/button/shieldwallgen{ - id = "obhang21"; - name = "Bay 1 Air Shield"; - pixel_x = -5; - pixel_y = 22 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"vK" = ( -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"vM" = ( -/obj/structure/chair/sofa/brown/left/directional/west, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/carpet, -/area/ship/crew) -"vO" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4; - pixel_y = 1 - }, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/borderfloor{ - dir = 9 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/toilet) -"vS" = ( -/obj/machinery/camera/autoname{ - dir = 5 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"vV" = ( -/obj/structure/rack, -/obj/machinery/light/directional/north, -/obj/item/stack/sheet/mineral/wood/fifty, -/turf/open/floor/plasteel/tech, -/area/ship/crew/canteen) -"vX" = ( -/obj/structure/sign/warning/chemdiamond{ - pixel_x = 32 - }, -/obj/structure/table/chem, -/obj/item/reagent_containers/glass/filter{ - pixel_x = 12 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"wa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"wh" = ( -/obj/structure/table, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = 8; - pixel_y = -1 - }, -/obj/item/lighter, -/obj/machinery/button/door{ - dir = 4; - id = "obengines"; - name = "Engine Shutters"; - pixel_x = -24; - pixel_y = 7 - }, -/obj/structure/sign/poster/contraband/hacking_guide{ - pixel_y = -30 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"wi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair/plastic{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"wk" = ( -/obj/structure/closet/wall/directional/south, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew) -"wl" = ( -/obj/effect/turf_decal/rechargefloor, -/obj/structure/sign/poster/contraband/steppyflag{ - pixel_y = 32 - }, -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, -/obj/mecha/working/ripley/cargo, -/turf/open/floor/plasteel/tech/grid, -/area/ship/cargo) -"wn" = ( -/obj/structure/falsewall/plastitanium, -/turf/open/floor/plating, -/area/ship/cargo) -"wr" = ( -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 4; - layer = 3.1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"wv" = ( -/obj/effect/turf_decal/spline/fancy/wood/corner{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"ww" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/ship/crew) -"wz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -20 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"wA" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering/engine) -"wB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/generic, -/obj/machinery/power/floodlight, -/turf/open/floor/plating, -/area/ship/storage) -"wD" = ( -/obj/structure/railing, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 4 - }, -/obj/effect/turf_decal/minutemen/corner{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"wF" = ( -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/machinery/light_switch{ - pixel_x = -5; - pixel_y = 23 - }, -/obj/machinery/firealarm/directional/north{ - pixel_x = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"wH" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"wO" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 1 - }, -/obj/machinery/modular_computer/console/preset/civilian, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"wR" = ( -/obj/structure/sign/clip{ - pixel_y = 36 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/machinery/camera/autoname, -/obj/machinery/light/directional/north{ - pixel_y = 28 - }, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"wW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"wZ" = ( -/obj/machinery/door/airlock/command{ - dir = 4; - name = "Bridge"; - req_access_txt = "19" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/solgovgold/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/solgovgold/filled/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"xc" = ( -/obj/structure/table, -/obj/item/canvas/nineteenXnineteen, -/obj/item/canvas/nineteenXnineteen, -/obj/item/canvas/nineteenXnineteen, -/obj/item/storage/crayons, -/obj/item/toy/crayon/spraycan, -/obj/effect/turf_decal/siding/wood/end{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/ship/hallway/central) -"xh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"xl" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 4 - }, -/obj/machinery/door/airlock{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"xm" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/railing/corner{ - dir = 1; - layer = 3.1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/central) -"xy" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"xz" = ( -/obj/effect/turf_decal/industrial/caution, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"xA" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/stairs{ - dir = 8 - }, -/area/ship/bridge) -"xB" = ( -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"xC" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 1 - }, -/obj/structure/railing{ - dir = 1; - layer = 3.1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"xD" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/hallway/fore) -"xF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"xH" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 13 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/toilet) -"xI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "obai2"; - name = "AI core blast door button"; - pixel_x = 8; - pixel_y = 24; - req_access = list(19) - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/science/ai_chamber) -"xK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"xM" = ( -/obj/structure/toilet{ - pixel_y = 12 - }, -/obj/effect/turf_decal/floordetail/pryhole, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/mono/dark, -/area/ship/crew/toilet) -"xN" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/stack/sheet/glass/twenty, -/obj/item/stack/sheet/metal/twenty{ - pixel_y = 14 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"xR" = ( -/obj/machinery/camera/autoname{ - dir = 5 - }, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"xT" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "obhangarent21" - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"xU" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth, -/obj/item/bedsheet/blue, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"yb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"yd" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/wood, -/area/ship/hallway/central) -"yg" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"yi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/button/door{ - dir = 1; - id = "obhangarent11"; - name = "umbilical window shutters"; - pixel_x = -4; - pixel_y = -22 - }, -/obj/machinery/button/door{ - dir = 1; - id = "obhangarent1"; - name = "pod lockdown"; - pixel_x = 9; - pixel_y = -22; - req_access_txt = list(1) - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"yj" = ( -/obj/machinery/holopad/secure, -/obj/structure/sign/warning/testchamber{ - pixel_x = -28 - }, -/obj/effect/turf_decal/box, -/obj/effect/turf_decal/corner/transparent/purple/diagonal, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"yk" = ( -/obj/structure/rack, -/obj/item/stack/sheet/mineral/plasma/twenty, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/storage) -"ym" = ( -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"yn" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"yo" = ( -/obj/machinery/door/poddoor/preopen{ - id = "obhangarent1" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/research, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science) -"yr" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer5, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/industrial/warning{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"ys" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/hallway/central) -"yt" = ( -/obj/machinery/suit_storage_unit/engine, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"yv" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 4; - piping_layer = 2 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"yx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"yA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"yD" = ( -/obj/machinery/shower{ - pixel_y = 16 - }, -/obj/structure/window/reinforced/tinted{ - dir = 4 - }, -/obj/effect/turf_decal/floordetail/tiled, -/turf/open/floor/plasteel/tech, -/area/ship/crew) -"yG" = ( -/obj/effect/turf_decal/trimline/opaque/purple/line, -/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ - dir = 1 - }, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -24 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"yH" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"yI" = ( -/obj/effect/turf_decal/spline/fancy/wood/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"yL" = ( -/obj/effect/turf_decal/industrial/outline/red, -/obj/effect/turf_decal/rechargefloor, -/obj/mecha/working/ripley/clip, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"zf" = ( -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "obengines"; - name = "Engine Shutters" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"zi" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "obhang22" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/poddoor{ - id = "obmine12" - }, -/turf/open/floor/engine, -/area/ship/hangar/port) -"zk" = ( -/obj/item/kirbyplants/random, -/obj/structure/sign/warning/securearea{ - pixel_x = -26; - pixel_y = 8 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"zl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 1 - }, -/obj/machinery/door/airlock{ - name = "Dormitory" - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/dorm) -"zr" = ( -/obj/structure/frame/machine, -/obj/effect/turf_decal/techfloor, -/obj/machinery/firealarm/directional/south, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"zs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/engine, -/area/ship/hangar/port) -"zy" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Operations" - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"zz" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"zB" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/effect/turf_decal/minutemen/edge{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"zC" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"zE" = ( -/obj/structure/sign/clip, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/hangar/port) -"zF" = ( -/obj/structure/frame/computer{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"zJ" = ( -/turf/open/floor/carpet, -/area/ship/crew) -"zK" = ( -/obj/structure/chair/sofa/brown/corner/directional/south, -/obj/item/radio/intercom/directional/east, -/obj/item/toy/plush/hornet{ - pixel_y = 7 - }, -/turf/open/floor/carpet, -/area/ship/crew) -"zL" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/corner/transparent/mauve/diagonal, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/caution{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"zN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer4{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"zR" = ( -/obj/structure/closet/firecloset/wall/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/firstaid/fire, -/obj/effect/turf_decal/techfloor, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"zV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -20 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"zX" = ( -/turf/open/floor/wood, -/area/ship/hallway/central) -"Ab" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central6{ - dir = 8 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/item/paper_bin{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/paper_bin/carbon{ - pixel_x = -9; - pixel_y = 3 - }, -/obj/item/pen/blue{ - pixel_x = 7; - pixel_y = 4 - }, -/obj/item/pen/fountain{ - pixel_x = 5 - }, -/obj/item/pen/fourcolor{ - pixel_x = 10; - pixel_y = 7 - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 11; - pixel_y = -16 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"Ae" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew/dorm) -"Ai" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"Ak" = ( -/obj/structure/grille, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"An" = ( -/obj/structure/rack, -/obj/machinery/door/window/brigdoor/northright, -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/spawner/lootdrop/aimodule_neutral, -/obj/effect/spawner/lootdrop/aimodule_neutral, -/obj/effect/spawner/lootdrop/aimodule_neutral, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"Aq" = ( -/obj/machinery/mineral/ore_redemption, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"Ar" = ( -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Au" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Av" = ( -/obj/structure/table/chem, -/obj/item/reagent_scanner, -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"AB" = ( -/obj/item/analyzer, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"AC" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "obhang21" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/machinery/door/poddoor{ - id = "obmine11" - }, -/turf/open/floor/engine, -/area/ship/hangar/port) -"AD" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"AF" = ( -/obj/machinery/atmospherics/components/binary/valve/digital/layer2, -/obj/machinery/atmospherics/components/binary/valve/digital/layer4, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"AN" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"AO" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning, -/obj/machinery/door/airlock{ - name = "Restroom" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/toilet) -"AR" = ( -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 9 - }, -/turf/open/floor/pod/dark, -/area/ship/cargo) -"AS" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"Bc" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/structure/cable, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -12; - pixel_y = -16 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"Bh" = ( -/obj/effect/decal/cleanable/oil/streak, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Bj" = ( -/obj/structure/closet/secure_closet{ - icon_state = "cap"; - name = "captain's locker"; - req_access_txt = "20" - }, -/obj/item/clothing/under/clip/officer, -/obj/item/clothing/suit/armor/clip_capcoat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/glasses/sunglasses, -/obj/item/gun/ballistic/automatic/pistol/candor, -/obj/item/clothing/head/clip/slouch/officer, -/obj/item/radio/headset/clip/alt/captain, -/obj/item/storage/backpack, -/obj/item/storage/backpack/satchel, -/obj/item/binoculars, -/obj/item/door_remote/captain, -/turf/open/floor/carpet/royalblack, -/area/ship/crew/office) -"Bn" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/orange/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/dorm) -"Bq" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Br" = ( -/obj/structure/chair/comfy/orange/directional/east, -/turf/open/floor/wood, -/area/ship/crew/office) -"Bu" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/steeldecal/steel_decals_central7{ - dir = 8; - pixel_x = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 4 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7, -/obj/structure/cable, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 11; - pixel_y = -16 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/toilet) -"BB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/item/kirbyplants/random{ - pixel_x = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"BC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"BE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"BH" = ( -/obj/structure/chair/sofa/brown/directional/south, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet, -/area/ship/crew) -"BI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"BN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 1 - }, -/obj/machinery/door/airlock, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"BQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/science/ai_chamber) -"BR" = ( -/obj/structure/closet/secure_closet/engineering_personal{ - anchored = 1 - }, -/obj/effect/turf_decal/box, -/obj/item/pipe_dispenser, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/contraband/random{ - pixel_y = 30 - }, -/obj/item/clothing/suit/toggle/industrial, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"BW" = ( -/obj/structure/curtain/cloth, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"BX" = ( -/obj/structure/chair/sofa/brown/directional/south, -/obj/machinery/newscaster/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet, -/area/ship/crew) -"BY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/airlock, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"Ca" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Cd" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/security/armory) -"Ce" = ( -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"Cj" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/engine/hull, -/area/ship/engineering/atmospherics) -"Cp" = ( -/obj/effect/turf_decal/steeldecal/steel_decals7, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/stand_clear, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"Cq" = ( -/obj/effect/turf_decal/minutemen/edge{ - dir = 4 - }, -/obj/item/mecha_parts/part/ripley_left_arm, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar/port) -"Cu" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = -28 - }, -/obj/structure/cable{ - icon_state = "5-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"Cw" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Helm" - }, -/obj/effect/turf_decal/steeldecal/steel_decals3, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"Cz" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"CD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/light/small/directional/south, -/obj/effect/turf_decal/corner/transparent/purple/diagonal, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"CF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"CG" = ( -/obj/structure/frame/machine, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"CI" = ( -/obj/structure/table/reinforced, -/obj/machinery/light/small/directional/north, -/obj/item/radio/intercom/wideband/table{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"CK" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"CM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/engine, -/area/ship/hangar/port) -"CN" = ( -/obj/structure/frame/machine, -/obj/effect/turf_decal/techfloor, -/obj/machinery/button/door{ - dir = 8; - id = "vela_lablock"; - pixel_x = 22; - pixel_y = 7 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"CO" = ( -/obj/machinery/cryopod, -/obj/effect/turf_decal/techfloor/orange{ - dir = 1 - }, -/obj/structure/railing{ - dir = 1; - layer = 2.8 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/dorm) -"CS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/siding/wood, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"CW" = ( -/obj/structure/table, -/obj/item/toy/cards/deck, -/obj/effect/turf_decal/siding/thinplating/dark/corner, -/obj/structure/sign/poster/contraband/engis_unite{ - pixel_y = 32 - }, -/obj/item/spacecash/bundle/pocketchange{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"CX" = ( -/obj/machinery/rnd/production/circuit_imprinter/department/basic, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"Dd" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - pixel_y = 30 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"Dr" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access = list(20) - }, -/obj/effect/turf_decal/trimline/opaque/solgovgold/filled/warning, -/obj/effect/turf_decal/trimline/opaque/solgovgold/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/office) -"Dt" = ( -/obj/structure/closet/firecloset/full{ - anchored = 1 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/structure/sign/directions/engineering{ - dir = 8; - pixel_x = -32; - pixel_y = 7 - }, -/obj/structure/sign/directions/command{ - dir = 4; - pixel_x = -32 - }, -/obj/structure/sign/directions/supply{ - dir = 4; - pixel_x = -32; - pixel_y = -7 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Dw" = ( -/obj/structure/dresser, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Dy" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/storage) -"DD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"DI" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"DL" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"DM" = ( -/obj/machinery/camera/autoname{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"DP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/transparent/purple/diagonal, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 4 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"Eb" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"Ec" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/cable, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"Ed" = ( -/obj/effect/turf_decal/box/corners, -/obj/machinery/shieldgen, -/obj/effect/decal/cleanable/garbage, -/obj/machinery/light/small/broken/directional/east, -/turf/open/floor/plating, -/area/ship/storage) -"Ef" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 8 - }, -/obj/effect/turf_decal/steeldecal/steel_decals6, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"Ek" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) -"El" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"Em" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"En" = ( -/obj/structure/chair/sofa/brown/directional/west, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet, -/area/ship/crew) -"Eo" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/box/corners, -/obj/machinery/power/ship_gravity, -/turf/open/floor/plating, -/area/ship/storage) -"Ex" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/wood, -/area/ship/crew) -"Ey" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera/autoname{ - dir = 10 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"Ez" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"EC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/engine, -/area/ship/hangar/port) -"ED" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"EE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"EG" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"EH" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"EJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/ship/storage) -"EK" = ( -/obj/effect/turf_decal/spline/fancy/wood/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew) -"EM" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/effect/turf_decal/minutemen/edge, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"EN" = ( -/obj/machinery/mech_bay_recharge_port{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"ER" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/machinery/camera/autoname, -/obj/structure/sign/warning/electricshock{ - pixel_y = 30 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"EU" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"EX" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Fg" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering/engine) -"Fl" = ( -/obj/machinery/door/poddoor/preopen{ - id = "obhangarent1" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/research, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science) -"Fr" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/minutemen/corner{ - dir = 4 - }, -/obj/item/mecha_parts/part/ripley_left_leg, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar/port) -"Fw" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"Fx" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 1; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Fy" = ( -/obj/effect/turf_decal/industrial/outline/red, -/obj/effect/turf_decal/rechargefloor, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"Fz" = ( -/obj/item/bedsheet/cosmos, -/obj/structure/bed, -/obj/structure/curtain/cloth, -/turf/open/floor/carpet/royalblack, -/area/ship/crew/office) -"FC" = ( -/obj/effect/turf_decal/trimline/opaque/purple/filled/warning, -/obj/effect/turf_decal/trimline/opaque/purple/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/airlock/research, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"FF" = ( -/obj/machinery/portable_atmospherics/scrubber/huge/movable, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/contraband/gec{ - pixel_y = -30 - }, -/turf/open/floor/plating, -/area/ship/storage) -"FJ" = ( -/obj/structure/table/chem, -/obj/machinery/reagentgrinder{ - pixel_y = 11 - }, -/obj/item/reagent_containers/food/snacks/grown/citrus/lemon{ - pixel_y = 8 - }, -/obj/effect/turf_decal/techfloor, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"FK" = ( -/obj/machinery/airalarm/directional/south, -/obj/structure/table/reinforced, -/obj/machinery/fax/clip, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"FN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/transparent/purple/diagonal, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"FR" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Ga" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 9 - }, -/turf/open/floor/wood, -/area/ship/crew) -"Ge" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/screwdriver{ - icon_state = "screwdriver_nuke" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/table, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Gg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/arrows, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Gh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Gi" = ( -/obj/structure/frame/computer, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"Gk" = ( -/turf/open/floor/plating, -/area/ship/external) -"Gl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Go" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Gs" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"Gt" = ( -/obj/machinery/door/poddoor/preopen{ - id = "obhangarent1" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Gu" = ( -/obj/structure/table/reinforced, -/obj/item/desk_flag{ - pixel_y = 9 - }, -/obj/item/desk_flag/trans{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"Gx" = ( -/obj/machinery/autolathe, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"Gz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"GA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering) -"GB" = ( -/obj/item/kirbyplants/random, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"GD" = ( -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/engine, -/area/ship/hangar/port) -"GF" = ( -/obj/effect/decal/cleanable/oil{ - icon_state = "floor4" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/ship/storage) -"GH" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "obhangarent11" - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"GI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/science/ai_chamber) -"GO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/dorm) -"GS" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"GV" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"Ha" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Hb" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/rack, -/obj/item/mecha_parts/mecha_equipment/weapon/energy/mecha_kineticgun, -/obj/item/mecha_parts/mecha_equipment/thrusters/gas, -/obj/item/mecha_parts/mecha_equipment/drill, -/obj/item/mecha_parts/mecha_equipment/mining_scanner, -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"Hc" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners, -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/machinery/light/directional/north, -/obj/item/reagent_containers/food/drinks/waterbottle, -/obj/item/reagent_containers/food/drinks/waterbottle, -/obj/item/reagent_containers/food/drinks/waterbottle, -/obj/item/reagent_containers/food/drinks/waterbottle, -/turf/open/floor/pod, -/area/ship/cargo) -"Hf" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Hk" = ( -/obj/machinery/airalarm/directional/south, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"Ht" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 8 - }, -/obj/effect/turf_decal/minutemen/corner{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"Hw" = ( -/obj/structure/table/reinforced, -/obj/item/clipboard, -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"Hx" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "obhang22" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/poddoor{ - id = "obmine12" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ship/hangar/port) -"Hy" = ( -/obj/effect/turf_decal/techfloor, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"HB" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/window, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "vela_lablock" - }, -/turf/open/floor/plating, -/area/ship/science/xenobiology) -"HH" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/oil{ - icon_state = "floor4" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"HI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central7, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"HK" = ( -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/cable{ - icon_state = "0-10" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"HN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/railing{ - dir = 1; - layer = 3.1 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"HO" = ( -/obj/structure/closet/wall/directional/south, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/turf_decal/steeldecal/steel_decals_central7{ - pixel_y = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 9 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew) -"HV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"HW" = ( -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 28 - }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"HY" = ( -/obj/structure/filingcabinet/double, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science) -"Ia" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"Ih" = ( -/obj/structure/table/reinforced, -/obj/item/radio/intercom/directional/south, -/obj/machinery/turretid{ - pixel_y = 3 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"In" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Io" = ( -/obj/effect/turf_decal/industrial/caution, -/obj/effect/decal/cleanable/glass, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"Iu" = ( -/obj/structure/table/wood, -/obj/item/storage/book/bible/booze{ - pixel_x = -5 - }, -/obj/item/flashlight/lamp/green{ - pixel_x = 6; - pixel_y = 9 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"Iv" = ( -/obj/effect/turf_decal/minutemen/corner{ - dir = 1 - }, -/obj/item/mecha_parts/part/ripley_right_leg, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar/port) -"Iy" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"Iz" = ( -/obj/effect/turf_decal/number/two, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/engine, -/area/ship/hangar/port) -"IC" = ( -/obj/machinery/computer/security{ - dir = 4; - icon_state = "computer-middle" - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"ID" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/sign/poster/contraband/xenofauna_parasite{ - pixel_x = -28; - pixel_y = -2 - }, -/obj/structure/chair/office{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"IE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/table, -/obj/item/radio/intercom{ - dir = 4; - pixel_x = 13; - pixel_y = 1 - }, -/obj/machinery/button/door{ - dir = 8; - id = "obendo"; - name = "Office Shutters"; - pixel_x = -6; - pixel_y = 5 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"IF" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/item/storage/toolbox/electrical{ - pixel_x = -10; - pixel_y = -5 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"II" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"IJ" = ( -/obj/effect/decal/cleanable/robot_debris/old, -/obj/item/wrench, -/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{ - dir = 4 - }, -/obj/machinery/meter{ - target_layer = 2 - }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"IM" = ( -/turf/open/floor/carpet/royalblack, -/area/ship/crew/office) -"IV" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"IZ" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"Ja" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Jj" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/structure/closet/wall/directional/west{ - name = "spare uniforms" - }, -/obj/item/clothing/under/clip/minutemen, -/obj/item/clothing/under/clip/minutemen, -/obj/item/clothing/under/clip/minutemen, -/obj/item/clothing/under/clip/minutemen, -/obj/item/clothing/under/clip/minutemen, -/obj/item/clothing/under/clip/minutemen, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/shoes/combat, -/turf/open/floor/plasteel/tech, -/area/ship/crew/dorm) -"Jk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/science/ai_chamber) -"Jl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering/atmospherics) -"Jo" = ( -/obj/machinery/shower{ - pixel_y = 16 - }, -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/effect/turf_decal/floordetail/tiled, -/turf/open/floor/plasteel/tech, -/area/ship/crew) -"Jp" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/steeldecal/steel_decals8, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"Ju" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/stamp/hos{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/machinery/recharger{ - pixel_x = -8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"Jw" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/cargo) -"JB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"JH" = ( -/obj/structure/window/reinforced, -/obj/machinery/computer/monitor{ - dir = 4; - icon_state = "computer-left" - }, -/obj/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"JI" = ( -/obj/effect/turf_decal/industrial/outline/red, -/obj/effect/turf_decal/rechargefloor, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"JL" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/effect/turf_decal/corner_techfloor_grid, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"JM" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"JN" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - id = "obai" - }, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"JV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer5{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/caution, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/vacuum/external{ - pixel_x = -28; - pixel_y = 11 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"JY" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "obmine12"; - name = "Bay Doors"; - pixel_x = 7; - pixel_y = 25 - }, -/obj/machinery/button/shieldwallgen{ - id = "obhang22"; - name = "Air Shield Switch"; - pixel_x = -5; - pixel_y = 25 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"Kd" = ( -/obj/effect/decal/cleanable/wrapping, -/obj/structure/chair/plastic{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"Kk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Ko" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"Kq" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Kr" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 1 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Ks" = ( -/obj/effect/turf_decal/techfloor/orange, -/obj/machinery/light/small/directional/east, -/turf/open/floor/circuit/green, -/area/ship/science/ai_chamber) -"KC" = ( -/turf/open/floor/plasteel/stairs/mid, -/area/ship/hallway/central) -"KE" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/borderfloor, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"KN" = ( -/obj/structure/railing/corner{ - dir = 1; - layer = 3.1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"KO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Lb" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"Le" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/poddoor{ - id = "obmine12" - }, -/turf/open/floor/engine, -/area/ship/hangar/port) -"Ln" = ( -/obj/machinery/vending/sovietsoda{ - anchored = 0 - }, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners, -/turf/open/floor/pod, -/area/ship/cargo) -"Lx" = ( -/obj/structure/urinal{ - pixel_y = 32 - }, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/borderfloor{ - dir = 5 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/toilet) -"LB" = ( -/obj/machinery/computer/cargo/express{ - dir = 8 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"LJ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/red/warning{ - dir = 4 - }, -/obj/machinery/door/window/brigdoor/westleft{ - req_access_txt = list("1") - }, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"LK" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 6 - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/turf/open/floor/pod/dark, -/area/ship/cargo) -"LL" = ( -/obj/structure/sign/poster/clip/random{ - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"LS" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"LT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"LU" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"Mc" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/black, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"Mi" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Input to Mech Refill" - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Mj" = ( -/obj/structure/rack, -/obj/item/stack/sheet/glass/five, -/obj/item/stack/sheet/glass/five, -/obj/item/stack/sheet/plastic/twenty, -/obj/structure/sign/poster/contraband/free_drone{ - pixel_y = 32 - }, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/item/rcl/pre_loaded, -/obj/item/rcl/pre_loaded, -/turf/open/floor/plating, -/area/ship/storage) -"Mn" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/minutemen/edge, -/obj/item/mecha_parts/chassis/ripley, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar/port) -"Mt" = ( -/obj/structure/table/chem, -/obj/effect/turf_decal/techfloor, -/obj/item/reagent_containers/glass/rag{ - pixel_y = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"Mu" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Mv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/mineral/ore_redemption, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"Mw" = ( -/obj/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/components/binary/pump/layer4{ - name = "Waste to Recycler" - }, -/obj/machinery/button/door{ - dir = 8; - id = "obair"; - name = "Blast Door Controller"; - pixel_x = 22; - pixel_y = -2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Mx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/science/ai_chamber) -"MB" = ( -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/crew/toilet) -"MC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "obendo" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/ship/engineering) -"MF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/security{ - req_access = list(1) - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"MJ" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/item/radio/intercom/directional/south, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"MP" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/corner{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 1; - layer = 3.1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-10" - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"MU" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/arrows, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"MV" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"MW" = ( -/obj/structure/table/reinforced, -/obj/item/megaphone/command, -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"MY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"MZ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/red/warning{ - dir = 4 - }, -/obj/item/paper_bin, -/obj/item/pen/blue, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"Na" = ( -/obj/structure/grille, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/floor/engine/hull/reinforced, -/area/ship/external) -"Nd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Nf" = ( -/obj/machinery/button/door{ - dir = 8; - id = "obengi"; - name = "Engineering Storage Lock"; - pixel_x = 22; - pixel_y = -7 - }, -/obj/item/decal_painter{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/decal_painter{ - pixel_x = 6; - pixel_y = 1 - }, -/obj/structure/table, -/obj/machinery/light_switch{ - pixel_x = -9; - pixel_y = 23 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Nh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/sign/departments/engineering{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Nk" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/closet/secure_closet/brig{ - id = "vela" - }, -/obj/machinery/door_timer{ - id = "vela"; - pixel_y = 28 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Nl" = ( -/obj/effect/decal/cleanable/oil/streak, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/airlock/engineering{ - req_access = list(10) - }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning, -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Nm" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_y = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"Nn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"No" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/sign/departments/security{ - pixel_y = -28 - }, -/obj/structure/railing{ - dir = 1; - layer = 3.1 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Np" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew/canteen) -"Nq" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/decal/cleanable/oil{ - icon_state = "streak5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Nr" = ( -/obj/structure/table, -/obj/machinery/light/small/directional/east, -/obj/structure/bedsheetbin/empty, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"Nv" = ( -/obj/effect/turf_decal/trimline/opaque/purple/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"Nw" = ( -/obj/effect/decal/cleanable/wrapping, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/machinery/jukebox, -/turf/open/floor/pod, -/area/ship/cargo) -"Nx" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/chair/office{ - dir = 4 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 25; - pixel_y = -5 - }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"Ny" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black/corner, -/obj/effect/turf_decal/minutemen/corner, -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"Nz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"NC" = ( -/obj/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"ND" = ( -/obj/effect/turf_decal/industrial/caution, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/light/small/directional/west, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -21; - pixel_y = -10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"NE" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"NF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"NJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/bookcase/manuals, -/obj/machinery/button/door{ - id = "vela_cap"; - name = "window shutters"; - pixel_x = 8; - pixel_y = 23 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"NQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/chair/office{ - dir = 4 - }, -/obj/structure/sign/warning/fire{ - pixel_x = -8; - pixel_y = 24 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"NS" = ( -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"NU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"NV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Oe" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/arrows, -/turf/open/floor/engine, -/area/ship/hangar/port) -"Om" = ( -/obj/machinery/door/airlock/command{ - dir = 4; - name = "Bridge"; - req_access_txt = "19" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/solgovgold/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/solgovgold/filled/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"On" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Ou" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_y = 2 - }, -/obj/item/pen/blue{ - name = "science pen" - }, -/obj/item/clipboard{ - pixel_x = 7; - pixel_y = 3 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"Ox" = ( -/obj/structure/closet/emcloset/wall/directional/south, -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"OD" = ( -/obj/effect/turf_decal/trimline/opaque/purple/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"OK" = ( -/obj/structure/sign/clip, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering/engine) -"OL" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/line{ - dir = 8 - }, -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/obj/machinery/light_switch{ - pixel_x = -8; - pixel_y = 22 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"OM" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 4; - id = "obendo" - }, -/obj/machinery/door/airlock/engineering{ - dir = 4; - req_access = list(10) - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"OP" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/science) -"OR" = ( -/obj/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{ - dir = 6 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"OS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/decal/cleanable/oil{ - icon_state = "streak5" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"OT" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Input to Mech Refill" - }, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"OV" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Pc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/structure/table, -/obj/machinery/firealarm/directional/south, -/obj/item/flashlight/lamp{ - pixel_x = -7; - pixel_y = 4 - }, -/obj/item/storage/fancy/donut_box{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"Pe" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/camera/autoname{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Pj" = ( -/obj/structure/curtain/cloth, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/crew) -"Pp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/wood, -/area/ship/crew) -"Pq" = ( -/obj/machinery/atmospherics/components/binary/valve/digital/layer4, -/obj/machinery/atmospherics/components/binary/valve/digital/layer2, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Pv" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Px" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/airlock{ - name = "Rec Room" - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew) -"PA" = ( -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/crew/toilet) -"PC" = ( -/obj/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/components/trinary/mixer/airmix{ - dir = 4; - piping_layer = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"PD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"PG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/hole/right{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"PJ" = ( -/obj/structure/sign/clip, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering/atmospherics) -"PL" = ( -/obj/effect/decal/cleanable/ash, -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/structure/table, -/obj/item/wrench/crescent, -/obj/item/stack/sheet/mineral/plasma/twenty, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"PN" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew/toilet) -"PO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/atmospherics/pipe/manifold/supply/visible/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"PT" = ( -/obj/machinery/door/airlock{ - dir = 4; - id_tag = "obt" - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/toilet) -"PY" = ( -/obj/structure/closet/secure_closet/security{ - populate = 0 - }, -/obj/item/reagent_containers/spray/pepper, -/obj/item/clothing/mask/gas/sechailer/balaclava, -/obj/item/clothing/under/clip/minutemen, -/obj/item/clothing/head/helmet/bulletproof/x11/clip, -/obj/item/storage/belt/military/clip, -/obj/item/restraints/handcuffs, -/obj/item/ammo_box/magazine/co9mm/rubber, -/obj/item/ammo_box/magazine/co9mm/rubber, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/item/clothing/suit/armor/vest/bulletproof, -/turf/open/floor/plasteel/tech/grid, -/area/ship/security/armory) -"PZ" = ( -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/crew/dorm) -"Qa" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/coal/ten, -/obj/item/stack/sheet/mineral/coal/ten, -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/item/clothing/shoes/cookflops, -/obj/item/clothing/shoes/cookflops, -/obj/item/clothing/shoes/cookflops, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 9 - }, -/obj/item/clothing/under/shorts/cookjorts, -/obj/item/clothing/under/shorts/cookjorts, -/obj/item/clothing/under/shorts/cookjorts, -/turf/open/floor/pod/dark, -/area/ship/cargo) -"Qg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/effect/turf_decal/corner/transparent/purple/diagonal, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"Qj" = ( -/obj/structure/sign/departments/security{ - pixel_x = -28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Qm" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/firealarm/directional/west, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"Qq" = ( -/obj/structure/bed, -/obj/item/bedsheet/red, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Qv" = ( -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"Qy" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/pilot, -/obj/item/clothing/head/helmet/space/pilot/random, -/obj/item/tank/internals/oxygen, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"QF" = ( -/obj/structure/table, -/obj/item/clipboard{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/clipboard{ - pixel_x = -6 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 6 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"QG" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/door/airlock/external, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"QK" = ( -/obj/structure/rack, -/obj/item/mecha_parts/mecha_equipment/conversion_kit/ripley/clip, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"QN" = ( -/obj/machinery/holopad/secure, -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"QO" = ( -/obj/machinery/mecha_part_fabricator, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"QR" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"QV" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"Ra" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Re" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Rf" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/easel, -/obj/item/canvas/twentythreeXtwentythree, -/obj/structure/sign/painting/library{ - pixel_y = 28 - }, -/turf/open/floor/carpet, -/area/ship/hallway/central) -"Rg" = ( -/obj/machinery/autolathe, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"Rj" = ( -/obj/effect/turf_decal/trimline/opaque/purple/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/warning{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/airlock/research{ - dir = 4; - name = "Breakroom" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"Rk" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/science/ai_chamber) -"Rl" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Rm" = ( -/obj/effect/decal/cleanable/robot_debris/old, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Rq" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/vending/cola/space_up, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew) -"Ru" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/decal/cleanable/glass, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Rx" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/engineering, -/turf/open/floor/wood, -/area/ship/hallway/central) -"RG" = ( -/obj/item/paper/pamphlet/violent_video_games, -/obj/machinery/computer/arcade/orion_trail{ - dir = 8 - }, -/obj/item/stack/arcadeticket, -/obj/item/stack/arcadeticket, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/steeldecal/steel_decals_central7{ - pixel_y = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"RI" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"RP" = ( -/obj/machinery/computer/cryopod/directional/south, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/dorm) -"RQ" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"RY" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Sb" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"Sc" = ( -/obj/machinery/porta_turret/ship{ - dir = 6 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) -"Sd" = ( -/obj/effect/decal/cleanable/oil/streak, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/opaque/orange/filled/warning, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"Sf" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "obmine12"; - name = "Bay Doors"; - pixel_x = -7; - pixel_y = 25 - }, -/obj/machinery/button/shieldwallgen{ - id = "obhang22"; - name = "Air Shield Switch"; - pixel_x = 5; - pixel_y = 25 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hangar/port) -"Sk" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Sm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/science) -"Sw" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"Sy" = ( -/obj/machinery/door/poddoor/preopen{ - id = "obhangarent2" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"SE" = ( -/obj/effect/turf_decal/trimline/opaque/purple/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/warning{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/airlock/research{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"SI" = ( -/obj/machinery/holopad/secure, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"SM" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 4 - }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -22; - pixel_y = -12 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"SN" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"SR" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/corner_techfloor_grid, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"SU" = ( -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"SW" = ( -/obj/structure/table/reinforced, -/obj/item/radio/intercom/directional/north, -/obj/item/reagent_containers/glass/maunamug{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"SY" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 2; - pixel_y = -21 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Tb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/machinery/holopad/secure, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"Tc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer5{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"Tg" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/crew/office) -"Th" = ( -/obj/structure/guncase, -/obj/item/gun/ballistic/automatic/pistol/commander, -/obj/item/gun/ballistic/automatic/pistol/commander, -/obj/item/gun/ballistic/automatic/smg/cm5{ - spawnwithmagazine = 0 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"Ti" = ( -/obj/structure/table/chem, -/obj/structure/sink/chem, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"Tk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Tn" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = 12 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Ts" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/wood/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/light/small/directional/south, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/ship/crew) -"Tx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"Ty" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/canteen) -"TG" = ( -/obj/machinery/holopad/secure, -/obj/effect/turf_decal/box, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/science/ai_chamber) -"TH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"TL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/structure/chair/plastic{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"TQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"TR" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 4; - layer = 3.1 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"TT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"TW" = ( -/obj/machinery/camera/autoname{ - dir = 1 - }, -/obj/structure/sign/poster/clip/random{ - pixel_x = 28 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"TY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"Uf" = ( -/obj/machinery/camera/autoname{ - dir = 10 - }, -/obj/structure/closet/firecloset/wall/directional/south, -/obj/effect/turf_decal/techfloor, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Uh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Ut" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "obendo" - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Uw" = ( -/obj/structure/closet/firecloset/wall/directional/west, -/obj/item/storage/box/gum/happiness, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Ux" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/turf_decal/corner/transparent/purple/diagonal, -/obj/effect/turf_decal/steeldecal/steel_decals10, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"Uz" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/trimline/opaque/solgovgold/filled/warning, -/obj/effect/turf_decal/trimline/opaque/solgovgold/filled/warning{ - dir = 1 - }, -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access = list(20) - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"UA" = ( -/obj/effect/turf_decal/minutemen/middle, -/obj/item/mecha_parts/part/ripley_torso, -/turf/open/floor/plasteel/mono/dark, -/area/ship/hangar/port) -"UB" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"UC" = ( -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/airlock/security{ - dir = 4; - req_access = list(1) - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/armory) -"UD" = ( -/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"UI" = ( -/obj/structure/sign/poster/clip/random{ - pixel_y = -30 - }, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/borderfloor, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"UM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/railing{ - dir = 1; - layer = 3.1 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"UQ" = ( -/obj/structure/reagent_dispensers/beerkeg, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners, -/obj/structure/sign/departments/cargo{ - pixel_y = 32 - }, -/turf/open/floor/pod, -/area/ship/cargo) -"UR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"Va" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"Ve" = ( -/obj/structure/chair/sofa/brown/corner/directional/south, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/carpet, -/area/ship/crew) -"Vh" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_y = -32 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/camera/autoname{ - dir = 9 - }, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/pilot, -/obj/item/clothing/head/helmet/space/pilot/random, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"Vi" = ( -/obj/machinery/light/small/directional/west, -/turf/open/floor/carpet/royalblack, -/area/ship/crew/office) -"Vl" = ( -/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Vp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/item/kirbyplants/random, -/obj/machinery/button/door{ - id = "obhangarent21"; - name = "umbilical window shutters"; - pixel_x = -4; - pixel_y = 24 - }, -/obj/machinery/button/door{ - id = "obhangarent2"; - name = "pod lockdown"; - pixel_x = 9; - pixel_y = 24; - req_access = list(1) - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"VC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"VH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/item/radio/intercom/directional/east, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/carpet/nanoweave/purple, -/area/ship/science) -"VO" = ( -/obj/structure/chair/sofa/brown/right/directional/south, -/obj/machinery/light/small/directional/west, -/turf/open/floor/carpet, -/area/ship/crew) -"VP" = ( -/obj/effect/decal/cleanable/oil, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/hole/right{ - dir = 8 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"VR" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/engineering) -"VX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/steeldecal/steel_decals8, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"VZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/obj/effect/decal/cleanable/wrapping, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo) -"Wb" = ( -/obj/structure/table/wood, -/obj/item/trash/candy{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/reagent_containers/food/drinks/soda_cans/cola{ - pixel_x = -8; - pixel_y = 7 - }, -/turf/open/floor/carpet, -/area/ship/crew) -"We" = ( -/turf/template_noop, -/area/template_noop) -"Wg" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = -26; - pixel_y = -4 - }, -/obj/structure/filingcabinet/double, -/obj/machinery/light/small/directional/west{ - pixel_y = 4 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science) -"Wj" = ( -/obj/machinery/light/floor, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/traffic, -/turf/open/floor/engine, -/area/ship/external) -"Wk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "obhangarent2" - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Wn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/transparent/purple/diagonal, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 4 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"Wq" = ( -/obj/structure/sink/kitchen{ - dir = 4; - pixel_x = -16; - pixel_y = 19 - }, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/corner/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/borderfloor, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"Wr" = ( -/obj/machinery/cryopod, -/obj/effect/turf_decal/techfloor/orange{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/orange/corner, -/obj/machinery/light/small/directional/east, -/obj/structure/railing{ - dir = 1; - layer = 2.8 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/dorm) -"Wt" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/cable{ - icon_state = "0-9" - }, -/obj/machinery/power/port_gen/pacman{ - anchored = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"Ww" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Wx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Wz" = ( -/obj/machinery/door/poddoor{ - dir = 4; - id = "obengi"; - name = "Engineering Storage" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/trimline/transparent/red/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/transparent/red/filled/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) -"WF" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/pilot, -/obj/item/clothing/head/helmet/space/pilot/random, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"WP" = ( -/obj/structure/table/chem, -/obj/item/reagent_containers/food/drinks/bottle/orangejuice{ - pixel_x = 5; - pixel_y = 12 - }, -/obj/item/reagent_containers/food/drinks/bottle/limejuice{ - pixel_x = -8; - pixel_y = 15 - }, -/obj/item/reagent_containers/food/snacks/pizzaslice/pineapple{ - pixel_x = -7; - pixel_y = 2 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/science/xenobiology) -"WR" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/opaque/purple/filled/corner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"WV" = ( -/obj/machinery/porta_turret/ship{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) -"WX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ship/hallway/central) -"WY" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ - dir = 1 - }, -/obj/effect/turf_decal/minutemen/corner{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"Xd" = ( -/obj/effect/turf_decal/steeldecal/steel_decals2, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"Xe" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/ore_box, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"Xh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/decal/cleanable/oil{ - icon_state = "floor2" - }, -/obj/machinery/door/window/brigdoor{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Xi" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"Xn" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/on/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer5, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/industrial/warning{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/fore) -"Xo" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/corner_steel_grid{ - dir = 6 - }, -/turf/open/floor/pod/dark, -/area/ship/cargo) -"Xt" = ( -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"Xv" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/item/reagent_containers/food/drinks/soda_cans/cola{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/paper/crumpled, -/obj/item/pen/charcoal, -/turf/open/floor/carpet, -/area/ship/hallway/central) -"Xz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "obendo" - }, -/turf/open/floor/plasteel/stairs, -/area/ship/engineering) -"XA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"XJ" = ( -/obj/structure/filingcabinet, -/obj/item/pen/fountain, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering) -"XL" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hangar/port) -"XN" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/black/diagonal, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen) -"XO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"XR" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"XS" = ( -/obj/machinery/advanced_airlock_controller{ - pixel_y = 24 - }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"XT" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/plating, -/area/ship/storage) -"XY" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "vela_cap" - }, -/turf/open/floor/plating, -/area/ship/crew/office) -"XZ" = ( -/obj/structure/closet/crate, -/obj/item/circuitboard/machine/deep_fryer, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/effect/turf_decal/box/corners, -/obj/item/rollingpaper, -/obj/item/rollingpaper, -/obj/item/rollingpaper, -/obj/item/rollingpaper, -/obj/item/reagent_containers/food/snacks/grown/tobacco, -/obj/item/reagent_containers/food/snacks/grown/tobacco, -/obj/item/reagent_containers/food/snacks/grown/tobacco, -/obj/item/reagent_containers/food/snacks/grown/tobacco, -/turf/open/floor/pod, -/area/ship/cargo) -"Yi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"Yk" = ( -/obj/effect/turf_decal/trimline/opaque/purple/warning{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_social{ - pixel_x = -6 - }, -/obj/item/clothing/glasses/science{ - pixel_x = 2; - pixel_y = 10 - }, -/obj/item/assembly/igniter{ - pixel_x = 9; - pixel_y = -3 - }, -/obj/item/stock_parts/micro_laser{ - pixel_x = 6; - pixel_y = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"Yl" = ( -/obj/machinery/door/airlock/command{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/red/filled/warning{ - dir = 4 - }, -/obj/machinery/door/poddoor{ - dir = 4; - id = "obai2" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/science/ai_chamber) -"Yp" = ( -/obj/effect/turf_decal/industrial/stand_clear, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/engine, -/area/ship/hangar/port) -"Yr" = ( -/obj/machinery/holopad/emergency/command, -/obj/effect/turf_decal/box/white, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"Yx" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"Yz" = ( -/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"YC" = ( -/obj/item/weldingtool/largetank/empty, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"YD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/science/ai_chamber) -"YF" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ship/hangar/port) -"YH" = ( -/obj/effect/turf_decal/corner/transparent/mauve/diagonal, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"YJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 20 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/science/ai_chamber) -"YP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"YS" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/effect/turf_decal/box/corners, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"YU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/number/one, -/turf/open/floor/engine, -/area/ship/hangar/port) -"YV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/railing{ - dir = 1; - layer = 3.1 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/ship/hallway/central) -"YX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/bridge) -"YY" = ( -/obj/machinery/door/poddoor{ - dir = 4; - id = "obengi"; - name = "Engineering Storage" - }, -/obj/effect/turf_decal/trimline/transparent/red/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/transparent/red/filled/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) -"YZ" = ( -/obj/structure/chair/stool, -/obj/effect/turf_decal/trimline/transparent/green/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Za" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/obj/effect/decal/cleanable/oil{ - icon_state = "floor4" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"Zi" = ( -/obj/machinery/holopad/secure, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"Zj" = ( -/obj/structure/chair/sofa/brown/corner/directional/east, -/obj/structure/sign/poster/clip/random{ - pixel_x = -28 - }, -/turf/open/floor/carpet, -/area/ship/crew) -"Zn" = ( -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/green/filled/warning{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/airlock{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/dorm) -"Zo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/wood, -/area/ship/hallway/fore) -"Zp" = ( -/obj/machinery/porta_turret/ship{ - dir = 10 - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) -"Zt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science/xenobiology) -"Zv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 5 - }, -/turf/open/floor/wood, -/area/ship/crew) -"Zw" = ( -/obj/structure/closet/secure_closet/personal, -/obj/machinery/light/small/directional/south, -/obj/structure/sign/poster/random{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"ZQ" = ( -/obj/structure/closet/secure_closet/personal, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"ZX" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -20 - }, -/turf/open/floor/wood, -/area/ship/crew) - -(1,1,1) = {" -We -We -We -We -We -IZ -IZ -IZ -IZ -We -We -sR -We -We -OK -We -We -VR -jP -VR -jP -VR -We -We -PJ -We -We -sR -We -We -IZ -IZ -IZ -IZ -We -We -We -We -We -We -"} -(2,1,1) = {" -We -We -We -We -We -IZ -We -aM -We -We -We -Fg -qG -qG -Fg -We -VR -VR -eR -VR -eR -VR -VR -We -ek -Cj -Cj -ek -We -We -We -pW -We -IZ -We -We -We -We -We -We -"} -(3,1,1) = {" -We -We -We -We -We -IZ -sK -Fg -Fg -Fg -Fg -Fg -zf -zf -Fg -Gk -VR -kr -kF -Xd -Nx -wh -VR -ra -ek -nW -nW -ek -ek -ek -ek -ek -sK -IZ -We -We -We -We -We -We -"} -(4,1,1) = {" -We -We -We -We -We -IZ -We -Fg -jY -Lb -Qm -Fg -hx -YS -Fg -Fg -VR -XJ -uU -wH -IE -QF -VR -Jl -ek -nU -SY -ek -yv -OR -zN -gL -We -IZ -We -We -We -We -We -We -"} -(5,1,1) = {" -We -We -We -We -We -We -We -Fg -CW -TL -II -wA -sn -NU -iw -Uw -lv -LU -nV -HV -ng -Za -Ut -sA -iL -Re -Ge -NF -IJ -NC -BE -gL -We -We -We -We -We -We -We -We -"} -(6,1,1) = {" -We -We -We -We -We -We -We -Fg -Fg -Mu -TH -Nl -nq -Tx -LT -Xi -MC -tI -GA -xF -kq -dK -Xz -Rm -sr -AN -fh -wi -iD -PC -BE -gL -We -We -We -We -We -We -We -We -"} -(7,1,1) = {" -We -We -We -We -We -We -We -We -Fg -Fg -iz -Fg -NQ -Ru -qC -Bh -Ut -xN -Gx -Nm -AD -rA -VR -ld -hh -EE -aZ -pd -PO -Mw -EH -gL -We -We -We -We -We -We -We -We -"} -(8,1,1) = {" -We -We -We -We -We -We -We -We -We -Fg -Fg -Fg -qe -mC -Yi -DM -VR -an -yx -Sd -rx -lx -VR -Nf -dN -uR -AB -bZ -ek -ek -ek -ek -We -We -We -We -We -We -We -We -"} -(9,1,1) = {" -We -We -We -We -We -We -We -We -We -We -Fg -Fg -Fg -wF -Xh -NS -Fg -Fg -GV -sy -Ey -nC -nC -nC -Wz -YY -nC -nC -ek -ek -We -We -We -We -We -We -We -We -We -We -"} -(10,1,1) = {" -We -We -We -We -We -We -We -We -We -We -Fg -Fg -eS -UB -OS -bK -ab -Fg -jx -Qv -wW -nC -eV -cI -qj -bt -sa -nC -nC -We -We -We -We -We -We -We -We -We -We -We -"} -(11,1,1) = {" -We -We -IZ -IZ -IZ -IZ -IZ -IZ -IZ -We -We -Fg -VP -JB -kS -jr -hP -Fg -yt -Qv -wW -nC -Mj -eM -EJ -GF -FF -nC -We -We -IZ -IZ -IZ -IZ -IZ -IZ -IZ -We -We -We -"} -(12,1,1) = {" -We -We -IZ -We -ot -We -We -sK -We -We -We -Fg -ER -lE -df -TY -Ec -Fg -BR -HW -zV -nC -yk -nh -wB -Dy -XT -nC -We -We -We -sK -We -We -pW -We -IZ -We -We -We -"} -(13,1,1) = {" -We -We -We -We -dZ -dZ -dZ -dZ -We -We -We -Fg -Fg -HK -PL -Wt -Fg -Fg -Ae -Ae -OM -nC -jn -Eo -ac -aO -Ed -nC -We -We -We -Rk -Rk -Rk -Zp -We -We -We -IZ -We -"} -(14,1,1) = {" -We -We -dZ -dZ -dZ -Xe -Xe -dZ -dZ -We -We -Fg -Ae -Ae -Ae -Ae -Ae -lB -aE -Ae -Nh -nC -nC -nC -nC -nC -nC -nC -We -We -Rk -Rk -ko -cJ -Rk -Rk -Rk -sK -IZ -We -"} -(15,1,1) = {" -We -We -dZ -eZ -Qy -XL -kp -qT -dZ -dZ -We -We -Ae -ZQ -aQ -Zw -Ae -Sb -eI -Ae -Ja -Cd -Qq -OV -af -Th -Cd -We -We -Rk -Rk -iG -Mx -GI -TG -rs -Rk -We -IZ -We -"} -(16,1,1) = {" -We -We -zE -Mi -iE -ee -Kr -ic -gB -dZ -dZ -eQ -Ae -Dd -gx -wv -PZ -kd -Nr -Ae -lD -Cd -cw -JM -np -in -Cd -eQ -Rk -Rk -xI -BQ -gV -YJ -Jk -An -Rk -sK -IZ -We -"} -(17,1,1) = {" -Ak -Ak -dZ -vD -yL -EN -Gs -yH -HH -fi -dZ -We -Ae -cj -bH -MJ -Ae -Ae -Ae -Ae -In -Cd -Nk -fH -xC -Hk -Cd -We -Rk -Rk -Yl -Rk -Rk -Rk -mK -Rk -Rk -We -IZ -We -"} -(18,1,1) = {" -We -Wj -AC -pK -CM -ur -xz -Nq -Hy -pp -dZ -We -Ae -cj -XO -AS -SM -zl -rn -rn -TR -MF -ie -PD -xC -Cu -Cd -We -Rk -pq -YD -jm -JN -Wg -pM -zk -OP -We -We -We -"} -(19,1,1) = {" -We -hS -ta -dV -YU -hH -Aq -MU -Hy -Hb -dZ -We -Ae -xU -NV -Ha -Dw -Ae -Rf -ul -No -Cd -OL -uv -MP -Pc -Cd -We -Rk -sF -aq -Ks -JN -HY -Tb -jj -OP -OP -We -We -"} -(20,1,1) = {" -We -Wj -bX -pK -gD -bu -xz -Ww -Hy -qB -dZ -We -Ae -Ae -Zn -Ae -Ae -Ae -yd -Xv -YV -Cd -cY -qP -qd -Ju -Cd -We -Rk -Rk -Rk -Rk -Rk -lm -uc -lV -oT -OP -We -We -"} -(21,1,1) = {" -Na -Na -dZ -tY -Fy -EN -Gs -lp -zR -dZ -dZ -eQ -Ae -CO -GO -Jj -hX -Ae -fr -xc -jS -Cd -PY -Ko -rb -pA -Cd -eQ -OP -OP -qX -eN -kh -Ce -qa -jf -wa -OP -We -We -"} -(22,1,1) = {" -We -fJ -zE -Sk -Sk -uw -XR -KN -qO -dZ -We -We -Ae -Wr -Bn -RP -Ae -Ae -zX -zX -hD -Cd -Cd -UC -Cd -Cd -Cd -We -We -OP -Sw -eN -OP -MY -iP -tP -VH -OP -We -We -"} -(23,1,1) = {" -We -dZ -jB -DI -gj -gj -hf -Rl -Gl -dZ -xT -xT -Ae -Ae -hk -ni -Ae -ID -zX -RQ -HN -Dt -ys -oC -Qj -Nn -ys -GH -GH -OP -LJ -MZ -OP -OP -Rj -OP -OP -OP -kn -We -"} -(24,1,1) = {" -We -dZ -QO -qR -uB -Cq -Fr -xy -iV -nP -SR -SR -Ae -Ae -Ae -Ae -Ae -RG -zX -Rx -UM -Hf -ys -fD -ym -ym -cd -KC -KC -yo -WR -jF -lz -mP -El -cz -Sm -pG -lH -lR -"} -(25,1,1) = {" -We -dZ -Rg -iR -Mn -UA -tR -Ez -sb -qy -mO -mO -Wk -Pq -hw -Gh -BY -cF -WX -cF -xm -WX -BN -ED -xB -AF -sc -Au -PG -Fl -rd -oZ -OD -mR -Zi -yG -OP -XS -OP -We -"} -(26,1,1) = {" -We -dZ -CX -dx -hJ -nS -Iv -GS -YF -nP -jh -jh -Sy -ym -KO -Ar -ys -YZ -Vl -Yz -mN -UD -ys -BI -ym -ym -Gt -KC -KC -yo -Cz -vK -Nv -rB -nO -oa -tf -qk -pf -We -"} -(27,1,1) = {" -We -dZ -QK -Wx -YC -IF -RI -EX -wz -dZ -xT -xT -ys -Vp -dD -TW -ys -zC -ml -ym -DD -eq -ys -Tk -xK -yi -ys -GH -GH -io -OP -OP -OP -OP -rO -OP -OP -OP -kn -We -"} -(28,1,1) = {" -We -WV -zE -CK -oJ -QR -DL -wr -FR -dZ -We -We -ys -ys -ys -ys -cV -Np -Np -eJ -rT -Np -Np -Np -Np -Np -Np -We -We -io -qc -tQ -FC -ND -EU -HI -zr -io -We -We -"} -(29,1,1) = {" -Ak -Ak -dZ -JY -JI -cW -Gi -lp -Uf -dZ -dZ -eQ -cV -yD -BW -HO -cV -cT -Tn -us -yI -dh -vr -tk -tb -nr -Np -eQ -io -io -zL -fx -HB -Yk -SI -Gz -zF -io -We -We -"} -(30,1,1) = {" -We -Wj -Hx -Yp -EC -vz -fv -ke -Hy -pp -dZ -We -cV -rr -Pj -jI -cV -vV -dW -tu -Ty -tu -MV -XN -iO -Wq -Np -We -io -kW -YH -FJ -HB -wO -VX -Zt -CN -io -We -We -"} -(31,1,1) = {" -We -qU -Le -GD -Iz -Oe -Mv -Gg -Hy -gh -dZ -We -cV -Jo -co -wk -cV -iu -dW -tu -Ty -tu -MV -Hw -iO -KE -Np -We -io -WP -jO -Mt -HB -wO -Jp -iQ -io -io -We -We -"} -(32,1,1) = {" -We -Wj -zi -kw -zs -bA -Io -md -YF -cE -dZ -We -cV -cV -cV -nQ -cV -fz -RY -tu -Ty -tu -MV -MW -QN -UI -Np -We -io -Ti -vX -Av -HB -al -Ou -tA -io -We -We -We -"} -(33,1,1) = {" -Na -Na -dZ -Sf -ca -cW -Gi -On -Hy -uT -dZ -We -cV -Zj -rw -ww -cV -LL -Go -tu -Ty -tu -MV -Gu -yA -dc -Np -We -io -io -io -io -io -dB -dB -SE -io -We -IZ -We -"} -(34,1,1) = {" -We -We -zE -OT -Yx -JL -fj -Fx -Ox -dZ -dZ -eQ -cV -BX -pk -ZX -cV -dp -ug -tu -Ty -tu -MV -XN -lk -lu -Np -eQ -io -io -CG -bc -yj -FN -mi -Qg -io -sK -IZ -We -"} -(35,1,1) = {" -We -We -dZ -Eb -WF -Xt -lb -Vh -dZ -dZ -We -We -cV -BH -Wb -Pp -Px -mq -Ca -tu -pU -tu -Pv -XN -lk -Mc -Np -We -We -io -nw -Ux -DP -DP -Wn -CD -io -We -IZ -We -"} -(36,1,1) = {" -We -We -dZ -dZ -dZ -jD -ci -dZ -dZ -We -We -We -cV -Ve -pw -up -cV -GB -cn -sM -Nd -ip -Pe -Kq -nF -em -Np -We -We -io -io -io -bh -tx -io -io -io -sK -IZ -We -"} -(37,1,1) = {" -We -We -We -We -dZ -dZ -dZ -dZ -We -We -We -We -cV -gX -Ga -Ts -PN -PN -PN -PN -SN -xl -lK -lK -lK -lK -lK -lK -We -We -We -io -io -io -Sc -We -We -We -IZ -We -"} -(38,1,1) = {" -We -We -IZ -We -xR -We -We -sK -We -IZ -We -cV -cV -Rq -Zv -EK -PN -vO -dt -PN -cg -BC -lK -no -tW -cK -uQ -lK -We -IZ -We -sK -We -We -sK -We -IZ -We -We -We -"} -(39,1,1) = {" -We -We -IZ -IZ -IZ -IZ -IZ -IZ -IZ -IZ -We -jN -VO -qF -zJ -Ex -AO -pJ -Bu -PN -is -kZ -lK -Hc -AR -Qa -ry -lK -We -IZ -IZ -IZ -IZ -IZ -IZ -IZ -IZ -We -We -We -"} -(40,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -jN -zK -En -vM -kl -PN -ue -MB -PN -fk -CS -lK -tm -Xo -LK -Nw -lK -We -We -We -We -We -We -We -We -We -We -We -We -"} -(41,1,1) = {" -We -We -We -We -We -We -We -We -We -We -xD -xD -xD -xD -xD -sN -PN -Lx -PA -PN -Fw -Nz -lK -UQ -jb -ds -sD -lK -We -We -We -We -We -We -We -We -We -We -We -We -"} -(42,1,1) = {" -We -We -We -We -We -We -We -We -We -We -QG -ga -Xn -dF -JV -Tc -PN -PN -PT -PN -eB -VC -tO -rv -VZ -qS -Bc -lK -We -We -We -We -We -We -We -We -We -We -We -We -"} -(43,1,1) = {" -We -We -We -We -We -We -We -We -We -We -QG -tT -yr -dF -fW -UR -PN -xM -xH -PN -Va -ov -lK -pC -fl -Em -la -lK -nm -We -We -We -We -We -We -We -We -We -We -We -"} -(44,1,1) = {" -We -We -We -We -We -We -We -We -We -We -Tg -Tg -Tg -Tg -xD -sN -PN -PN -PN -PN -kg -ky -lK -XZ -Ln -yg -si -uX -Iy -We -We -We -We -We -We -We -We -We -We -We -"} -(45,1,1) = {" -We -We -We -We -We -We -We -We -We -We -Tg -Bj -Vi -rR -Tg -YP -NE -dd -ib -ho -pX -kZ -lK -Jw -Kd -hv -LS -fY -Iy -We -We -We -We -We -We -We -We -We -We -We -"} -(46,1,1) = {" -We -We -We -We -We -We -We -We -We -We -Tg -Fz -IM -TT -Dr -XA -Zo -Ai -xh -hm -lM -QV -lK -lQ -zz -uo -IV -ea -Iy -We -We -We -We -We -We -We -We -We -We -We -"} -(47,1,1) = {" -We -We -We -We -We -We -We -We -We -We -Tg -Tg -NJ -aH -Tg -Ek -Ek -Om -Ek -Ek -Ek -wZ -lK -wl -Cp -il -uq -lK -wR -We -We -We -We -We -We -We -We -We -We -We -"} -(48,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -tq -Br -le -Ek -tn -tJ -Bq -dq -IC -JH -Kk -lK -wn -lK -lK -lK -lK -We -We -We -We -We -We -We -We -We -We -We -We -"} -(49,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -tq -Iu -eT -Uz -mY -lr -Ra -Ia -Ef -EG -Uh -qY -ed -Ek -lK -lK -We -We -We -We -We -We -We -We -We -We -We -We -We -"} -(50,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -Tg -XY -Tg -Ek -SU -tc -xA -Ny -zB -wD -sV -gQ -yb -FK -Ek -We -We -We -We -We -We -We -We -We -We -We -We -We -We -"} -(51,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -We -We -Tg -Ek -fm -TQ -YX -EM -Yr -fF -CF -nA -BB -Ab -Ek -We -We -We -We -We -We -We -We -We -We -We -We -We -We -"} -(52,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -We -We -sK -Ek -Ek -SW -Cw -Ht -kv -WY -zy -Ih -Ek -Ek -Ek -We -We -We -We -We -We -We -We -We -We -We -We -We -We -"} -(53,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -We -We -sK -We -Ek -CI -yn -hR -Ek -qJ -LB -mW -Ek -We -sK -We -We -We -We -We -We -We -We -We -We -We -We -We -We -"} -(54,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -We -We -sK -We -Ek -mS -mS -mS -Ek -mS -mS -mS -Ek -We -sK -We -We -We -We -We -We -We -We -We -We -We -We -We -We -"} -(55,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -IZ -IZ -IZ -We -pe -We -We -We -am -We -We -We -vS -We -IZ -IZ -IZ -We -We -We -We -We -We -We -We -We -We -We -We -"} -(56,1,1) = {" -We -We -We -We -We -We -We -We -We -We -We -We -We -IZ -IZ -IZ -IZ -IZ -IZ -IZ -IZ -IZ -IZ -IZ -IZ -IZ -We -We -We -We -We -We -We -We -We -We -We -We -We -We -"} diff --git a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm index 6fef103cab50..b723b020aa36 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm @@ -47,12 +47,13 @@ /obj/machinery/atmospherics/components/binary/dp_vent_pump/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/closet/emcloset/wall/directional/west, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "ar" = ( -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 - }, /turf/open/floor/plasteel, /area/ship/cargo) "au" = ( @@ -67,6 +68,9 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, +/obj/machinery/door/window/westright{ + name = "Processor Access Door" + }, /turf/open/floor/plating, /area/ship/cargo) "ax" = ( @@ -111,7 +115,8 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "aI" = ( /obj/structure/railing, @@ -119,6 +124,7 @@ /obj/structure/chair/office{ dir = 4 }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, /turf/open/floor/plasteel, /area/ship/cargo) "aK" = ( @@ -143,20 +149,19 @@ /obj/machinery/door/airlock/external, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "aP" = ( /obj/machinery/door/airlock/public/glass{ name = "Port Hallway" }, -/obj/effect/turf_decal/corner/opaque/blue/border{ - dir = 8 - }, /obj/machinery/door/firedoor/border_only{ dir = 1 }, /obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "aQ" = ( /obj/machinery/conveyor{ @@ -173,16 +178,14 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, /area/ship/hallway/port) "aV" = ( /obj/machinery/conveyor{ @@ -193,18 +196,29 @@ /area/ship/cargo) "aW" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/corner/opaque/nsorange{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/nsorange{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 +/obj/structure/closet/wardrobe/cargotech{ + populate = 0 }, -/obj/structure/closet/wardrobe/robotics_black, -/obj/item/clothing/under/rank/rnd/roboticist, -/obj/item/clothing/under/rank/rnd/roboticist/skirt, -/obj/item/clothing/under/rank/rnd/roboticist, -/obj/item/clothing/under/rank/rnd/roboticist/skirt, -/obj/structure/extinguisher_cabinet/directional/north, +/obj/item/clothing/suit/hooded/wintercoat/cargo, +/obj/item/clothing/under/nanotrasen/supply, +/obj/item/clothing/under/nanotrasen/supply, +/obj/item/clothing/under/nanotrasen/supply, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/gloves/fingerless, +/obj/item/clothing/gloves/fingerless, +/obj/item/clothing/gloves/fingerless, +/obj/item/clothing/head/nanotrasen/cap/supply, +/obj/item/clothing/head/nanotrasen/cap/supply, +/obj/item/clothing/head/nanotrasen/cap/supply, /turf/open/floor/plasteel, /area/ship/crew) "aZ" = ( @@ -213,9 +227,12 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk/dark, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/turf/open/floor/plating, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "bb" = ( /obj/structure/cable{ @@ -240,7 +257,7 @@ /obj/effect/spawner/lootdrop/ration, /obj/effect/spawner/lootdrop/ration, /obj/effect/spawner/lootdrop/ration, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) "bd" = ( /obj/effect/turf_decal/weather, @@ -285,7 +302,11 @@ dir = 1 }, /obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "bx" = ( /obj/effect/spawner/structure/window/shuttle, @@ -348,13 +369,15 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "bK" = ( /obj/structure/closet/crate, /obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) "bN" = ( /obj/machinery/conveyor/inverted{ @@ -403,23 +426,28 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/bridge) -"bZ" = ( -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"bZ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, /obj/structure/chair/comfy/shuttle{ dir = 4 }, +/obj/effect/turf_decal/corner/opaque/nsorange{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "ce" = ( -/obj/structure/sign/nanotrasen, +/obj/structure/sign/nanotrasen/ns, /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/bridge) "cg" = ( @@ -433,8 +461,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 1 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/bridge) "ch" = ( /obj/machinery/holopad/emergency/command, @@ -448,10 +481,10 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue/border{ +/obj/effect/turf_decal/corner/opaque/nsorange/border{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "cl" = ( /obj/machinery/power/smes/engineering{ @@ -476,11 +509,15 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/bridge) "cp" = ( -/obj/effect/turf_decal/corner/opaque/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, @@ -488,6 +525,7 @@ dir = 4; name = "Helm" }, +/obj/effect/turf_decal/corner/opaque/nsorange, /turf/open/floor/plasteel/dark, /area/ship/bridge) "cs" = ( @@ -520,15 +558,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 1 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/bridge) -"cv" = ( -/obj/effect/turf_decal/corner/opaque/blue/border{ +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) +/turf/open/floor/plasteel/tech, +/area/ship/bridge) "cz" = ( /obj/structure/cable{ icon_state = "1-2" @@ -540,8 +577,13 @@ /obj/machinery/atmospherics/pipe/manifold/orange/visible{ dir = 4 }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "cB" = ( /obj/effect/turf_decal/industrial/warning{ @@ -578,8 +620,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/structure/catwalk/over, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "cF" = ( /obj/structure/cable{ @@ -589,11 +636,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/obj/structure/catwalk/over/plated_catwalk, /obj/structure/chair{ dir = 1 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "cG" = ( /turf/closed/wall/mineral/titanium, @@ -622,8 +671,13 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/catwalk/over, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "cP" = ( /obj/structure/sign/departments/engineering, @@ -644,7 +698,11 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/crew) "cS" = ( /obj/effect/spawner/structure/window/shuttle, @@ -654,9 +712,6 @@ /turf/open/floor/plating, /area/ship/cargo) "cT" = ( -/obj/effect/turf_decal/corner/opaque/blue/border{ - dir = 8 - }, /obj/machinery/door/airlock/public/glass{ name = "Crew Quarters" }, @@ -664,7 +719,8 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/crew) "cU" = ( /obj/machinery/portable_atmospherics/pump, @@ -698,10 +754,7 @@ amount = 10 }, /obj/item/stack/sheet/plasteel/twenty, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/borderfloor{ dir = 1 }, /turf/open/floor/plasteel, @@ -737,8 +790,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 9 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "de" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ @@ -769,8 +824,11 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/crew) "dl" = ( /obj/structure/cable{ @@ -782,11 +840,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/bar, -/obj/effect/turf_decal/corner/opaque/bar{ +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white/corner{ dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/patterned/grid, /area/ship/crew) "dm" = ( /obj/structure/cable{ @@ -797,11 +855,8 @@ }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/bar, -/obj/effect/turf_decal/corner/opaque/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, /area/ship/crew) "do" = ( /obj/structure/cable{ @@ -811,11 +866,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/catwalk/over/plated_catwalk, /obj/structure/cable{ icon_state = "2-8" }, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/medical) "dp" = ( /obj/structure/cable{ @@ -827,8 +885,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/medical) "dq" = ( /obj/structure/cable{ @@ -840,12 +901,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/bar, -/obj/effect/turf_decal/corner/opaque/bar{ +/obj/structure/closet/emcloset/wall/directional/north, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ dir = 1 }, -/obj/structure/closet/emcloset/wall/directional/north, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/patterned/grid, /area/ship/crew) "dr" = ( /obj/structure/cable{ @@ -855,8 +916,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/medical) "ds" = ( /obj/structure/cable{ @@ -868,11 +932,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/catwalk/over/plated_catwalk/white, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, +/obj/effect/turf_decal/nanotrasen/ns/top{ + dir = 4 + }, +/turf/open/floor/plasteel/white, /area/ship/science/robotics) "du" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -881,11 +947,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/catwalk/over/plated_catwalk/white, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, +/obj/effect/turf_decal/nanotrasen/ns/center{ + dir = 4 + }, +/turf/open/floor/plasteel/white, /area/ship/science/robotics) "dv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -956,7 +1024,8 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "dG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ @@ -969,15 +1038,15 @@ /turf/open/floor/plasteel, /area/ship/crew) "dI" = ( -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue, /obj/structure/table, /obj/item/paper_bin, -/obj/item/folder/blue, +/obj/item/folder/yellow, /obj/item/pen/fountain/captain, -/obj/item/stamp/captain, +/obj/item/stamp/qm, +/obj/effect/turf_decal/corner/opaque/nsorange, +/obj/effect/turf_decal/corner/opaque/nsorange{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "dK" = ( @@ -1056,7 +1125,7 @@ "ez" = ( /obj/machinery/airalarm/directional/north, /obj/structure/bed, -/obj/item/bedsheet/captain, +/obj/item/bedsheet/qm, /obj/structure/curtain/bounty, /obj/machinery/light_switch{ dir = 4; @@ -1069,9 +1138,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, @@ -1079,29 +1145,30 @@ dir = 1 }, /obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "ff" = ( -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/structure/closet/secure_closet{ - icon_state = "cap"; - name = "captain's locker"; +/obj/structure/closet/secure_closet/quartermaster{ + populate = 0; req_access = list(20) }, -/obj/item/clothing/suit/hooded/wintercoat/captain, -/obj/item/clothing/under/rank/command/captain/nt, -/obj/item/clothing/under/rank/command/captain/nt/skirt, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/head/caphat/nt, +/obj/item/clothing/suit/hooded/wintercoat/cargo, +/obj/item/clothing/under/nanotrasen/supply/qm, +/obj/item/clothing/shoes/sneakers/brown, +/obj/item/clothing/head/nanotrasen/cap/supply, /obj/item/stock_parts/cell/gun, /obj/item/gun/energy/laser, -/obj/item/megaphone/command, +/obj/item/megaphone/cargo, /obj/machinery/light/small/directional/east, -/obj/item/clothing/head/caphat/parade, -/obj/item/clothing/suit/armor/vest/capcarapace, +/obj/item/clothing/suit/armor/nanotrasen/slim, +/obj/effect/turf_decal/corner/opaque/nsorange, +/obj/effect/turf_decal/corner/opaque/nsorange{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "fy" = ( @@ -1123,7 +1190,10 @@ }, /obj/structure/table, /obj/item/toy/cards/deck, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "fC" = ( /obj/machinery/atmospherics/pipe/simple/orange, @@ -1145,9 +1215,9 @@ /area/ship/medical) "gv" = ( /obj/docking_port/stationary{ - width = 30; + dwidth = 15; height = 15; - dwidth = 15 + width = 30 }, /turf/template_noop, /area/template_noop) @@ -1187,16 +1257,19 @@ pixel_y = 1 }, /obj/machinery/light/small/built/directional/east, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 5 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "hd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, -/obj/effect/turf_decal/corner/opaque/blue/border{ +/obj/effect/turf_decal/corner/opaque/nsorange/border{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "hi" = ( /obj/structure/table, @@ -1218,10 +1291,23 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 1 }, -/obj/structure/catwalk/over/plated_catwalk, /obj/machinery/firealarm/directional/east, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = 11 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) +"iB" = ( +/obj/effect/turf_decal/nanotrasen/ns/center_left{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/science/robotics) "jk" = ( /obj/structure/railing, /obj/effect/turf_decal/siding/white, @@ -1237,8 +1323,15 @@ pixel_x = -7; pixel_y = 4 }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, /turf/open/floor/plasteel, /area/ship/cargo) +"jr" = ( +/obj/effect/turf_decal/nanotrasen/ns/bottom_right{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/science/robotics) "jt" = ( /obj/structure/cable{ icon_state = "1-2" @@ -1250,8 +1343,11 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 10 }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow/corner, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "jw" = ( /obj/structure/extinguisher_cabinet/directional/east, @@ -1266,8 +1362,13 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 9 }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "jH" = ( /obj/machinery/porta_turret/ship/weak{ @@ -1287,8 +1388,11 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "lc" = ( /obj/effect/turf_decal/corner/opaque/neutral, @@ -1305,6 +1409,9 @@ icon_state = "1-2" }, /obj/item/folder/white, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ship/medical) "lp" = ( @@ -1319,13 +1426,10 @@ /turf/open/floor/plating, /area/ship/bridge) "ls" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/turf_decal/corner/opaque/blue/border{ +/obj/effect/turf_decal/corner/opaque/nsorange/border{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "lx" = ( /obj/machinery/rnd/production/circuit_imprinter/department/science, @@ -1335,7 +1439,6 @@ /turf/open/floor/plasteel/white, /area/ship/science/robotics) "mf" = ( -/obj/effect/turf_decal/borderfloor, /obj/machinery/door/airlock{ name = "Janitorial Closet" }, @@ -1343,15 +1446,22 @@ dir = 1 }, /obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/tech/grid, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) +"mr" = ( +/obj/effect/turf_decal/nanotrasen/ns/bottom_left{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/science/robotics) "mt" = ( /obj/structure/sign/departments/medbay/alt, /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/medical) "mw" = ( /obj/structure/bed, -/obj/item/bedsheet/blue, +/obj/item/bedsheet/brown, /obj/structure/window/reinforced/spawner/north, /obj/structure/curtain/bounty, /obj/effect/turf_decal/corner/opaque/bar{ @@ -1395,17 +1505,14 @@ /obj/item/clothing/glasses/hud/health{ pixel_y = -4 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, /obj/machinery/light_switch{ dir = 4; pixel_x = -24; pixel_y = -10 }, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ship/medical) "nq" = ( @@ -1426,17 +1533,19 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "oq" = ( /obj/machinery/light/small/built/directional/south, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, @@ -1444,7 +1553,11 @@ dir = 4 }, /obj/structure/closet/firecloset/wall/directional/south, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "oz" = ( /obj/effect/turf_decal/industrial/warning{ @@ -1464,7 +1577,7 @@ "oI" = ( /obj/machinery/airalarm/directional/south, /obj/structure/bed, -/obj/item/bedsheet/blue, +/obj/item/bedsheet/brown, /obj/structure/curtain/bounty, /obj/effect/turf_decal/corner/opaque/bar{ dir = 1 @@ -1477,15 +1590,28 @@ "oN" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/rack, -/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/structure/closet/wardrobe/robotics_black{ + populate = 0 + }, +/obj/item/clothing/under/nanotrasen/science/robotics, +/obj/item/clothing/under/nanotrasen/science/robotics, +/obj/item/clothing/glasses/hud/diagnostic, +/obj/item/clothing/glasses/hud/diagnostic, +/obj/item/clothing/suit/toggle/labcoat/nanotrasen, +/obj/item/clothing/suit/toggle/labcoat/nanotrasen, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/gloves/fingerless, +/obj/item/clothing/gloves/fingerless, +/obj/item/clothing/head/soft/black, +/obj/item/clothing/head/soft/black, /obj/item/clothing/suit/hooded/wintercoat/science{ pixel_y = 4 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 +/obj/item/clothing/suit/hooded/wintercoat/science{ + pixel_y = 4 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/borderfloor{ dir = 1 }, /turf/open/floor/plasteel, @@ -1522,7 +1648,8 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/medical) "qe" = ( /obj/effect/turf_decal/weather, @@ -1542,23 +1669,20 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue/bordercorner, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "qY" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 - }, /obj/machinery/button/door{ dir = 4; id = "Mining Bay Door"; @@ -1587,11 +1711,12 @@ /obj/item/pickaxe, /obj/item/mining_scanner, /obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) "rC" = ( /obj/machinery/door/airlock/external, -/turf/open/floor/plating, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "rW" = ( /obj/machinery/atmospherics/components/binary/pump{ @@ -1615,8 +1740,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/siding/yellow/corner, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "sv" = ( /obj/effect/turf_decal/industrial/outline/yellow, @@ -1644,7 +1772,8 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/crew) "tf" = ( /obj/structure/sign/warning/vacuum/external{ @@ -1669,8 +1798,13 @@ icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/structure/catwalk/over, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "tU" = ( /obj/effect/turf_decal/industrial/warning{ @@ -1721,17 +1855,17 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 1 }, /obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/corner/opaque/nsorange{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/nsorange{ + dir = 4 + }, /turf/open/floor/plasteel, /area/ship/crew) "vG" = ( @@ -1768,13 +1902,18 @@ /obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/structure/catwalk/over, /obj/machinery/light_switch{ - pixel_x = 19; dir = 8; + pixel_x = 19; pixel_y = 11 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "ww" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -1794,11 +1933,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 1 }, -/obj/structure/catwalk/over/plated_catwalk, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "xz" = ( /obj/machinery/door/airlock/mining/glass{ @@ -1814,16 +1955,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "xA" = ( /turf/open/floor/plasteel/dark, @@ -1870,6 +2009,9 @@ pixel_x = -24; pixel_y = -10 }, +/obj/effect/turf_decal/nanotrasen/ns/top_right{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/ship/science/robotics) "yy" = ( @@ -1892,7 +2034,8 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/cargo) "zJ" = ( /obj/item/toy/talking/AI, @@ -1938,10 +2081,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/bar, -/obj/effect/turf_decal/corner/opaque/bar{ - dir = 1 - }, /obj/machinery/light/small/built/directional/north, /obj/structure/cable{ icon_state = "2-8" @@ -1950,7 +2089,11 @@ pixel_x = 10; pixel_y = 24 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/crew) "AM" = ( /obj/structure/table, @@ -1985,8 +2128,18 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) +"AX" = ( +/obj/effect/turf_decal/corner/opaque/nsorange/border{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/hallway/central) "Bh" = ( /obj/machinery/mecha_part_fabricator, /obj/machinery/airalarm/directional/north, @@ -2016,8 +2169,10 @@ /obj/machinery/airalarm/directional/east, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "BE" = ( /obj/structure/cable{ @@ -2116,13 +2271,13 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, +/obj/effect/turf_decal/corner/opaque/nsorange, +/obj/effect/turf_decal/corner/opaque/nsorange{ + dir = 8 + }, /turf/open/floor/plasteel, /area/ship/hallway/port) "DZ" = ( @@ -2180,9 +2335,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/catwalk/over/plated_catwalk/dark, /obj/machinery/light/small/directional/north, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "Hi" = ( /obj/structure/ore_box, @@ -2200,19 +2358,21 @@ dir = 5 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/catwalk/over, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 10 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "ID" = ( -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 - }, /obj/machinery/modular_computer/console/preset/command, /obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/corner/opaque/nsorange, +/obj/effect/turf_decal/corner/opaque/nsorange{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "IM" = ( @@ -2235,6 +2395,29 @@ }, /turf/open/floor/plating, /area/ship/engineering) +"Ja" = ( +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Engineering" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/dark, +/area/ship/engineering) "Je" = ( /obj/machinery/conveyor{ dir = 1; @@ -2247,7 +2430,6 @@ /turf/open/floor/plating, /area/ship/cargo) "Jf" = ( -/obj/effect/turf_decal/borderfloor, /obj/machinery/door/airlock{ name = "Restroom" }, @@ -2255,16 +2437,13 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/turf/open/floor/plasteel/tech/grid, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Jj" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 @@ -2273,6 +2452,10 @@ dir = 1 }, /obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/corner/opaque/nsorange{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/nsorange, /turf/open/floor/plasteel, /area/ship/hallway/port) "Jo" = ( @@ -2311,6 +2494,9 @@ /obj/effect/turf_decal/corner/opaque/neutral{ dir = 8 }, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ship/medical) "KV" = ( @@ -2344,16 +2530,16 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "Lv" = ( -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/computer/cargo/express/retro{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/nsorange, +/obj/effect/turf_decal/corner/opaque/nsorange{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/corner/opaque/nsorange{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/computer/cargo/express/retro{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "Ly" = ( @@ -2363,10 +2549,7 @@ /obj/machinery/power/apc/auto_name/directional/west, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/railing/corner, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 - }, -/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, /turf/open/floor/plasteel, /area/ship/cargo) "Mc" = ( @@ -2394,7 +2577,7 @@ /obj/item/reagent_containers/food/snacks/canned/beans, /obj/item/reagent_containers/food/snacks/canned/beans, /obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) "Ni" = ( /obj/structure/cable{ @@ -2416,15 +2599,13 @@ /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/science/robotics) "NF" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, @@ -2434,7 +2615,11 @@ /obj/machinery/airalarm/directional/north, /obj/machinery/camera, /obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "NL" = ( /obj/structure/sign/warning/electricshock{ @@ -2462,6 +2647,22 @@ }, /turf/open/floor/plasteel/dark, /area/ship/science/robotics) +"Qi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/engineering) "Qx" = ( /obj/structure/window/reinforced{ dir = 8 @@ -2493,7 +2694,10 @@ dir = 8 }, /obj/machinery/light/small/directional/east, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/yellow{ + dir = 6 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "QR" = ( /obj/structure/cable{ @@ -2522,9 +2726,6 @@ /obj/effect/turf_decal/industrial/loading{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 - }, /obj/machinery/mineral/processing_unit_console{ machinedir = 6; pixel_y = 26 @@ -2537,14 +2738,14 @@ /turf/open/floor/plasteel, /area/ship/cargo) "SE" = ( -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/computer/helm/retro{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/corner/opaque/nsorange, +/obj/effect/turf_decal/corner/opaque/nsorange{ dir = 4 }, -/obj/machinery/computer/helm/retro{ +/obj/effect/turf_decal/corner/opaque/nsorange{ dir = 8 }, /turf/open/floor/plasteel/dark, @@ -2554,6 +2755,9 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/effect/turf_decal/nanotrasen/ns/top_left{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/ship/science/robotics) "SN" = ( @@ -2568,7 +2772,13 @@ /obj/machinery/advanced_airlock_controller{ pixel_y = -20 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "SY" = ( /obj/effect/turf_decal/weather, @@ -2581,6 +2791,9 @@ output_dir = 1 }, /obj/structure/plasticflaps/opaque, +/obj/machinery/door/window/southleft{ + name = "Processor Access Door" + }, /turf/open/floor/plating, /area/ship/cargo) "Td" = ( @@ -2589,6 +2802,9 @@ dir = 8 }, /obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, /turf/open/floor/plasteel, /area/ship/medical) "Te" = ( @@ -2603,9 +2819,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/structure/catwalk/over/plated_catwalk, /obj/structure/chair, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "TK" = ( /obj/machinery/door/poddoor{ @@ -2628,6 +2846,9 @@ /turf/open/floor/plating/airless, /area/ship/engineering) "Us" = ( +/obj/effect/turf_decal/nanotrasen/ns/center_right{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/ship/science/robotics) "Vt" = ( @@ -2686,6 +2907,11 @@ /obj/machinery/cryopod{ dir = 8 }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = 11 + }, /turf/open/floor/plasteel/white, /area/ship/crew) "Xp" = ( @@ -2760,15 +2986,9 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue/bordercorner{ - dir = 8 - }, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ icon_state = "0-8" @@ -2776,7 +2996,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "Yw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -2785,11 +3011,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/catwalk/over/plated_catwalk/white, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, +/obj/effect/turf_decal/nanotrasen/ns/bottom{ + dir = 4 + }, +/turf/open/floor/plasteel/white, /area/ship/science/robotics) "YZ" = ( /obj/machinery/porta_turret/ship/weak{ @@ -2804,9 +3032,6 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, @@ -2817,7 +3042,8 @@ pixel_x = 10; pixel_y = 24 }, -/turf/open/floor/plasteel, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, /area/ship/hallway/port) "Zl" = ( /obj/machinery/vending/boozeomat/all_access, @@ -2949,7 +3175,7 @@ bB bB ai gQ -sp +Qi sv ai aa @@ -2969,7 +3195,7 @@ BH zT bB cP -AW +Ja ai ai YZ @@ -3061,13 +3287,13 @@ ae ae Yi aP -cv -cv ls +ls +AX cj hd -cv -cv +ls +ls cT dl dG @@ -3250,7 +3476,7 @@ Mc cI Us du -Us +iB Te Mc "} @@ -3268,9 +3494,9 @@ aa aa HJ Bh -Us +jr Yw -Us +mr rl HJ "} diff --git a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm index 8c17da5f36ee..8314f17e288c 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm @@ -1467,9 +1467,8 @@ /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/cargo/port) "ph" = ( -/obj/machinery/computer/communications{ - dir = 8; - icon_state = "computer-left" +/obj/structure/frame/computer{ + dir = 8 }, /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) @@ -1934,7 +1933,7 @@ /obj/structure/railing, /obj/machinery/computer/atmos_control/incinerator{ dir = 4; - sensors = list("gecko_burn_sensor"="Combustion Chamber") + sensors = list("gecko_burn_sensor"="Combustion Chamber") }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering/engine) @@ -2853,7 +2852,7 @@ "CI" = ( /obj/machinery/computer/helm{ dir = 8; - icon_state = "computer-middle" + icon_state = "computer-left" }, /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) @@ -3394,8 +3393,10 @@ }, /obj/item/stock_parts/cell/gun, /obj/item/gun/energy/laser, -/obj/item/clothing/under/rank/command/captain/nt, -/obj/item/clothing/head/caphat/nt, +/obj/item/clothing/under/nanotrasen/captain/skirt, +/obj/item/clothing/under/nanotrasen/captain, +/obj/item/clothing/suit/armor/nanotrasen/captain, +/obj/item/clothing/head/nanotrasen/captain/peaked, /obj/item/clothing/shoes/laceup, /obj/item/clothing/glasses/sunglasses, /obj/effect/turf_decal/borderfloor{ diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index cb37458146fc..774f1d57cc40 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -1027,9 +1027,10 @@ /obj/item/storage/backpack/satchel/cap, /obj/item/storage/backpack/captain, /obj/item/clothing/shoes/laceup, -/obj/item/clothing/under/rank/command/captain/nt/skirt, -/obj/item/clothing/under/rank/command/captain/nt, -/obj/item/clothing/suit/armor/vest/capcarapace/alt, +/obj/item/clothing/under/nanotrasen/captain/skirt, +/obj/item/clothing/under/nanotrasen/captain, +/obj/item/clothing/suit/armor/nanotrasen/captain, +/obj/item/clothing/suit/armor/nanotrasen/captain/parade, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/head/caphat/nt, /obj/item/storage/belt/sabre, @@ -2333,9 +2334,8 @@ /turf/open/floor/plasteel, /area/ship/crew/cryo) "pm" = ( -/obj/machinery/computer/communications{ - dir = 8; - icon_state = "computer-right" +/obj/structure/frame/computer{ + dir = 8 }, /turf/open/floor/plasteel/tech/grid, /area/ship/bridge) @@ -3087,8 +3087,7 @@ /area/ship/bridge) "ud" = ( /obj/machinery/computer/helm{ - dir = 8; - icon_state = "computer-left" + dir = 8 }, /turf/open/floor/plasteel/tech/grid, /area/ship/bridge) @@ -5257,8 +5256,8 @@ /obj/item/storage/backpack, /obj/item/storage/backpack/satchel/leather, /obj/item/clothing/shoes/laceup, -/obj/item/clothing/under/rank/command/head_of_personnel/nt/skirt, -/obj/item/clothing/under/rank/command/head_of_personnel/nt, +/obj/item/clothing/under/nanotrasen/officer/skirt, +/obj/item/clothing/under/nanotrasen/officer, /obj/item/clothing/suit/armor/vest/hop, /obj/item/clothing/gloves/color/white, /obj/item/clothing/glasses/sunglasses, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index 7d7ef4ddf1db..93c59445ee41 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -1510,8 +1510,8 @@ pixel_y = 32 }, /obj/effect/turf_decal/siding/wood, -/obj/item/clothing/under/rank/command/head_of_personnel/nt, -/obj/item/clothing/under/rank/command/head_of_personnel/nt/skirt, +/obj/item/clothing/under/nanotrasen/officer, +/obj/item/clothing/under/nanotrasen/officer/skirt, /turf/open/floor/wood, /area/ship/crew/crewthree) "lg" = ( @@ -2693,7 +2693,7 @@ /turf/open/floor/wood, /area/ship/hallway/central) "uY" = ( -/obj/machinery/computer/communications{ +/obj/structure/frame/computer{ dir = 8 }, /obj/effect/turf_decal/corner/opaque/ntblue/half{ @@ -2868,7 +2868,7 @@ pixel_x = 4; pixel_y = 8 }, -/obj/item/coin/adamantine{ +/obj/item/coin/hellstone{ pixel_x = -12; pixel_y = -3 }, @@ -5490,15 +5490,16 @@ /obj/item/storage/belt/sabre, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/suit/armor/vest/capcarapace, -/obj/item/clothing/under/rank/command/captain/parade, /obj/item/clothing/shoes/laceup, /obj/item/door_remote/captain, -/obj/item/clothing/suit/armor/vest/capcarapace/alt, /obj/item/clothing/gloves/color/captain/nt, -/obj/item/clothing/under/rank/command/captain/nt/skirt, -/obj/item/clothing/under/rank/command/captain/nt, -/obj/item/clothing/head/caphat/parade, -/obj/item/clothing/head/caphat/nt, +/obj/item/clothing/suit/armor/nanotrasen/captain, +/obj/item/clothing/suit/armor/nanotrasen/captain/parade, +/obj/item/clothing/gloves/color/captain/nt, +/obj/item/clothing/under/nanotrasen/captain/skirt, +/obj/item/clothing/under/nanotrasen/captain, +/obj/item/clothing/head/nanotrasen/captain/peaked, +/obj/item/clothing/head/nanotrasen/captain, /turf/open/floor/wood, /area/ship/crew/crewtwo) "UN" = ( diff --git a/_maps/shuttles/pirate/pirate_ember.dmm b/_maps/shuttles/pirate/pirate_ember.dmm deleted file mode 100644 index 6173f14db95b..000000000000 --- a/_maps/shuttles/pirate/pirate_ember.dmm +++ /dev/null @@ -1,13021 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ad" = ( -/turf/closed/wall/r_wall, -/area/ship/bridge) -"af" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/closet/secure_closet{ - icon_state = "cap"; - name = "\proper captain's locker"; - req_access_txt = "20" - }, -/obj/item/clothing/under/rank/security/officer/frontier/admiral, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/head/beret/sec/frontier/officer, -/obj/item/clothing/accessory/holster/detective, -/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch, -/obj/item/clothing/suit/armor/frontier, -/obj/item/clothing/shoes/cowboy, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "pirate_cutter_escape"; - name = "Escape Shutters"; - pixel_x = 7; - pixel_y = 25 - }, -/turf/open/floor/carpet/green, -/area/ship/crew/office) -"ah" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/machinery/vending/tool, -/obj/effect/decal/cleanable/wrapping{ - pixel_y = -4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"al" = ( -/obj/structure/railing{ - dir = 4; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 6 - }, -/obj/effect/turf_decal/steeldecal/steel_decals3{ - dir = 1; - pixel_x = -16 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/engineering/electrical) -"aq" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/rods, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"ar" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, -/obj/item/clothing/mask/breath, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/security/armory) -"aw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/fore) -"ax" = ( -/obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, -/area/ship/security) -"aD" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"aG" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1; - color = "#808080" - }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/security/range) -"aJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, -/area/ship/crew/office) -"aL" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"aO" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering/incinerator) -"aP" = ( -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Lockdown Shutters"; - id = "cutter_sm_lockdown" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"aQ" = ( -/obj/structure/catwalk/over/plated_catwalk, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"aR" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 5; - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters{ - id = "cutter_armoury"; - name = "Armoury Shutter"; - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"aS" = ( -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"aZ" = ( -/obj/effect/decal/cleanable/oil, -/obj/structure/closet/firecloset/wall/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"bb" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"bg" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/sign/poster/official/moth/smokey{ - pixel_y = -32 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"bh" = ( -/obj/machinery/cryopod{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew) -"bi" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"bo" = ( -/obj/effect/turf_decal/trimline/opaque/red/line{ - dir = 8 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"bq" = ( -/obj/machinery/door/window/brigdoor/northleft{ - dir = 2 - }, -/obj/item/radio/intercom/directional/west, -/obj/machinery/light_switch{ - pixel_x = -21; - dir = 4; - pixel_y = 7 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"bt" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 5 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 6 - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"bx" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 2; - color = "#808080" - }, -/obj/effect/decal/cleanable/greenglow, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/light_switch{ - pixel_x = -22; - dir = 4; - pixel_y = 8 - }, -/obj/machinery/firealarm/directional/west, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/industrial/hatch/orange, -/obj/structure/closet/crate/solarpanel_small, -/obj/structure/grille/broken, -/obj/machinery/light_switch{ - pixel_y = 22; - pixel_x = -12 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"bA" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/official/moth/supermatter{ - pixel_x = -32 - }, -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"bF" = ( -/obj/machinery/door/airlock/engineering/glass, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/communications) -"bG" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 10; - pixel_y = -20 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"bI" = ( -/obj/structure/table/wood/poker, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/item/storage/fancy/candle_box{ - pixel_x = -4 - }, -/obj/item/trash/candy{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/west, -/turf/open/floor/concrete/tiles, -/area/ship/crew) -"bS" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/smartfridge/drying_rack, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"bV" = ( -/obj/structure/frame/machine, -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/circuitboard/machine/telecomms/receiver, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/maintenance/port) -"bZ" = ( -/obj/item/reagent_containers/food/condiment/soysauce{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/condiment/mayonnaise, -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/closet/secure_closet/freezer/fridge/open, -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = 13 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/canteen/kitchen) -"cb" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood/walnut, -/area/ship/crew) -"ce" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/loading{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating, -/area/ship/cargo) -"ch" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"ck" = ( -/obj/machinery/door/airlock/grunge{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew) -"cl" = ( -/obj/structure/table/reinforced, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/melee/baseball_bat/ablative, -/obj/item/trash/energybar, -/obj/machinery/button/door{ - id = "cutter_general_lockdown"; - name = "Ship Lockdown"; - pixel_x = -7; - pixel_y = 7; - dir = 1; - req_access_txt = "20" - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"cm" = ( -/obj/machinery/vending/cola/black{ - pixel_x = 5 - }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/ship/maintenance/fore) -"cn" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/communications) -"co" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/security/range) -"cp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/rust, -/area/ship/medical) -"cr" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/effect/decal/cleanable/cobweb, -/obj/item/newspaper{ - pixel_x = 5 - }, -/obj/item/newspaper{ - pixel_x = 5; - pixel_y = 2 - }, -/obj/machinery/jukebox/boombox{ - pixel_y = 5; - pixel_x = -4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/security) -"cA" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood/walnut, -/area/ship/crew) -"cE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering"; - req_access_txt = "10"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/engineering/electrical) -"cF" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/item/reagent_containers/food/snacks/grown/wheat{ - pixel_x = 4; - pixel_y = -4 - }, -/obj/item/reagent_containers/food/snacks/grown/wheat, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 6 - }, -/obj/effect/turf_decal/weather/dirt{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/maintenance/central) -"cH" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/obj/structure/dresser, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"cQ" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals6{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"cT" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/structure/bed{ - icon_state = "dirty_mattress" - }, -/obj/structure/sign/poster/contraband/masked_men{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"dc" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"df" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/maintenance/port) -"du" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/medical) -"dv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/effect/decal/cleanable/robot_debris/old, -/obj/item/stock_parts/capacitor{ - pixel_y = -9; - pixel_x = -6 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/maintenance/fore) -"dy" = ( -/obj/structure/toilet{ - dir = 4; - pixel_x = -1; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew) -"dB" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/railing{ - dir = 8; - layer = 3.1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"dF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_general_lockdown"; - name = "Lockdown Shutters" - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"dM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"dN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"dP" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/scrubber/huge/movable, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"dX" = ( -/obj/structure/chair/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew) -"eb" = ( -/obj/structure/barricade/wooden/crude{ - layer = 3.1 - }, -/obj/machinery/door/poddoor{ - id = "pirate_cutter_escape"; - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/office) -"ed" = ( -/turf/closed/wall, -/area/ship/crew) -"eh" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_windows_general" - }, -/turf/open/floor/plating, -/area/ship/security) -"em" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central4{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"er" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/structure/table/wood, -/obj/item/flashlight/lamp{ - pixel_y = 9; - pixel_x = -7 - }, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_y = -2; - pixel_x = 9 - }, -/obj/item/phone{ - desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; - pixel_x = 8; - pixel_y = 7 - }, -/obj/item/cigbutt/cigarbutt{ - pixel_x = 2; - pixel_y = 10 - }, -/obj/item/megaphone/sec{ - name = "syndicate megaphone"; - pixel_x = -4 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood, -/area/ship/security) -"ew" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"eA" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"eE" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/loading{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"eG" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/chair, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/vomit/old, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/ship/crew/canteen) -"eQ" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/closet/secure_closet/engineering_welding{ - req_access = null; - anchored = 1 - }, -/obj/machinery/light/small, -/obj/item/seeds/cannabis{ - pixel_y = -5; - pixel_x = -5 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating/rust, -/area/ship/engineering) -"eV" = ( -/obj/structure/bookcase/random, -/turf/open/floor/concrete/reinforced, -/area/ship/crew) -"eY" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"fb" = ( -/obj/effect/turf_decal/industrial/traffic, -/obj/effect/turf_decal/industrial/traffic{ - dir = 1 - }, -/obj/item/radio/intercom/directional/south, -/obj/machinery/light_switch{ - pixel_x = -12; - dir = 1; - pixel_y = -22 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"fc" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 8 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"fd" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ - dir = 1; - piping_layer = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"fe" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"fl" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/communications) -"fm" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 10; - color = "#808080" - }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/item/stack/sheet/mineral/sandbags{ - pixel_y = 6; - pixel_x = -2 - }, -/obj/item/stack/sheet/mineral/sandbags{ - pixel_y = -1; - pixel_x = 2 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"fo" = ( -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/broken/directional/east, -/obj/machinery/light_switch{ - pixel_x = 21; - dir = 8; - pixel_y = 10 - }, -/turf/open/floor/plating/rust, -/area/ship/maintenance/central) -"ft" = ( -/obj/item/toy/plush/beeplushie{ - pixel_x = 12; - pixel_y = 8 - }, -/obj/item/toy/plush/moth{ - pixel_x = -11; - pixel_y = 6 - }, -/obj/item/toy/beach_ball, -/obj/effect/turf_decal/weather/sand{ - dir = 5 - }, -/obj/effect/turf_decal/weather/sand{ - dir = 9 - }, -/obj/item/toy/seashell{ - pixel_y = -10; - pixel_x = 11 - }, -/turf/open/floor/plating, -/area/ship/hallway/fore) -"fu" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"fv" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/airalarm/directional/north, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"fw" = ( -/turf/closed/wall/rust, -/area/ship/engineering/electrical) -"fy" = ( -/obj/structure/bed/roller, -/obj/effect/decal/cleanable/blood/old, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ship/medical) -"fz" = ( -/obj/effect/turf_decal/industrial/traffic, -/obj/effect/turf_decal/industrial/traffic{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"fB" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/reagent_dispensers/fueltank, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plating, -/area/ship/cargo) -"fC" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/security/range) -"fD" = ( -/obj/structure/chair/comfy/grey/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/pet/penguin/emperor, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"fH" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/engineering/communications) -"fL" = ( -/turf/closed/wall/r_wall, -/area/ship/security/range) -"fM" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = -8; - pixel_y = 12 - }, -/obj/item/storage/pill_bottle/epinephrine{ - pixel_x = 10; - pixel_y = 9 - }, -/obj/item/storage/pill_bottle/mannitol{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = -9; - pixel_y = 2 - }, -/obj/item/reagent_containers/glass/bottle/dexalin{ - pixel_x = 2; - pixel_y = 8 - }, -/obj/item/reagent_containers/glass/bottle/antitoxin{ - pixel_x = -1; - pixel_y = 4 - }, -/obj/item/reagent_containers/glass/bottle/formaldehyde{ - pixel_x = -2 - }, -/obj/item/storage/pill_bottle/happy{ - pixel_x = 8; - pixel_y = -2 - }, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/syringe/contraband{ - pixel_y = 5; - pixel_x = -4 - }, -/obj/item/roller, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_x = -4 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/light/directional/north, -/obj/structure/sign/poster/official/moth/epi{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/medical) -"fN" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/decal/cleanable/robot_debris, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"fP" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/structure/barricade/wooden/crude, -/turf/open/floor/plating, -/area/ship/maintenance/fore) -"fQ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "cutter_cargo_shutters"; - name = "Cargo Shutters" - }, -/obj/structure/cable, -/obj/machinery/power/shieldwallgen/atmos{ - anchored = 1; - dir = 4; - id = "cutter_cargo"; - locked = 1 - }, -/turf/open/floor/plating, -/area/ship/cargo) -"fU" = ( -/obj/machinery/door/window/brigdoor/northright{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/range) -"fX" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"fY" = ( -/obj/structure/girder, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"gb" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 8 - }, -/obj/machinery/airalarm/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer4, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"gc" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/south, -/obj/item/radio/intercom/directional/south, -/obj/machinery/firealarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"gd" = ( -/obj/structure/table_frame/wood, -/obj/effect/decal/cleanable/crayon, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/wallframe/light_fixture{ - pixel_y = -14; - pixel_x = 5 - }, -/obj/structure/closet/crate/secure/loot, -/obj/item/reagent_containers/glass/bottle/hydrogen{ - pixel_x = -9 - }, -/obj/item/reagent_containers/glass/bottle/carbon, -/obj/item/reagent_containers/glass/beaker/meta{ - pixel_x = 6 - }, -/obj/item/reagent_containers/glass/bottle/ammonia{ - pixel_y = -5 - }, -/obj/item/reagent_containers/glass/bottle/carbon{ - pixel_x = -6; - pixel_y = -7 - }, -/obj/item/reagent_containers/glass/bottle/oxygen{ - pixel_x = 6; - pixel_y = -9 - }, -/obj/structure/sign/warning/explosives/alt{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/ship/maintenance/fore) -"ge" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/greenglow, -/obj/machinery/vending/snack/random, -/turf/open/floor/plating, -/area/ship/hallway/central) -"gg" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/radio/intercom/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"gi" = ( -/obj/structure/window/reinforced/spawner/east, -/obj/structure/table/reinforced, -/obj/structure/sign/poster/contraband/inteq_gec{ - pixel_y = -32 - }, -/obj/item/paper_bin{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/pen{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/item/desk_flag/trans{ - pixel_x = -11; - pixel_y = -3 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/range) -"gu" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"gA" = ( -/obj/structure/salvageable/autolathe, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/security/range) -"gC" = ( -/turf/closed/wall, -/area/ship/engineering/electrical) -"gK" = ( -/obj/effect/decal/cleanable/greenglow/filled, -/obj/effect/decal/cleanable/plasma, -/obj/structure/sign/poster/contraband/random{ - pixel_y = -32 - }, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg3" - }, -/area/ship/maintenance/port) -"gL" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, -/obj/item/clothing/mask/breath, -/obj/machinery/light_switch{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/security/armory) -"gP" = ( -/turf/closed/wall/rust, -/area/ship/security/armory) -"hl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/ship/engineering/atmospherics) -"hm" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"ho" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 10 - }, -/obj/effect/turf_decal/steeldecal/steel_decals3{ - dir = 10; - pixel_x = 16 - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/engineering/electrical) -"hp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/airlock/wood/glass{ - name = "Canteen" - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"hq" = ( -/obj/structure/closet/wall/directional/west{ - name = "Atmospheric locker" - }, -/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, -/obj/item/clothing/suit/fire/atmos, -/obj/item/clothing/head/hardhat/atmos, -/obj/item/clothing/mask/gas/atmos, -/obj/item/clothing/gloves/color/orange, -/obj/item/analyzer, -/obj/item/storage/belt/utility/atmostech, -/obj/item/clothing/glasses/meson/engine/tray, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/engineering/incinerator) -"ht" = ( -/obj/item/stock_parts/subspace/ansible{ - pixel_x = 10; - pixel_y = -9 - }, -/obj/effect/decal/cleanable/blood/old, -/obj/item/stack/cable_coil/cut/yellow, -/turf/open/floor/plating/airless{ - icon_state = "plating_rust" - }, -/area/ship/maintenance/port) -"hw" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/effect/decal/cleanable/chem_pile{ - pixel_y = -8; - pixel_x = -8 - }, -/obj/machinery/sleeper{ - desc = "An enclosed machine used to stabilize and heal patients. Despite the looks, it's just a normal sleeper painted red."; - dir = 8; - icon_state = "sleeper_s" - }, -/obj/effect/decal/cleanable/oil/streak{ - pixel_x = -11 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plating/rust, -/area/ship/medical) -"hy" = ( -/obj/structure/closet/emcloset/wall/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/wrapping, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/item/seeds/corn{ - pixel_y = -8; - pixel_x = 5 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"hF" = ( -/obj/structure/chair/stool{ - dir = 4; - pixel_x = 7; - pixel_y = 6 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken2" - }, -/area/ship/crew/office) -"hP" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 6 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"hS" = ( -/obj/effect/decal/fakelattice{ - color = "#808080" - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/decal/cleanable/oil/streak, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/engineering/atmospherics) -"hW" = ( -/turf/closed/wall/r_wall/rust, -/area/ship/crew/office) -"ic" = ( -/obj/effect/turf_decal/corner_techfloor_gray/diagonal{ - dir = 4; - layer = 2.36 - }, -/obj/item/weldingtool{ - pixel_x = -5; - pixel_y = -6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/turf/open/floor/plating/rust, -/area/ship/engineering/electrical) -"im" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 2; - color = "#808080" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"io" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/toilet{ - dir = 4; - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/plating/catwalk_floor, -/area/ship/security/armory) -"iw" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/glass{ - pixel_x = 9; - pixel_y = -11 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/carpet/red, -/area/ship/crew/canteen) -"iA" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"iB" = ( -/obj/effect/decal/cleanable/blood{ - pixel_x = 16; - pixel_y = -1 - }, -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/mob_spawn/human/botanist, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"iC" = ( -/turf/closed/wall/rust, -/area/ship/engineering/communications) -"iG" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/central) -"iJ" = ( -/obj/machinery/door/window/brigdoor/southright{ - dir = 1 - }, -/obj/effect/decal/cleanable/vomit, -/turf/open/floor/plating/rust, -/area/ship/security/armory) -"iM" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/effect/turf_decal/borderfloorblack, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/item/radio/intercom/wideband/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"iN" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/structure/rack, -/obj/item/storage/firstaid/ancient{ - pixel_x = 4 - }, -/obj/item/storage/firstaid/medical{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/hypospray/mkii/CMO/combat{ - pixel_x = -10 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/medical) -"iT" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/ship/crew/office) -"iY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"je" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/ship/hallway/central) -"jf" = ( -/obj/machinery/button/door{ - id = "cutter_bridge_lockdown"; - name = "Bridge Lockdown"; - pixel_x = -8; - pixel_y = -22; - dir = 1; - req_access_txt = "20" - }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 4 - }, -/area/ship/crew/office) -"jg" = ( -/obj/structure/table_frame/wood, -/obj/effect/decal/cleanable/blood/old, -/obj/item/kitchen/knife, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/rust, -/area/ship/maintenance/fore) -"jh" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/security) -"jk" = ( -/obj/machinery/door/window/brigdoor/southleft{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Lockdown Shutters"; - id = "cutter_sm_lockdown" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"jl" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/security) -"jn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"jq" = ( -/obj/structure/catwalk, -/obj/effect/decal/cleanable/glass{ - pixel_x = -7; - pixel_y = -16 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"jt" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/item/kitchen/knife/combat/survival{ - pixel_x = -1 - }, -/obj/item/kitchen/knife/combat/survival{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/kitchen/knife/combat/survival{ - pixel_x = -3; - pixel_y = 8 - }, -/obj/structure/sign/poster/contraband/punch_shit{ - pixel_x = 32 - }, -/obj/item/toy/plush/goatplushie{ - pixel_x = 8; - pixel_y = -9 - }, -/obj/item/trash/can{ - pixel_y = -10 - }, -/obj/item/trash/boritos{ - pixel_y = -17 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"jv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/obj/effect/spawner/lootdrop/maintenance/three, -/turf/open/floor/plating/airless{ - icon_state = "plating_rust" - }, -/area/ship/maintenance/port) -"jA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4 - }, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"jB" = ( -/obj/item/flashlight/lamp{ - pixel_x = -4; - pixel_y = 7 - }, -/obj/item/storage/fancy/cigarettes/derringer{ - pixel_x = 9; - pixel_y = 2 - }, -/obj/item/lighter/greyscale{ - pixel_x = 4 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/machinery/airalarm/directional/west, -/obj/item/trash/chips{ - pixel_x = -5; - pixel_y = 2 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"jC" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/obj/machinery/button/door{ - id = "cutter_sm_lockdown"; - name = "Lockdown Shutters"; - pixel_y = 23 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"jF" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"jG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/door/airlock/freezer{ - name = "Kitchen"; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/canteen/kitchen) -"jI" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/item/reagent_containers/food/condiment/flour{ - pixel_x = 8; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/condiment/flour{ - pixel_x = -2; - pixel_y = -4 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"jO" = ( -/obj/structure/closet/crate/secure/loot, -/obj/effect/decal/cleanable/glass{ - pixel_x = -7; - pixel_y = -16 - }, -/obj/structure/tubes, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/reagent_containers/glass/bottle/nutrient/ez{ - pixel_y = 1; - pixel_x = -2 - }, -/obj/item/reagent_containers/glass/bottle/nutrient/ez{ - pixel_y = -3; - pixel_x = -6 - }, -/obj/item/reagent_containers/glass/bottle/nutrient/l4z{ - pixel_x = -11; - pixel_y = -4 - }, -/obj/item/reagent_containers/glass/bottle/mutagen{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/reagent_containers/glass/bottle/nutrient/rh{ - pixel_y = -7 - }, -/obj/item/reagent_scanner{ - pixel_y = 5; - pixel_x = 4 - }, -/obj/item/reagent_containers/glass/bottle/facid{ - pixel_y = -8; - pixel_x = -5 - }, -/turf/open/floor/plating, -/area/ship/maintenance/fore) -"jW" = ( -/turf/closed/wall/r_wall/rust, -/area/ship/security/armory) -"jY" = ( -/turf/closed/wall/rust, -/area/ship/security) -"jZ" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-8" - }, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ship/maintenance/port) -"kb" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/closet/crate/engineering, -/obj/item/stack/sheet/metal/fifty{ - pixel_y = 2 - }, -/obj/item/stack/sheet/metal/fifty{ - pixel_y = 6; - pixel_x = 6 - }, -/obj/item/stack/sheet/mineral/plastitanium/fifty{ - pixel_x = -3 - }, -/obj/item/stack/sheet/mineral/plastitanium/twenty{ - pixel_y = 2 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"kc" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9; - color = "#808080" - }, -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "cutter_armoury"; - name = "Armoury Lockdown"; - pixel_x = -23; - pixel_y = 6; - dir = 4; - req_access_txt = "3" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"kf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/salvage_manipulator, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"kk" = ( -/turf/closed/wall, -/area/ship/cargo) -"kn" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew) -"ko" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 - }, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"kr" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/structure/sign/poster/contraband/bulldog{ - pixel_y = -32 - }, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/tech/grid, -/area/ship/security/armory) -"kt" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Office"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"ku" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew) -"kx" = ( -/obj/machinery/cryopod{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/item/radio/intercom/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew) -"ky" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/security) -"kC" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/contraband/eoehoma{ - pixel_y = 32; - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"kD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on{ - dir = 4 - }, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"kG" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/simple/brown/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/ship/engineering/incinerator) -"kK" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"kM" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/south, -/obj/item/storage/backpack/duffelbag{ - pixel_y = -3 - }, -/obj/item/storage/backpack/duffelbag{ - pixel_y = -1; - pixel_x = 4 - }, -/obj/item/storage/backpack, -/obj/item/storage/backpack, -/turf/open/floor/wood/walnut{ - icon_state = "wood-broken7" - }, -/area/ship/crew) -"kO" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/old, -/obj/machinery/light/directional/east, -/obj/item/radio/intercom/directional/east, -/obj/machinery/firealarm/directional/east, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"kP" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 8 - }, -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/maintenance/fore) -"kS" = ( -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"kT" = ( -/obj/structure/window/plasma/reinforced/spawner/east, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"kZ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/advanced_airlock_controller{ - pixel_y = 26 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/communications) -"ld" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"lf" = ( -/obj/structure/table/wood/poker, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/pill_bottle/dice{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/toy/cards/deck, -/obj/effect/spawner/lootdrop/gambling{ - pixel_x = -5; - pixel_y = 4 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew) -"lm" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/light_switch{ - pixel_x = -12; - pixel_y = 23; - dir = 2 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"ln" = ( -/turf/closed/wall, -/area/ship/maintenance/fore) -"lo" = ( -/obj/effect/turf_decal/atmos/plasma, -/turf/open/floor/engine/plasma, -/area/ship/engineering/incinerator) -"lp" = ( -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 6 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Lockdown Shutters"; - id = "cutter_sm_lockdown" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"lq" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/railing{ - dir = 4; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/engineering/electrical) -"lu" = ( -/obj/machinery/door/airlock/grunge{ - name = "Bathroom" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/engineering/communications) -"lz" = ( -/turf/closed/wall/r_wall/rust, -/area/ship/crew) -"lA" = ( -/turf/closed/wall/r_wall/rust, -/area/ship/engineering/incinerator) -"lH" = ( -/obj/machinery/smartfridge/organ, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/medical) -"lJ" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/range) -"lN" = ( -/obj/structure/salvageable/computer{ - dir = 4; - pixel_x = -3 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light_switch{ - pixel_y = 24 - }, -/turf/open/floor/circuit/green/off, -/area/ship/security/range) -"lO" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/engineering, -/obj/item/stack/conveyor/thirty{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/rcl/pre_loaded, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/structure/sign/poster/contraband/ambrosia_vulgaris{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"lR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/decal/cleanable/blood/old{ - icon_state = "gib6-old"; - pixel_x = 8 - }, -/obj/machinery/vending/wallmed{ - pixel_x = 32 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating, -/area/ship/medical) -"lT" = ( -/obj/machinery/door/poddoor{ - id = "cutter_disposals_hatch"; - dir = 4 - }, -/turf/open/floor/engine/hull/reinforced/interior, -/area/ship/engineering/incinerator) -"lV" = ( -/obj/machinery/holopad/emergency/engineering, -/obj/effect/turf_decal/box, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"mh" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "6-9" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/ship/engineering/electrical) -"mi" = ( -/obj/structure/closet/wall/red/directional/west{ - name = "armory locker"; - req_one_access_txt = "1" - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/item/clothing/suit/armor/vest/bulletproof/frontier, -/obj/item/clothing/suit/armor/vest/bulletproof/frontier, -/obj/item/clothing/suit/armor/vest/bulletproof/frontier, -/obj/item/clothing/suit/armor/vest/bulletproof/frontier, -/obj/item/clothing/suit/armor/vest/bulletproof/frontier, -/obj/item/clothing/head/helmet/bulletproof/x11/frontier, -/obj/item/clothing/head/helmet/bulletproof/x11/frontier, -/obj/item/clothing/head/helmet/bulletproof/x11/frontier, -/obj/item/clothing/head/helmet/bulletproof/x11/frontier, -/obj/item/clothing/head/helmet/bulletproof/x11/frontier, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"mn" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/machinery/computer/security{ - layer = 3.0; - pixel_y = 4; - pixel_x = 4 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"mq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"mw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/door/airlock/hatch{ - name = "Cannon Bay"; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/range) -"mz" = ( -/obj/effect/turf_decal/techfloor, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/paper_bin{ - pixel_x = -5 - }, -/obj/item/pen{ - pixel_x = -5; - pixel_y = 1 - }, -/obj/machinery/airalarm/directional/south, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = 9; - pixel_y = 8 - }, -/obj/item/reagent_containers/food/drinks/flask{ - pixel_x = 5 - }, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"mE" = ( -/obj/structure/cable{ - icon_state = "0-9" - }, -/obj/machinery/power/shieldwallgen/atmos{ - anchored = 1; - dir = 8; - id = "cutter_cargo"; - locked = 1 - }, -/obj/docking_port/mobile{ - can_move_docking_ports = 1; - launch_status = 0; - port_direction = 4; - preferred_direction = 4 - }, -/obj/machinery/door/poddoor/shutters{ - id = "cutter_cargo_shutters"; - name = "Cargo Shutters" - }, -/turf/open/floor/plating, -/area/ship/cargo) -"mI" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/cargo) -"mJ" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/communications) -"mL" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"mR" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"mS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ship/hallway/central) -"mU" = ( -/obj/structure/girder, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ship/hallway/central) -"mW" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/machinery/button/door{ - id = "cutter_bridge_window"; - name = "Bridge Window Shutters"; - pixel_x = 7; - pixel_y = 6; - dir = 1 - }, -/obj/machinery/button/door{ - id = "cutter_windows_general"; - name = "Window Shutters"; - pixel_x = 7; - pixel_y = -3; - dir = 1 - }, -/obj/machinery/button/door{ - id = "cutter_bridge_lockdown"; - name = "Bridge Lockdown"; - pixel_x = -7; - pixel_y = 6; - dir = 1; - req_access_txt = "20" - }, -/obj/machinery/button/door{ - id = "cutter_general_lockdown"; - name = "Ship Lockdown"; - pixel_x = -7; - pixel_y = -3; - dir = 1; - req_access_txt = "20" - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"mY" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/girder/displaced, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"na" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/obj/item/tank/internals/plasma/full, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"ne" = ( -/turf/closed/wall, -/area/ship/maintenance/central) -"nf" = ( -/obj/machinery/holopad/emergency/command, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"ni" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, -/area/ship/security) -"nn" = ( -/obj/structure/sign/poster/ripped{ - pixel_x = -32 - }, -/obj/structure/fluff/hedge, -/obj/effect/turf_decal/siding/wood/end{ - dir = 1 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"np" = ( -/obj/effect/decal/fakelattice{ - color = "#808080" - }, -/obj/effect/decal/cleanable/plasma, -/obj/effect/decal/cleanable/robot_debris{ - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/greenglow{ - color = "#808080" - }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/engineering/atmospherics) -"nu" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/wood/walnut{ - icon_state = "wood-broken" - }, -/area/ship/crew) -"nw" = ( -/obj/structure/table/survival_pod, -/obj/item/pda/chemist, -/obj/item/paper/fluff/jobs/toxins/chemical_info{ - pixel_y = -3; - pixel_x = 7 - }, -/obj/machinery/reagentgrinder{ - pixel_y = 9 - }, -/obj/structure/sign/warning/chemdiamond{ - pixel_x = -32 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/fore) -"nx" = ( -/obj/effect/turf_decal/techfloor, -/obj/structure/closet/wall/directional/south{ - icon_door = "yellow_wall"; - name = "engineering closet" - }, -/obj/item/clothing/suit/toggle/industrial, -/obj/item/clothing/under/utility, -/obj/item/clothing/under/utility/skirt, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/clothing/shoes/workboots{ - pixel_y = -7 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/effect/turf_decal/steeldecal/steel_decals1{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/belt/utility/full/engi, -/obj/item/clothing/glasses/meson{ - pixel_y = -6 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"nA" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/industrial/hatch/red, -/obj/structure/closet/firecloset, -/obj/structure/sign/poster/official/moth/hardhats{ - pixel_y = -32 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = 12 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"nB" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/obj/machinery/mineral/ore_redemption{ - dir = 8; - output_dir = 8; - input_dir = 8 - }, -/obj/structure/grille/broken, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"nD" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_windows_general" - }, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"nI" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/engineering) -"nJ" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/light/directional/south, -/turf/open/floor/carpet/green, -/area/ship/crew/office) -"nL" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/light/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"nM" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/chair, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"nO" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plating/rust, -/area/ship/engineering/atmospherics) -"nP" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1; - color = "#808080" - }, -/obj/item/kitchen/knife/combat{ - pixel_x = 9; - pixel_y = -9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"nX" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/structure/closet/wall/red/directional/south{ - name = "Firearm Locker" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - dir = 4; - pixel_x = -1 - }, -/obj/item/gun/ballistic/derringer{ - pixel_y = -4; - pixel_x = 3 - }, -/obj/item/gun/ballistic/rifle/polymer{ - pixel_y = -8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"nZ" = ( -/obj/structure/sign/poster/official/here_for_your_safety{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 8 - }, -/area/ship/bridge) -"oa" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/central) -"oh" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 8 - }, -/area/ship/bridge) -"oj" = ( -/obj/machinery/door/airlock/atmos/glass, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Lockdown Shutters"; - id = "cutter_sm_lockdown" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"ok" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"oq" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/plastic{ - pixel_x = 12; - pixel_y = 7 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ship/maintenance/fore) -"oy" = ( -/obj/machinery/door/airlock/engineering/glass{ - req_access_txt = "10"; - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"oA" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/emitter{ - dir = 1 - }, -/obj/structure/railing{ - dir = 4; - layer = 4.1 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"oE" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/loading{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"oM" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/book/manual/wiki/hacking{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/reagent_containers/food/drinks/soda_cans/efuel{ - pixel_x = -7; - pixel_y = 3 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plating/rust, -/area/ship/engineering/communications) -"oN" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"oO" = ( -/obj/structure/sign/poster/contraband/energy_swords{ - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/catwalk/over, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"oS" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/turf_decal/borderfloorblack{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"oT" = ( -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/machinery/light/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"oU" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/curtain/bounty, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"oX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"oY" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering/atmospherics) -"pc" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/sign/poster/official/moth/piping{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/engineering/incinerator) -"pd" = ( -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"ph" = ( -/obj/effect/decal/fakelattice{ - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/engineering/atmospherics) -"pj" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"pn" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth/grey, -/obj/item/bedsheet/dorms, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/wood/walnut, -/area/ship/crew) -"po" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass, -/obj/structure/frame/machine, -/obj/effect/decal/cleanable/xenoblood, -/obj/effect/turf_decal/industrial/radiation{ - dir = 5 - }, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_x = -32 - }, -/turf/open/floor/engine/hull/reinforced/interior, -/area/ship/maintenance/fore) -"pA" = ( -/obj/structure/window/plasma/reinforced/spawner/east, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"pB" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/soysauce{ - pixel_x = -6; - pixel_y = 7 - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_y = 3; - pixel_x = -4 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = -1 - }, -/obj/item/table_bell{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ship/crew/canteen/kitchen) -"pC" = ( -/obj/effect/turf_decal/steeldecal/steel_decals6, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"pD" = ( -/obj/item/stock_parts/subspace/ansible{ - pixel_x = 4; - pixel_y = 7 - }, -/obj/item/stock_parts/cell/high{ - pixel_y = -4 - }, -/obj/machinery/light/small/broken/directional/south, -/turf/open/floor/plating/airless{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/port) -"pF" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 5 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/structure/fermenting_barrel{ - pixel_x = -2; - pixel_y = 9 - }, -/obj/structure/fermenting_barrel{ - pixel_x = 9; - pixel_y = 2 - }, -/obj/item/reagent_containers/glass/bucket/wooden{ - pixel_y = -4; - pixel_x = -1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"pM" = ( -/turf/closed/wall, -/area/ship/security) -"pO" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/west, -/obj/item/reagent_containers/food/condiment/flour{ - pixel_x = 12; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/condiment/rice{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/flour{ - pixel_x = 8; - pixel_y = -2 - }, -/turf/open/floor/concrete/slab_3, -/area/ship/crew/canteen/kitchen) -"pQ" = ( -/obj/machinery/smartfridge/disks, -/obj/structure/table/glass, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"pR" = ( -/obj/effect/turf_decal/number/zero, -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/security/armory) -"pT" = ( -/obj/structure/flora/rock/pile, -/obj/structure/flora/junglebush/c, -/mob/living/simple_animal/chicken, -/turf/open/floor/grass, -/area/ship/maintenance/central) -"pU" = ( -/turf/closed/wall/r_wall/rust, -/area/ship/maintenance/fore) -"pZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ - dir = 8 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"qf" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-2" - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"qi" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -20 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"qk" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/maintenance/fore) -"qp" = ( -/obj/structure/closet/emcloset/anchored, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/item/reagent_containers/food/drinks/bottle/pruno, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"qr" = ( -/obj/structure/closet/emcloset/wall/directional/north, -/obj/item/seeds/berry{ - pixel_x = -8; - pixel_y = 6 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"qv" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/hole{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"qw" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/sign/departments/botany{ - pixel_x = 32 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"qG" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/card/emag/limited{ - pixel_x = 1; - pixel_y = -4 - }, -/obj/structure/closet/wall/blue/directional/west{ - name = "Component Storage" - }, -/obj/item/stack/cable_coil/blue, -/obj/item/stack/cable_coil/orange{ - pixel_y = -6; - pixel_x = 5 - }, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator{ - pixel_x = 5; - pixel_y = 10 - }, -/obj/item/stock_parts/manipulator{ - pixel_y = 5 - }, -/obj/item/stock_parts/micro_laser/high{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/stock_parts/micro_laser/high{ - pixel_x = -3; - pixel_y = -1 - }, -/obj/item/stock_parts/micro_laser/high{ - pixel_y = -2; - pixel_x = 1 - }, -/obj/item/screwdriver{ - pixel_x = -7; - pixel_y = 1 - }, -/obj/item/jammer, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/maintenance/port) -"qK" = ( -/obj/structure/closet/secure_closet/freezer/meat/open, -/obj/item/reagent_containers/food/snacks/meat/slab/monkey, -/obj/item/reagent_containers/food/snacks/meat/slab/monkey, -/obj/item/reagent_containers/food/snacks/meat/slab/monkey, -/obj/item/reagent_containers/food/snacks/meat/slab/monkey, -/obj/item/reagent_containers/food/snacks/meat/slab/monkey, -/obj/item/reagent_containers/food/snacks/meat/slab/monkey, -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/item/storage/box/ingredients/wildcard, -/obj/item/storage/box/ingredients/wildcard, -/obj/item/storage/box/ingredients/wildcard, -/obj/item/storage/box/ingredients/wildcard, -/obj/effect/turf_decal/box/corners, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/canteen/kitchen) -"qP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/south, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/turf/open/floor/plating, -/area/ship/hallway/central) -"qQ" = ( -/obj/structure/bed/roller, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old{ - pixel_x = -9; - pixel_y = 11; - icon_state = "floor6-old" - }, -/obj/effect/decal/cleanable/blood/old{ - pixel_x = -2; - pixel_y = -3; - icon_state = "gib2-old" - }, -/obj/effect/turf_decal/arrows{ - pixel_y = 15 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/medical) -"qT" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/communications) -"qU" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/storage/toolbox/mechanical{ - pixel_y = -4 - }, -/obj/item/clothing/head/hardhat/weldhat/orange{ - pixel_x = 7; - pixel_y = -7 - }, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"qX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"rd" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/fore) -"re" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"rg" = ( -/turf/closed/wall, -/area/ship/hallway/central) -"rm" = ( -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"ro" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"rp" = ( -/obj/structure/window/reinforced/spawner/east, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/rust, -/area/ship/maintenance/port) -"rq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"ru" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/window/reinforced/spawner, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/conveyor{ - dir = 8; - id = "cutter_conveyor" - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/engine/hull/reinforced/interior, -/area/ship/engineering/incinerator) -"rw" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/security) -"rz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8 - }, -/turf/open/floor/engine/n2, -/area/ship/engineering/atmospherics) -"rF" = ( -/obj/structure/foamedmetal, -/turf/open/floor/plating/airless{ - icon_state = "foam_plating" - }, -/area/ship/maintenance/port) -"rG" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ship/hallway/central) -"rJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/east, -/obj/structure/closet/wall/directional/south, -/obj/item/reagent_containers/syringe/contraband/fentanyl{ - pixel_x = -3; - pixel_y = 4 - }, -/obj/item/reagent_containers/syringe/contraband/morphine, -/obj/item/reagent_containers/syringe/contraband/space_drugs, -/obj/item/reagent_containers/syringe/contraband/space_drugs, -/obj/item/reagent_containers/pill/floorpill, -/obj/item/reagent_containers/pill/floorpill, -/obj/item/reagent_containers/pill/floorpill, -/obj/item/reagent_containers/pill/happy{ - pixel_x = 7; - pixel_y = -11 - }, -/obj/item/reagent_containers/pill/happy{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/reagent_containers/pill/happy{ - pixel_x = 7; - pixel_y = -7 - }, -/obj/item/reagent_containers/pill/happy{ - pixel_x = 5; - pixel_y = -3 - }, -/obj/item/reagent_containers/pill/happy{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/item/reagent_containers/pill/happy{ - pixel_x = 12; - pixel_y = -10 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew) -"rN" = ( -/turf/closed/wall/rust, -/area/ship/crew/canteen) -"rQ" = ( -/obj/structure/closet/emcloset/wall/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"rV" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/crate/trashcart, -/obj/item/trash/candy, -/obj/effect/decal/cleanable/vomit/old, -/obj/item/book/manual/wiki/ghetto_chemistry{ - pixel_x = 6; - pixel_y = -5 - }, -/obj/item/trash/sosjerky, -/obj/item/storage/portable_chem_mixer{ - pixel_x = -1; - pixel_y = -3 - }, -/obj/item/trash/syndi_cakes{ - pixel_x = -4; - pixel_y = 3 - }, -/obj/item/trash/energybar{ - pixel_y = -6 - }, -/turf/open/floor/plating, -/area/ship/maintenance/fore) -"rW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 8 - }, -/turf/open/floor/engine/o2, -/area/ship/engineering/atmospherics) -"sa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"sb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"se" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"sg" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/railing{ - dir = 4; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/engineering/electrical) -"sj" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/hole{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-9" - }, -/obj/machinery/power/ship_gravity, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"sp" = ( -/obj/structure/chair/e_chair, -/turf/open/floor/plasteel/tech, -/area/ship/security) -"sq" = ( -/obj/machinery/mass_driver{ - dir = 4; - id = "cutter_gun_driver" - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1; - color = "#808080" - }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/security/range) -"ss" = ( -/turf/closed/wall/r_wall, -/area/ship/hallway/fore) -"sw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"sy" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/security/armory) -"sF" = ( -/obj/structure/table/reinforced, -/obj/item/trash/semki{ - pixel_y = 7; - pixel_x = 5 - }, -/obj/item/reagent_containers/food/drinks/soda_cans/cola{ - pixel_x = -7 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ship/crew/canteen/kitchen) -"sH" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/computer/cryopod/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew) -"sK" = ( -/obj/structure/chair/office{ - dir = 1; - name = "tactical swivel chair"; - pixel_y = 9; - pixel_x = -5 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 10 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"sP" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 8 - }, -/area/ship/bridge) -"sR" = ( -/obj/machinery/vending/dinnerware, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/concrete/slab_4, -/area/ship/crew/canteen/kitchen) -"sS" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 10 - }, -/obj/structure/table/reinforced, -/obj/machinery/recharger{ - pixel_x = -5 - }, -/obj/machinery/recharger{ - pixel_x = 6 - }, -/obj/machinery/button/door{ - id = "cutter_armoury"; - name = "Armoury Lockdown"; - pixel_x = -23; - pixel_y = 6; - dir = 4; - req_access_txt = "3" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"ta" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"tl" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1; - color = "#808080" - }, -/obj/structure/cable{ - icon_state = "0-10" - }, -/obj/machinery/power/shieldwallgen/atmos{ - anchored = 1; - id = "cutter_gun_holo"; - locked = 1 - }, -/obj/machinery/door/poddoor{ - id = "cutter_gun_hatch"; - dir = 4 - }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/security/range) -"to" = ( -/turf/open/floor/engine/plasma, -/area/ship/engineering/incinerator) -"tp" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/holopad, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"tq" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/techfloor/hole/right{ - dir = 2 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/secure_closet/engineering_electrical{ - req_access = null - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"tr" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating, -/area/ship/cargo) -"tu" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/contraband/ambrosia_vulgaris{ - pixel_x = 32 - }, -/obj/machinery/vending/syndichem, -/obj/structure/sign/departments/chemistry{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"tv" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-74" - }, -/obj/item/stack/ore/salvage/scrapmetal/ten, -/turf/open/floor/plating/airless{ - icon_state = "foam_plating" - }, -/area/ship/maintenance/port) -"tw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/south, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"tD" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"tH" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"tL" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"tM" = ( -/obj/structure/table/wood/reinforced, -/obj/item/flashlight/lamp{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/paper_bin{ - pixel_x = 8 - }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = 8 - }, -/obj/item/phone{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/structure/sign/poster/official/fruit_bowl{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/office) -"tQ" = ( -/obj/structure/bed, -/obj/item/bedsheet/dorms, -/obj/structure/curtain/cloth/grey, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/carpet/red_gold, -/area/ship/crew) -"tT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"tX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/fluff/hedge{ - icon_state = "hedge-4"; - pixel_x = 2; - pixel_y = 2 - }, -/obj/structure/railing{ - color = "#A47449"; - dir = 10 - }, -/obj/structure/sign/barsign{ - icon_state = "thewretchedhive"; - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"ul" = ( -/obj/structure/rack, -/obj/item/storage/box/zipties{ - pixel_y = 7; - pixel_x = 4 - }, -/obj/item/storage/box/syndie_kit/throwing_weapons, -/obj/machinery/light/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/stechkin{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"um" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"uq" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/industrial/radiation{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/chem_master, -/turf/open/floor/engine/hull/reinforced/interior, -/area/ship/maintenance/fore) -"us" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"ut" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 4 - }, -/area/ship/engineering/atmospherics) -"uu" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes/cigpack_uplift{ - pixel_x = 6; - pixel_y = 7 - }, -/obj/item/lighter/greyscale{ - pixel_x = 8; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/toy/figure/chemist{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/trash/syndi_cakes, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/fore) -"uy" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/item/desk_flag{ - pixel_x = 10; - pixel_y = 13 - }, -/obj/item/newspaper{ - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/gps{ - pixel_x = -6 - }, -/obj/item/megaphone/command{ - pixel_x = 4; - pixel_y = 7 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"uz" = ( -/obj/effect/turf_decal/industrial/warning/cee, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/machinery/airalarm/directional/north, -/obj/item/clothing/suit/space/scar, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/office) -"uB" = ( -/obj/effect/turf_decal/techfloor/corner, -/obj/item/stock_parts/subspace/amplifier{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/stock_parts/subspace/amplifier{ - pixel_x = -5; - pixel_y = -1 - }, -/obj/item/stack/cable_coil/cut/yellow, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/item/stock_parts/subspace/filter{ - pixel_x = 7; - pixel_y = -13 - }, -/turf/open/floor/plating/airless{ - icon_state = "plating_rust" - }, -/area/ship/maintenance/port) -"uD" = ( -/obj/structure/girder/displaced, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/turf/open/floor/plating, -/area/ship/hallway/central) -"uH" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/techfloor/orange{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/outline, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"uK" = ( -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen/kitchen) -"uL" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"uN" = ( -/obj/structure/reagent_dispensers, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/railing{ - dir = 4; - layer = 3.1 - }, -/obj/structure/sign/warning/nosmoking{ - pixel_x = 28 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"uO" = ( -/obj/structure/chair/office{ - name = "tactical swivel chair"; - dir = 8 - }, -/obj/structure/catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/engineering/communications) -"uP" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/machinery/computer/crew/syndie{ - dir = 1; - pixel_x = 4; - pixel_y = -3 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"uQ" = ( -/obj/machinery/processor, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"uX" = ( -/obj/effect/decal/cleanable/sprayweb, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"va" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/east, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/tech/grid, -/area/ship/security/armory) -"vc" = ( -/obj/item/stock_parts/subspace/filter, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks{ - dir = 5 - }, -/obj/effect/spawner/lootdrop/maintenance/three, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"ve" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/fore) -"vg" = ( -/turf/closed/wall/rust, -/area/ship/maintenance/central) -"vh" = ( -/obj/machinery/door/airlock/external, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"vl" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"vm" = ( -/obj/machinery/computer/crew/syndie, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/security) -"vo" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/structure/bed/dogbed, -/obj/machinery/light/small/directional/south, -/obj/machinery/light_switch{ - pixel_x = 22; - dir = 8; - pixel_y = -11 - }, -/mob/living/simple_animal/parrot, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/ship/security) -"vq" = ( -/obj/effect/decal/cleanable/glass{ - dir = 8 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_y = -7 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_y = -1; - pixel_x = 9 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 7; - pixel_y = -8 - }, -/obj/item/restraints/handcuffs/cable/white, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/fore) -"vr" = ( -/obj/item/stack/ore/salvage/scrapsilver, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"vs" = ( -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"vt" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/barricade/wooden/crude, -/turf/open/floor/plating, -/area/ship/maintenance/central) -"vu" = ( -/obj/structure/foamedmetal, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/ship/maintenance/port) -"vw" = ( -/obj/structure/rack, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/structure/sign/poster/official/mini_energy_gun{ - pixel_x = -32 - }, -/obj/item/grenade/frag{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/item/grenade/frag{ - pixel_x = 1; - pixel_y = -8 - }, -/obj/item/grenade/firecracker, -/obj/item/grenade/firecracker{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/item/grenade/flashbang{ - pixel_y = -4; - pixel_x = -10 - }, -/obj/item/grenade/flashbang{ - pixel_y = -5; - pixel_x = -7 - }, -/obj/item/grenade/flashbang{ - pixel_y = -9; - pixel_x = -8 - }, -/obj/machinery/light_switch{ - pixel_x = -12; - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"vy" = ( -/obj/structure/plaque/static_plaque/golden{ - pixel_x = 32; - pixel_y = 32 - }, -/obj/machinery/holopad/emergency/command, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/green, -/area/ship/crew/office) -"vz" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ship/maintenance/central) -"vC" = ( -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"vD" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"vE" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/fluff/hedge{ - icon_state = "hedge-8"; - pixel_y = 2; - pixel_x = 2 - }, -/obj/structure/railing{ - color = "#A47449"; - dir = 2 - }, -/obj/structure/sign/poster/contraband/mothpill{ - pixel_x = 32 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"vG" = ( -/obj/item/stock_parts/cell/crap{ - pixel_x = 4; - pixel_y = 7 - }, -/obj/item/stock_parts/subspace/analyzer{ - pixel_x = 7; - pixel_y = -7 - }, -/obj/item/stock_parts/subspace/analyzer{ - pixel_x = 2; - pixel_y = -5 - }, -/obj/item/stock_parts/subspace/analyzer{ - pixel_y = -10; - pixel_x = 6 - }, -/turf/open/floor/plating/airless{ - icon_state = "plating_rust" - }, -/area/ship/maintenance/port) -"vH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"vK" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/syringe/contraband/bath_salts{ - pixel_y = 6; - pixel_x = -4 - }, -/obj/item/reagent_containers/syringe/contraband/space_drugs{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/reagent_containers/glass/mortar/metal, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"vL" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/snacks/breadslice/moldy{ - pixel_x = -6; - pixel_y = 10 - }, -/obj/structure/table/wood/reinforced, -/obj/item/reagent_containers/food/snacks/breadslice/creamcheese{ - pixel_x = -1 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/ship/crew/canteen) -"vX" = ( -/obj/machinery/light/broken/directional/west, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/power/ship_gravity/unanchored, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"vY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/south, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"vZ" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/turf_decal/borderfloorblack{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"wc" = ( -/turf/closed/wall/rust, -/area/ship/cargo) -"wd" = ( -/obj/item/disk/plantgene{ - pixel_x = -6; - pixel_y = -6 - }, -/obj/item/disk/plantgene{ - pixel_x = 10; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"wh" = ( -/obj/machinery/atmospherics/pipe/simple/brown/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/engineering/incinerator) -"wi" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/layer_manifold/visible, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"wm" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 9 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 10 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"wo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/item/stack/rods{ - pixel_x = 7 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"wp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew) -"ws" = ( -/turf/template_noop, -/area/template_noop) -"wt" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 9 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 10 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"ww" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plating/rust, -/area/ship/maintenance/central) -"wC" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/closet/firecloset/wall/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plating, -/area/ship/hallway/central) -"wD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"wG" = ( -/obj/structure/table/wood/reinforced, -/obj/item/modular_computer/laptop/preset/civilian{ - pixel_x = 1; - pixel_y = 8 - }, -/obj/item/paicard{ - pixel_x = 7; - pixel_y = 4 - }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/item/reagent_containers/food/drinks/bottle/hooch{ - pixel_x = -12; - pixel_y = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/office) -"wN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"wQ" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 4 - }, -/obj/structure/closet/emcloset/wall/directional/west, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"wS" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 2; - color = "#808080" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "5-8" - }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/security/range) -"wT" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/official/help_others{ - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"wV" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/item/clothing/gloves/krav_maga/combatglovesplus, -/obj/item/clothing/under/syndicate/camo, -/obj/item/clothing/under/syndicate/camo, -/obj/item/clothing/neck/scarf/black, -/obj/item/clothing/neck/cloak/hos, -/obj/item/clothing/mask/bandana/black{ - pixel_x = 1; - pixel_y = -4 - }, -/obj/item/clothing/mask/gas/sechailer/balaclava, -/obj/item/clothing/suit/armor/vest/marine/medium, -/obj/item/storage/belt/military, -/obj/item/clothing/shoes/cowboy/black, -/obj/item/clothing/head/helmet/bulletproof/x11/frontier, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/structure/closet/secure_closet{ - anchored = 1; - icon_state = "hos"; - name = "master at arm's locker"; - req_access_txt = "3" - }, -/obj/item/gun/ballistic/automatic/pistol/APS, -/obj/item/ammo_box/magazine/pistolm9mm, -/obj/item/clothing/mask/gas/atmos{ - name = "tactical gas mask"; - desc = "Improved gas mask utilized by pirates. Still not very good at blocking gas flow, but it's flameproof!" - }, -/turf/open/floor/carpet/black, -/area/ship/security) -"wZ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8; - color = "#808080" - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/computer/cargo/express{ - dir = 8 - }, -/obj/machinery/vending/wallmed{ - pixel_y = 32 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/cargo) -"xh" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"xj" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/canteen/kitchen) -"xk" = ( -/turf/closed/wall/r_wall, -/area/ship/cargo) -"xo" = ( -/obj/machinery/mass_driver{ - dir = 4; - id = "cutter_gun_driver" - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 2; - color = "#808080" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/security/range) -"xs" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating/foam, -/area/ship/security) -"xx" = ( -/obj/effect/turf_decal/techfloor, -/obj/machinery/power/port_gen/pacman/super, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/shreds, -/obj/structure/cable/yellow{ - icon_state = "0-1" - }, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"xB" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/curtain/bounty, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"xK" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/hallway/fore) -"xO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/bed{ - icon_state = "dirty_mattress" - }, -/obj/structure/sign/warning/incident{ - pixel_y = 32 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/ship/hallway/central) -"xP" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/concrete/slab_2, -/area/ship/crew/canteen/kitchen) -"xS" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"yd" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/tech/grid, -/area/ship/security/armory) -"yh" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/light/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"yk" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/machinery/light/directional/north, -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 19 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"yl" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/item/modular_computer/laptop{ - pixel_y = 7 - }, -/obj/item/reagent_containers/food/drinks/bottle/moonshine{ - pixel_x = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/item/stack/sheet/mineral/diamond, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"yo" = ( -/turf/open/floor/engine/n2, -/area/ship/engineering/atmospherics) -"yq" = ( -/obj/effect/decal/cleanable/sprayweb, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"ys" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"yv" = ( -/turf/closed/wall/r_wall/rust, -/area/ship/hallway/fore) -"yw" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/pen/fountain{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/megaphone/sec, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"yx" = ( -/turf/closed/wall/rust, -/area/ship/maintenance/port) -"yy" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 5 - }, -/obj/item/storage/belt/utility/full/engi{ - pixel_y = -1; - pixel_x = 3 - }, -/obj/item/clothing/glasses/welding{ - pixel_y = 5 - }, -/obj/item/multitool{ - pixel_x = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/range) -"yF" = ( -/obj/machinery/door/window/northleft{ - dir = 2; - name = "Animal Pen"; - req_access_txt = "35" - }, -/obj/structure/flora/ausbushes/ywflowers, -/obj/effect/decal/cleanable/blood/gibs, -/mob/living/simple_animal/cow{ - desc = "Allegedly a bull."; - name = "Otis"; - real_name = "Betsy" - }, -/turf/open/floor/grass, -/area/ship/maintenance/central) -"yG" = ( -/obj/structure/foamedmetal, -/turf/open/floor/plating/rust, -/area/ship/maintenance/port) -"yJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"yL" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/crew/office) -"yM" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/stock_parts/scanning_module{ - pixel_x = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/maintenance/fore) -"yO" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/blood/old, -/obj/structure/grille, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/fore) -"zc" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_windows_general" - }, -/turf/open/floor/plating, -/area/ship/security/armory) -"zf" = ( -/obj/structure/girder/reinforced, -/obj/effect/decal/cleanable/blood/old, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"zh" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ship/security/armory) -"zi" = ( -/obj/structure/table/reinforced, -/obj/item/storage/backpack/duffelbag/med/surgery, -/obj/item/clothing/gloves/color/latex/nitrile/evil, -/obj/item/healthanalyzer, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/reagentgrinder{ - pixel_y = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/window/reinforced, -/obj/machinery/vending/wallmed{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/medical) -"zn" = ( -/obj/effect/spawner/lootdrop/salvage_scanning, -/turf/open/floor/plating/airless{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/port) -"zo" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/departments/engineering{ - pixel_x = -32 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"zu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"zv" = ( -/obj/machinery/door/airlock/external, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/fore) -"zw" = ( -/turf/closed/wall, -/area/ship/engineering/communications) -"zE" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"zF" = ( -/obj/machinery/modular_computer/console/preset/command{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"zH" = ( -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter{ - pixel_x = 2; - pixel_y = -8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/port) -"zJ" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4; - layer = 2.36 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4; - layer = 2.37 - }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 10; - layer = 2.36 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ship/engineering/electrical) -"zK" = ( -/turf/closed/wall/rust, -/area/ship/medical) -"zP" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/clothing/suit/space/hardsuit/security/independent/frontier, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/tech/grid, -/area/ship/security/armory) -"zS" = ( -/obj/machinery/door/window/brigdoor/northleft{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/concrete/slab_4, -/area/ship/crew/canteen/kitchen) -"zV" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/engineering/engine) -"zY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"zZ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 2; - color = "#808080" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"Ab" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen/kitchen) -"Ad" = ( -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/clothing/suit/space/engineer, -/obj/item/clothing/head/helmet/space/light/engineer, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/communications) -"Ag" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/light_switch{ - pixel_x = -8; - dir = 1; - pixel_y = -22 - }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/atmospherics/pipe/simple/brown/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"Ah" = ( -/obj/effect/decal/cleanable/robot_debris{ - pixel_x = 7 - }, -/obj/effect/decal/cleanable/plastic, -/obj/machinery/light/broken/directional/south, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"Ak" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/grunge{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew) -"Al" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 9 - }, -/obj/item/stock_parts/subspace/filter{ - pixel_x = 10; - pixel_y = -11 - }, -/obj/item/circuitboard/machine/telecomms/processor{ - pixel_y = -9; - pixel_x = 10 - }, -/obj/effect/decal/cleanable/blood/gibs/old{ - pixel_x = 10; - pixel_y = 1 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light/broken/directional/west, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/maintenance/port) -"Am" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/engineering) -"An" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/structure/showcase/cyborg/old, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ship/security) -"As" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on{ - dir = 8 - }, -/turf/open/floor/engine/o2, -/area/ship/engineering/atmospherics) -"Au" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"AA" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"AD" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/office) -"AG" = ( -/obj/item/trash/popcorn{ - pixel_y = 4; - pixel_x = -16 - }, -/obj/item/trash/candy, -/obj/machinery/light/small/broken/directional/south, -/turf/open/floor/plating/airless{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/port) -"AI" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"AL" = ( -/obj/structure/closet/wall/orange/directional/east{ - name = "Engineering locker" - }, -/obj/effect/decal/cleanable/robot_debris/gib, -/obj/item/clothing/under/utility, -/obj/item/clothing/under/utility/skirt, -/obj/item/clothing/suit/hooded/wintercoat/engineering{ - pixel_x = 6 - }, -/obj/item/clothing/suit/toggle/hazard, -/obj/item/clothing/shoes/workboots{ - pixel_y = -7 - }, -/obj/structure/catwalk, -/obj/item/clothing/under/rank/engineering/chief_engineer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plating/rust, -/area/ship/engineering/communications) -"AM" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/bed{ - icon_state = "dirty_mattress" - }, -/obj/item/bedsheet/grey, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/ship/security/armory) -"AQ" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/engineering/electrical) -"AU" = ( -/obj/structure/railing{ - dir = 4; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable/yellow{ - icon_state = "0-1" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"AV" = ( -/turf/closed/wall, -/area/ship/crew/canteen) -"AZ" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/obj/machinery/light/directional/north, -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Bb" = ( -/obj/machinery/door/window/brigdoor/southright{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Lockdown Shutters"; - id = "cutter_sm_lockdown" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Bh" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/obj/structure/bed{ - icon_state = "dirty_mattress" - }, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_x = 7; - pixel_y = -5 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Bj" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_windows_general"; - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"Bm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood{ - pixel_y = -8 - }, -/obj/effect/decal/cleanable/blood/gibs, -/obj/machinery/light/small/broken/directional/east, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/light_switch{ - pixel_x = 22; - dir = 8; - pixel_y = -11 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/medical) -"Bo" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Bp" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/maintenance/port) -"Bq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass{ - pixel_y = -7 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Br" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Bv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_bridge_lockdown"; - name = "Lockdown Shutters"; - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/fore) -"Bw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on, -/turf/open/floor/engine/plasma, -/area/ship/engineering/incinerator) -"Bx" = ( -/obj/structure/table/reinforced, -/obj/item/gun/ballistic/revolver/shadow{ - pixel_y = 6 - }, -/obj/item/gun/ballistic/revolver/shadow, -/obj/item/gun/ballistic/revolver/shadow{ - pixel_y = -5 - }, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"By" = ( -/obj/structure/guncase, -/obj/item/gun/ballistic/automatic/smg/mini_uzi{ - pixel_y = -3 - }, -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/item/gun/ballistic/rifle/illestren{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Bz" = ( -/obj/effect/turf_decal/techfloor, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew) -"BD" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/machinery/holopad/emergency/medical, -/obj/effect/turf_decal/box, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/medical) -"BH" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 8 - }, -/obj/machinery/light/directional/east, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/light_switch{ - pixel_x = 22; - dir = 8; - pixel_y = -11 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"BI" = ( -/turf/open/floor/engine, -/area/ship/engineering/engine) -"BQ" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"BR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"BT" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 6; - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters{ - id = "cutter_armoury"; - name = "Armoury Shutter"; - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"BW" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"BZ" = ( -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Ca" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/hole{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/random_machine_circuit_rare, -/obj/item/stack/ore/salvage/scraptitanium/five, -/turf/open/floor/plating/airless{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/port) -"Cc" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/structure/sign/poster/contraband/kudzu{ - pixel_x = -32 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/wood, -/area/ship/crew/office) -"Cg" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1; - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"Cq" = ( -/obj/structure/frame/machine, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/circuitboard/machine/telecomms/hub{ - pixel_x = -3; - pixel_y = -4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/maintenance/port) -"CA" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - dir = 1; - pixel_y = -2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 5 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"CF" = ( -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8; - min_temperature = 1; - target_temperature = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"CI" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 4; - layer = 2.37 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-6" - }, -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 8; - layer = 2.36 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"CL" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall/directional/east{ - name = "Uniform Closet" - }, -/obj/item/clothing/neck/shemagh, -/obj/item/clothing/neck/shemagh, -/obj/item/clothing/neck/shemagh, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/under/rank/security/officer/frontier, -/obj/item/clothing/under/rank/security/officer/frontier, -/obj/item/clothing/under/rank/security/officer/frontier, -/obj/item/clothing/under/rank/security/officer/frontier, -/obj/item/clothing/under/rank/security/officer/frontier, -/obj/item/clothing/under/rank/security/officer/frontier, -/obj/item/clothing/under/rank/security/officer/frontier, -/obj/item/clothing/head/beret/sec/frontier, -/obj/item/clothing/head/beret/sec/frontier, -/obj/item/clothing/head/beret/sec/frontier, -/obj/item/clothing/head/beret/sec/frontier, -/obj/item/clothing/head/beret/sec/frontier, -/obj/item/clothing/head/beret/sec/frontier, -/obj/item/clothing/head/beret/sec/frontier, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/wood/walnut, -/area/ship/crew) -"CO" = ( -/obj/structure/closet/crate/freezer/blood, -/obj/machinery/iv_drip, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/industrial/warning{ - dir = 6 - }, -/obj/machinery/light/directional/north, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/medical) -"CP" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/engineering/incinerator) -"CS" = ( -/obj/item/stack/rods/ten{ - pixel_x = 9 - }, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg1" - }, -/area/ship/maintenance/port) -"CV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass{ - pixel_x = -17; - pixel_y = 8 - }, -/obj/structure/catwalk/over, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"CW" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/modular_computer/laptop/preset, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/seeds/tobacco/space{ - pixel_y = -14; - pixel_x = 5 - }, -/obj/item/seeds/tobacco/space{ - pixel_y = -14; - pixel_x = 5 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"CX" = ( -/obj/effect/turf_decal/corner_techfloor_grid/full{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Db" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/purple/hidden, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"De" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/structure/frame/machine, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/circuitboard/machine/telecomms/bus, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/maintenance/port) -"Dg" = ( -/obj/machinery/computer/monitor, -/obj/effect/decal/cleanable/robot_debris, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_y = 11; - pixel_x = 20 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/engineering/communications) -"Dq" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/structure/railing{ - dir = 4; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor/orange{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/outline/orange, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer4{ - dir = 8 - }, -/obj/machinery/light_switch{ - pixel_x = -12; - pixel_y = 23; - dir = 2 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"Ds" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_ce_lockdown"; - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"Dv" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/effect/turf_decal/industrial/warning{ - dir = 10 - }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/medical) -"Dw" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-3" - }, -/obj/structure/girder, -/turf/open/floor/plating/airless{ - icon_state = "foam_plating" - }, -/area/ship/maintenance/port) -"Dy" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-74" - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"DC" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"DE" = ( -/obj/effect/turf_decal/corner_techfloor_grid/full{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/structure/closet/wall/blue/directional/east{ - name = "Bridge Officer's locker" - }, -/obj/item/clothing/shoes/workboots, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/under/rank/security/officer/frontier/officer, -/obj/item/clothing/head/beret/sec/frontier, -/obj/item/clothing/neck/cloak/qm, -/obj/item/clothing/accessory/holster, -/obj/item/clothing/glasses/hud/diagnostic, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/item/melee/transforming/energy/sword/saber/pirate/red, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"DF" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/item/geiger_counter{ - pixel_x = 1; - pixel_y = 6 - }, -/obj/item/geiger_counter{ - pixel_x = -2; - pixel_y = 1 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/obj/item/pipe_dispenser{ - pixel_y = -6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"DG" = ( -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/flora/ausbushes/leafybush, -/obj/effect/decal/cleanable/blood/splatter, -/obj/structure/window/reinforced/spawner, -/obj/structure/window/reinforced/spawner/west, -/turf/open/floor/grass, -/area/ship/maintenance/central) -"DR" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-3" - }, -/obj/item/stack/ore/salvage/scrapmetal/ten{ - pixel_y = -4; - pixel_x = -11 - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"DS" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_general_lockdown"; - name = "Lockdown Shutters" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"Ea" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/communications) -"Eb" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/cargo) -"Ec" = ( -/obj/machinery/computer/med_data/syndie{ - dir = 1; - pixel_y = -3 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"Eg" = ( -/obj/item/paper_bin{ - pixel_x = -6 - }, -/obj/item/pen/fourcolor{ - pixel_x = -4 - }, -/obj/item/stamp{ - pixel_x = 8; - pixel_y = 5 - }, -/obj/item/stamp/denied{ - pixel_x = 8 - }, -/obj/item/stamp/qm{ - pixel_y = -5; - pixel_x = 8 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"Ej" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/decal/fakelattice{ - color = "#808080" - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/effect/decal/cleanable/glass{ - dir = 8; - pixel_y = 1; - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/engineering/atmospherics) -"Ek" = ( -/obj/structure/table, -/obj/item/storage/bag/tray, -/obj/item/reagent_containers/food/condiment/enzyme{ - pixel_x = 13; - pixel_y = 10 - }, -/obj/item/reagent_containers/food/snacks/honeybar{ - pixel_x = -3 - }, -/obj/item/reagent_containers/glass/beaker/large{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/reagent_containers/glass/beaker, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/canteen/kitchen) -"El" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering/engine) -"Em" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/door/window/brigdoor/northleft, -/turf/open/floor/plasteel/stairs, -/area/ship/security) -"En" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Er" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/drinks/bottle/hooch{ - pixel_x = -15; - pixel_y = -6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Et" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/item/seeds/potato{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/seeds/garlic{ - pixel_x = 5; - pixel_y = 2 - }, -/obj/item/seeds/grass, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/central) -"Eu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/fakelattice{ - icon_state = "lattice-3" - }, -/obj/item/stack/rods{ - pixel_x = -7; - pixel_y = -2 - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"Ey" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/structure/cable{ - icon_state = "1-6" - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"EC" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/chair, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"EG" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/crew) -"EI" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/scrubber/huge/movable, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"EJ" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"EM" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/security/armory) -"EP" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - dir = 4; - pixel_x = -1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/effect/turf_decal/steeldecal/steel_decals8, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"ER" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"EX" = ( -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/item/tank/jetpack/carbondioxide, -/obj/item/clothing/suit/space/engineer, -/obj/item/clothing/head/helmet/space/light/engineer, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/airalarm/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/communications) -"Fb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 8 - }, -/area/ship/security/armory) -"Fd" = ( -/obj/effect/turf_decal/techfloor, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"Fg" = ( -/obj/effect/turf_decal/trimline/opaque/red/corner, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"Fi" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/light_switch{ - pixel_y = 24 - }, -/obj/machinery/fax/frontiersmen, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"Fo" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Fu" = ( -/obj/machinery/door/airlock/external, -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/barricade/wooden/crude, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Fx" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/canteen/kitchen) -"FC" = ( -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/machinery/airalarm/directional/north, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"FE" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 5 - }, -/obj/structure/chair{ - dir = 4; - pixel_x = 5; - pixel_y = 4 - }, -/turf/open/floor/carpet/red, -/area/ship/crew/canteen) -"FF" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating, -/area/ship/engineering) -"FG" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" - }, -/obj/machinery/door/poddoor{ - id = "cutter_engines_lockdown"; - name = "Engine Blast Door"; - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"FI" = ( -/obj/effect/turf_decal/techfloor{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/corner, -/obj/effect/turf_decal/radiation, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/sign/warning/radiation{ - pixel_y = 32 - }, -/obj/machinery/light/directional/west, -/obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson{ - pixel_y = -6 - }, -/obj/item/clothing/glasses/meson{ - pixel_y = -6 - }, -/obj/item/reagent_containers/syringe/salacid, -/obj/item/reagent_containers/hypospray/medipen/penacid, -/obj/item/reagent_containers/hypospray/medipen/penacid, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"FK" = ( -/obj/effect/turf_decal/techfloor, -/obj/item/stack/sheet/plasteel/twenty{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/machinery/autolathe, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = 6 - }, -/obj/item/stack/sheet/metal/fifty{ - pixel_y = 2 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"FL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/catwalk/over, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ship/hallway/central) -"FM" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central6{ - pixel_y = -7 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/button/door{ - id = "cutter_engines_lockdown"; - name = "Engine Shutters"; - pixel_y = 23; - pixel_x = -10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"FQ" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/turf/open/floor/plating, -/area/ship/security/armory) -"FR" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 2; - color = "#808080" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/shieldwallgen/atmos{ - anchored = 1; - id = "cutter_gun_holo"; - locked = 1; - dir = 1 - }, -/obj/machinery/door/poddoor{ - id = "cutter_gun_hatch"; - dir = 4 - }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/security/range) -"FU" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/ship/cargo) -"FV" = ( -/obj/effect/decal/fakelattice, -/obj/structure/salvageable/computer{ - dir = 4; - pixel_x = -1 - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"FW" = ( -/obj/item/stock_parts/subspace/filter{ - pixel_x = -7; - pixel_y = -13 - }, -/obj/item/stock_parts/subspace/crystal, -/obj/item/stock_parts/subspace/crystal{ - pixel_x = 8; - pixel_y = -9 - }, -/obj/item/stock_parts/subspace/crystal{ - pixel_x = 1; - pixel_y = -4 - }, -/obj/item/stock_parts/subspace/crystal{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/decal/cleanable/blood/gibs/body{ - pixel_y = -13 - }, -/turf/open/floor/plating/airless{ - icon_state = "plating_rust" - }, -/area/ship/maintenance/port) -"Gf" = ( -/obj/machinery/computer/secure_data/syndie{ - layer = 3.0; - pixel_y = 4 - }, -/obj/effect/turf_decal/techfloor, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_y = 2; - pixel_x = 8 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"Gl" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/bin, -/obj/item/flashlight, -/obj/item/trash/candy, -/obj/item/trash/boritos{ - pixel_y = -3 - }, -/obj/item/taperecorder, -/obj/item/switchblade, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"Gn" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/caution, -/obj/effect/decal/cleanable/oil/streak, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/communications) -"Gp" = ( -/obj/structure/window/reinforced/spawner, -/obj/item/trash/cheesie{ - pixel_x = -4 - }, -/obj/machinery/conveyor{ - dir = 8; - id = "cutter_conveyor" - }, -/turf/open/floor/engine/hull/reinforced/interior, -/area/ship/engineering/incinerator) -"Gq" = ( -/turf/closed/wall/r_wall/rust, -/area/ship/bridge) -"Gr" = ( -/obj/structure/chair/comfy/grey/directional/west, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/green, -/area/ship/crew/office) -"Gw" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/highsecurity{ - name = "Master At Arm's Office"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel, -/area/ship/security) -"Gz" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning/corner, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/cargo) -"GE" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/maintenance/fore) -"GF" = ( -/obj/effect/turf_decal/techfloor, -/obj/structure/closet/wall/directional/south{ - icon_door = "yellow_wall"; - name = "engineering closet" - }, -/obj/item/clothing/suit/toggle/industrial, -/obj/item/clothing/under/utility, -/obj/item/clothing/under/utility/skirt, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/clothing/shoes/workboots{ - pixel_y = -7 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/item/storage/belt/utility/full/engi, -/obj/item/clothing/glasses/meson{ - pixel_y = -6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"GH" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/engineering/communications) -"GL" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/bridge) -"GM" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/engineering/incinerator) -"GO" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/fore) -"GQ" = ( -/turf/closed/wall/r_wall/rust, -/area/ship/engineering/atmospherics) -"GS" = ( -/turf/closed/wall/r_wall/rust, -/area/ship/engineering/engine) -"GU" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"GV" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/critter, -/obj/item/stack/sheet/animalhide/human, -/obj/item/stack/sheet/animalhide/human{ - pixel_x = -3; - pixel_y = -6 - }, -/obj/item/stack/sheet/animalhide/human{ - pixel_y = 6; - pixel_x = -4 - }, -/obj/item/reagent_containers/food/snacks/meat/slab/human, -/obj/item/reagent_containers/food/snacks/meat/slab/human, -/obj/item/reagent_containers/food/snacks/meat/slab/human, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"GY" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/showcase/cyborg/old, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/security) -"Hc" = ( -/obj/item/stock_parts/subspace/ansible{ - pixel_x = 4; - pixel_y = 7 - }, -/obj/item/stock_parts/subspace/filter{ - pixel_x = 7; - pixel_y = -13 - }, -/obj/item/stock_parts/subspace/filter{ - pixel_x = -7 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/ansible{ - pixel_x = 10; - pixel_y = -9 - }, -/turf/open/floor/plating/airless{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/port) -"Hd" = ( -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8; - min_temperature = 1; - target_temperature = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Hf" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/chair{ - dir = 1; - pixel_x = 6; - pixel_y = 7 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Hi" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth/grey, -/obj/item/bedsheet/dorms, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/wood/walnut, -/area/ship/crew) -"Hm" = ( -/obj/structure/bed{ - icon_state = "dirty_mattress" - }, -/obj/item/bedsheet/grey, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Hs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/ship/hallway/fore) -"Ht" = ( -/obj/structure/bed/dogbed, -/obj/effect/decal/cleanable/molten_object/large{ - pixel_x = 19; - pixel_y = -2 - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"Hz" = ( -/obj/structure/curtain/bounty, -/obj/effect/decal/cleanable/greenglow/ecto, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating/airless{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/port) -"HD" = ( -/obj/structure/bed, -/obj/item/bedsheet/dorms, -/obj/structure/curtain/cloth/grey, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/item/paicard{ - pixel_x = -7; - pixel_y = 4 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew) -"HE" = ( -/obj/structure/chair/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/concrete/tiles, -/area/ship/crew) -"HG" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/turf_decal/corner_techfloor_gray{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/engineering/engine) -"HI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/engineering/incinerator) -"HL" = ( -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/obj/structure/sign/poster/contraband/smoke{ - pixel_x = -32; - pixel_y = -32 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - dir = 4; - pixel_x = -1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"HM" = ( -/obj/structure/closet/secure_closet{ - icon_door = "tac"; - icon_state = "tac"; - name = "boarding tools locker"; - req_access_txt = "3" - }, -/obj/effect/turf_decal/techfloor, -/obj/item/storage/backpack/duffelbag/syndie/x4, -/obj/item/crowbar/power{ - pixel_y = -4 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"HN" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/cargo) -"HR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/maintenance/central) -"HV" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/item/soap, -/turf/open/floor/plating/catwalk_floor, -/area/ship/security/armory) -"HW" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/closet/crate, -/obj/item/storage/box/ingredients/vegetarian, -/obj/item/storage/box/ingredients/carnivore{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/storage/box/ingredients/exotic{ - pixel_x = 7 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Ij" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Bridge"; - req_access_txt = "19" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/fore) -"Ik" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_windows_general" - }, -/turf/open/floor/plating, -/area/ship/crew) -"Im" = ( -/turf/closed/wall/r_wall, -/area/ship/maintenance/fore) -"In" = ( -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"It" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/cargo) -"Iu" = ( -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "0-1" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Iv" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/ship/security) -"IB" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/carpet/red, -/area/ship/crew/canteen) -"IC" = ( -/obj/structure/table/wood/reinforced, -/obj/item/storage/fancy/cigarettes/cigars{ - pixel_x = 4; - pixel_y = 1 - }, -/obj/item/storage/fancy/cigarettes/cigars{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/fancy/cigarettes/cigars{ - pixel_x = 4; - pixel_y = 7 - }, -/obj/item/toy/cards/deck/cas/black{ - pixel_x = -14; - pixel_y = 3 - }, -/obj/item/toy/cards/deck/cas{ - pixel_x = -11 - }, -/obj/item/lighter{ - pixel_x = 12; - pixel_y = -8 - }, -/turf/open/floor/concrete/reinforced, -/area/ship/crew) -"ID" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/item/radio/intercom/directional/south, -/obj/machinery/light_switch{ - pixel_x = -12; - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"IE" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/table/wood/reinforced, -/obj/item/newspaper{ - pixel_x = -5; - pixel_y = -1 - }, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = 9; - pixel_y = -2 - }, -/obj/item/newspaper{ - pixel_x = -5; - pixel_y = 2 - }, -/obj/item/newspaper{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/machinery/light/directional/west, -/obj/structure/sign/poster/contraband/space_cola{ - pixel_x = -32 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"IF" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 10 - }, -/obj/machinery/telecomms/broadcaster, -/obj/item/stock_parts/subspace/analyzer, -/obj/item/stock_parts/subspace/analyzer{ - pixel_x = 7; - pixel_y = -7 - }, -/obj/item/stock_parts/subspace/analyzer{ - pixel_x = 2; - pixel_y = -5 - }, -/obj/item/radio/intercom/directional/west, -/obj/machinery/light_switch{ - pixel_x = -21; - dir = 4; - pixel_y = 7 - }, -/obj/item/stack/cable_coil/cut/yellow, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/maintenance/port) -"II" = ( -/obj/effect/decal/cleanable/insectguts, -/obj/structure/catwalk/over, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"IL" = ( -/turf/closed/wall/rust, -/area/ship/maintenance/fore) -"IM" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_windows_general" - }, -/turf/open/floor/plating, -/area/ship/hallway/fore) -"IP" = ( -/obj/effect/turf_decal/number/two, -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/security/armory) -"IS" = ( -/obj/structure/window/reinforced/spawner/north, -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "cutter_gun_hatch"; - name = "Gun Shutters"; - pixel_x = -8; - pixel_y = 5; - dir = 8 - }, -/obj/machinery/button/shieldwallgen{ - id = "cutter_gun_holo"; - pixel_x = -9; - dir = 8; - pixel_y = -3 - }, -/obj/machinery/button/massdriver{ - id = "cutter_gun_driver"; - name = "Launch Control"; - pixel_y = -3; - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/security/range) -"IX" = ( -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/glowstick, -/obj/item/stack/cable_coil/cut/yellow, -/obj/item/stack/rods{ - pixel_x = 7; - pixel_y = -9 - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"Ja" = ( -/obj/structure/table/reinforced, -/obj/item/radio/intercom/directional/south, -/obj/item/reagent_containers/food/drinks/coffee{ - pixel_x = -8; - pixel_y = 3 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"Jb" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Jd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Jf" = ( -/obj/item/grenade/empgrenade{ - pixel_x = -9 - }, -/obj/item/grenade/empgrenade{ - pixel_x = -6; - pixel_y = 3 - }, -/obj/item/grenade/syndieminibomb{ - pixel_x = 7; - pixel_y = -6 - }, -/obj/item/grenade/syndieminibomb{ - pixel_x = 2; - pixel_y = -1 - }, -/obj/structure/rack, -/obj/item/grenade/spawnergrenade/manhacks{ - pixel_y = -5; - pixel_x = -1 - }, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/range) -"Jk" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"Jl" = ( -/obj/effect/turf_decal/industrial/traffic, -/obj/effect/turf_decal/industrial/traffic{ - dir = 1 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Jp" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/decal/cleanable/wrapping, -/obj/effect/decal/cleanable/cobweb{ - layer = 5 - }, -/obj/machinery/jukebox, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/machinery/light/directional/west, -/obj/machinery/light_switch{ - pixel_x = 12; - pixel_y = 23 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Jr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 8 - }, -/area/ship/security/range) -"Jt" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/bag/plants/portaseeder, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"Jx" = ( -/obj/machinery/vending/cola/random, -/obj/structure/sign/directions/command{ - dir = 4; - pixel_y = 42 - }, -/obj/structure/sign/directions/engineering{ - pixel_y = 21; - dir = 8 - }, -/obj/structure/sign/directions/medical{ - pixel_y = 28; - dir = 1 - }, -/obj/structure/sign/directions/security{ - pixel_y = 35; - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Jy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"JE" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/window/reinforced/spawner/west, -/obj/structure/frame/machine, -/turf/open/floor/concrete/slab_4, -/area/ship/crew/canteen/kitchen) -"JK" = ( -/turf/closed/wall, -/area/ship/security/armory) -"JO" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/light/directional/south, -/obj/structure/sign/departments/botany{ - pixel_x = 32 - }, -/obj/structure/salvageable/seed, -/turf/open/floor/concrete/slab_1, -/area/ship/crew/canteen/kitchen) -"JQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - pixel_y = 22; - pixel_x = 6 - }, -/obj/structure/mirror{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew) -"JS" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/rack, -/obj/item/storage/toolbox/electrical, -/obj/item/storage/belt/utility/full/engi, -/obj/item/clothing/glasses/welding{ - pixel_y = 5 - }, -/obj/item/multitool{ - pixel_x = 9 - }, -/obj/item/geiger_counter{ - pixel_x = 1; - pixel_y = -6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door{ - id = "cutter_engines_lockdown"; - name = "Engine Shutters"; - pixel_y = -21; - pixel_x = -10; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 9 - }, -/turf/open/floor/plating/rust, -/area/ship/engineering) -"JV" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/confetti, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"JX" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew) -"JZ" = ( -/obj/structure/bed, -/obj/item/bedsheet/hos, -/obj/structure/curtain{ - color = "#5c131b" - }, -/obj/machinery/light/directional/east, -/obj/item/radio/intercom/directional/north{ - pixel_y = 22; - pixel_x = 5 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/carpet/black, -/area/ship/security) -"Kb" = ( -/turf/closed/wall, -/area/ship/crew/canteen/kitchen) -"Ke" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Kh" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/glass, -/obj/structure/sign/departments/security{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Kk" = ( -/obj/effect/turf_decal/atmos/air{ - dir = 4 - }, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"Kl" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Kp" = ( -/obj/structure/girder, -/obj/effect/decal/cleanable/wrapping, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Kq" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"Kt" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/rust, -/area/ship/security) -"Ku" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood/end{ - dir = 4 - }, -/obj/machinery/light/directional/east, -/obj/item/radio/intercom/directional/south, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/engineering/incinerator) -"Kw" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_y = -4; - pixel_x = -28 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/engineering/communications) -"Kx" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall/directional/south{ - name = "Utility Closet" - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/radio/old{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/flashlight, -/turf/open/floor/concrete/tiles, -/area/ship/crew) -"Ky" = ( -/obj/machinery/power/supermatter_crystal/shard/engine, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"KE" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/hole{ - dir = 8 - }, -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6"; - pixel_y = 14 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"KJ" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/decal/fakelattice{ - color = "#808080" - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/engineering/atmospherics) -"KM" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/effect/turf_decal/steeldecal/steel_decals3{ - dir = 10; - pixel_x = 16 - }, -/obj/effect/decal/cleanable/plastic, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/engineering/electrical) -"KN" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/wood/walnut, -/area/ship/crew) -"KO" = ( -/obj/structure/chair/office{ - name = "tactical swivel chair"; - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 5 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"KP" = ( -/turf/closed/wall/rust, -/area/ship/engineering) -"KR" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/rack, -/obj/item/storage/firstaid/advanced{ - pixel_x = 5 - }, -/obj/item/stack/medical/bruise_pack/herb, -/obj/item/stack/medical/ointment/herb{ - pixel_x = -6; - pixel_y = -8 - }, -/obj/item/sensor_device{ - pixel_x = -9; - pixel_y = -1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/medical) -"KT" = ( -/obj/structure/railing{ - dir = 4; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/effect/turf_decal/steeldecal/steel_decals3{ - dir = 1; - pixel_x = -16 - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/engineering/electrical) -"KW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/engine/plasma, -/area/ship/engineering/incinerator) -"KY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"Lc" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Ld" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/stock_parts/micro_laser{ - pixel_x = 10; - pixel_y = 7 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ship/maintenance/fore) -"Le" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"Lf" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/syringe{ - pixel_x = 3 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 7 - }, -/obj/structure/chair/office{ - dir = 8; - name = "tactical swivel chair" - }, -/obj/effect/mob_spawn/human/corpse/frontier, -/turf/open/floor/plating/rust, -/area/ship/maintenance/fore) -"Lg" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Lj" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/glass{ - dir = 8; - pixel_y = 1; - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/turf/open/floor/plating/rust, -/area/ship/engineering/atmospherics) -"Lm" = ( -/obj/item/stock_parts/subspace/ansible{ - pixel_x = -7 - }, -/obj/effect/decal/fakelattice{ - icon_state = "lattice-1" - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/ore/salvage/scrapsilver/five, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"Ln" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 6 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Lq" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass{ - dir = 8; - pixel_y = -10; - color = "#808080" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_general_lockdown"; - name = "Lockdown Shutters"; - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"Ls" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Lx" = ( -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - dir = 4; - pixel_x = -1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/structure/plaque/static_plaque/golden/captain{ - pixel_y = 29 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Lz" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating, -/area/ship/hallway/central) -"LA" = ( -/obj/effect/turf_decal/atmos/nitrogen{ - dir = 8 - }, -/turf/open/floor/engine/n2, -/area/ship/engineering/atmospherics) -"LB" = ( -/turf/closed/wall, -/area/ship/engineering) -"LE" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/caution, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/communications) -"LH" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/spline/fancy/opaque/black, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"LQ" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"LT" = ( -/obj/machinery/door/airlock/external, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"LU" = ( -/obj/effect/turf_decal/corner_techfloor_grid/full{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/structure/closet/wall/blue/directional/east{ - name = "Bridge Officer's locker" - }, -/obj/item/clothing/shoes/workboots, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/under/rank/security/officer/frontier/officer, -/obj/item/clothing/head/beret/sec/frontier, -/obj/item/clothing/neck/cloak/qm, -/obj/item/clothing/accessory/holster, -/obj/item/clothing/glasses/hud/diagnostic, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/item/melee/transforming/energy/sword/saber/pirate/red, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"LV" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/atmos{ - name = "Engine Room"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"LZ" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/flashlight/lamp{ - pixel_x = -8; - pixel_y = 13 - }, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = -5 - }, -/obj/item/clipboard{ - pixel_x = -4; - pixel_y = -8 - }, -/obj/item/pen{ - pixel_x = -6; - pixel_y = -4 - }, -/obj/item/phone{ - pixel_x = 7; - pixel_y = 10 - }, -/obj/machinery/light_switch{ - pixel_x = -22; - dir = 4; - pixel_y = 8 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"Mb" = ( -/obj/docking_port/stationary{ - height = 15; - width = 15; - dwidth = 7; - name = "main ember dock" - }, -/turf/template_noop, -/area/template_noop) -"Mf" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 8 - }, -/area/ship/bridge) -"Mh" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/multitool{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ - dir = 8; - piping_layer = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"Mj" = ( -/obj/effect/decal/cleanable/wrapping, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"Ml" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Mn" = ( -/obj/structure/closet/secure_closet{ - icon_state = "sec"; - name = "equipment locker"; - req_access_txt = "1" - }, -/obj/effect/turf_decal/techfloor, -/obj/item/clothing/mask/bandana/black{ - pixel_x = 1; - pixel_y = -4 - }, -/obj/item/clothing/mask/bandana/black{ - pixel_x = 1; - pixel_y = -4 - }, -/obj/item/clothing/mask/bandana/black{ - pixel_x = 1; - pixel_y = -4 - }, -/obj/item/clothing/mask/gas/sechailer/balaclava, -/obj/item/clothing/mask/gas/sechailer/balaclava, -/obj/item/clothing/mask/gas/sechailer/balaclava, -/obj/item/storage/belt/military, -/obj/item/storage/belt/military, -/obj/item/storage/belt/military/army, -/obj/item/storage/belt/military/army, -/obj/item/clothing/head/helmet/old{ - pixel_x = 7 - }, -/obj/item/clothing/head/helmet/old{ - pixel_x = 7; - pixel_y = -4 - }, -/obj/item/clothing/suit/armor/riot, -/obj/machinery/light_switch{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Mo" = ( -/obj/effect/turf_decal/industrial/traffic, -/obj/effect/turf_decal/industrial/traffic{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Ms" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_bridge_window"; - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/bridge) -"Mt" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/structure/sign/poster/contraband/d_day_promo{ - pixel_y = -32 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_general_lockdown"; - name = "Lockdown Shutters"; - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"Mu" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/ship/security) -"Mv" = ( -/turf/closed/wall, -/area/ship/medical) -"Mx" = ( -/obj/structure/bed, -/obj/item/bedsheet/dorms, -/obj/structure/curtain/cloth/grey, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/carpet/red_gold, -/area/ship/crew) -"Mz" = ( -/obj/structure/closet/crate/bin, -/obj/item/trash/syndi_cakes, -/obj/item/trash/plate, -/obj/item/trash/candy, -/obj/item/trash/waffles, -/obj/item/flashlight, -/obj/item/seeds/chili{ - pixel_y = -7; - pixel_x = -2 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plating, -/area/ship/hallway/central) -"MF" = ( -/turf/closed/wall/rust, -/area/ship/crew/canteen/kitchen) -"ML" = ( -/obj/effect/turf_decal/techfloor, -/obj/item/kirbyplants{ - icon_state = "plant-22"; - pixel_x = -10 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"MO" = ( -/obj/effect/turf_decal/siding/wood/end{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/conveyor_switch/oneway{ - id = "cutter_conveyor" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken3" - }, -/area/ship/engineering/incinerator) -"MQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass{ - pixel_x = 9; - pixel_y = -11 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"MS" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-7" - }, -/turf/open/floor/plating/airless{ - icon_state = "foam_plating" - }, -/area/ship/maintenance/port) -"MW" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/rack, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/pickaxe/rusted, -/obj/item/pickaxe/drill, -/obj/item/pickaxe/drill, -/obj/machinery/button/door{ - id = "cutter_cargo_shutters"; - name = "Cargo Shutters"; - pixel_y = -23; - dir = 1 - }, -/obj/machinery/button/shieldwallgen{ - id = "cutter_cargo"; - pixel_x = -8; - pixel_y = -22; - dir = 1 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Nb" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer4{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/ship/engineering/incinerator) -"Nc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Nj" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 10 - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Nn" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/structure/chair/comfy/grey/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/security) -"No" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"Np" = ( -/obj/structure/catwalk/over, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"Nr" = ( -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Nx" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Ny" = ( -/obj/effect/turf_decal/corner/opaque/yellow/half{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/loading{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plating, -/area/ship/cargo) -"Nz" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 5 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = -2 - }, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/canteen/kitchen) -"NC" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"NE" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/curtain/bounty, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/wood/walnut, -/area/ship/crew) -"NI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/window/reinforced/spawner/west, -/obj/structure/window/reinforced/spawner/east, -/obj/structure/grille, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"NJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/medical) -"NM" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/radio/intercom/wideband/table{ - dir = 8; - pixel_x = -4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"NW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/hallway/fore) -"NX" = ( -/obj/effect/turf_decal/trimline/opaque/red/line{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 31 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"NZ" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7, -/obj/effect/decal/cleanable/glass{ - pixel_y = -8; - pixel_x = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"Oc" = ( -/turf/closed/wall/rust, -/area/ship/engineering/atmospherics) -"Oh" = ( -/obj/effect/decal/cleanable/greenglow{ - color = "#808080" - }, -/obj/machinery/airalarm/directional/north, -/obj/structure/catwalk/over, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"Oi" = ( -/obj/structure/window/reinforced/spawner, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/mass_driver{ - dir = 8; - id = "cutter_disposals" - }, -/turf/open/floor/engine/hull/reinforced/interior, -/area/ship/engineering/incinerator) -"Oj" = ( -/obj/machinery/door/airlock/mining{ - name = "Cargo Bay" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/cargo) -"On" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/curtain/bounty, -/turf/open/floor/wood/walnut, -/area/ship/crew) -"Oq" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/garbage, -/obj/effect/decal/cleanable/food/flour, -/obj/item/reagent_containers/glass/bucket/wooden{ - pixel_y = -5; - pixel_x = -8 - }, -/obj/item/clothing/suit/longcoat/chemist, -/obj/item/clothing/head/beret/chem{ - pixel_y = -9; - pixel_x = 4 - }, -/obj/structure/sink/kitchen{ - dir = 4; - pixel_x = -12 - }, -/turf/open/floor/plating, -/area/ship/maintenance/fore) -"Ou" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"Ox" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/clothing/head/hardhat/red/upgraded{ - pixel_x = 8; - pixel_y = -1 - }, -/obj/machinery/jukebox/boombox{ - pixel_y = 5 - }, -/obj/machinery/atmospherics/components/binary/pump, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"Oy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/old, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/carpet/red_gold, -/area/ship/crew) -"OC" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/ship/hallway/central) -"OL" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/structure/sign/poster/contraband/hacking_guide{ - pixel_y = -32; - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"OM" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/sign/poster/contraband/have_a_puff{ - pixel_y = -32 - }, -/turf/open/floor/carpet/green, -/area/ship/crew/office) -"ON" = ( -/obj/effect/turf_decal/techfloor, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"OP" = ( -/obj/effect/turf_decal/siding/wideplating/dark, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"OW" = ( -/obj/structure/rack, -/obj/item/clothing/shoes/magboots{ - pixel_x = -5; - pixel_y = 1 - }, -/obj/item/clothing/shoes/magboots{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/radio/intercom/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/communications) -"Pa" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plating/rust, -/area/ship/security) -"Pb" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"Pf" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"Pk" = ( -/obj/effect/turf_decal/trimline/opaque/red/line{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/decal/cleanable/glass, -/obj/structure/chair{ - dir = 4; - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/reagent_containers/food/drinks/soda_cans/sodawater{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/machinery/light_switch{ - dir = 4; - pixel_y = 12; - pixel_x = -20 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"Pl" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_general_lockdown"; - name = "Lockdown Shutters"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Pn" = ( -/obj/structure/closet/wall/red/directional/west{ - name = "Ammo locker" - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/hole{ - dir = 8 - }, -/obj/item/ammo_box/c45_speedloader{ - pixel_y = -3 - }, -/obj/item/ammo_box/c45_speedloader{ - pixel_y = -1; - pixel_x = 1 - }, -/obj/item/storage/box/lethalshot{ - pixel_x = -3 - }, -/obj/item/storage/box/lethalshot{ - pixel_y = 2; - pixel_x = -4 - }, -/obj/item/ammo_box/magazine/uzim9mm{ - pixel_y = -4 - }, -/obj/item/ammo_box/magazine/uzim9mm, -/obj/item/ammo_box/c45_speedloader{ - pixel_y = -3 - }, -/obj/item/ammo_box/c45_speedloader{ - pixel_y = -5; - pixel_x = -1 - }, -/obj/item/ammo_box/magazine/illestren_a850r, -/obj/item/ammo_box/magazine/illestren_a850r, -/obj/item/storage/toolbox/ammo/a850r{ - pixel_y = -6; - pixel_x = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Ps" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"Pv" = ( -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold4w/orange, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Pw" = ( -/obj/machinery/suit_storage_unit/inherit/industrial, -/obj/machinery/button/door{ - id = "cutter_ce_lockdown"; - name = "Window Shutters"; - pixel_y = 23; - pixel_x = -10 - }, -/obj/item/clothing/mask/gas, -/obj/item/clothing/suit/space/hardsuit/engine/elite, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"PC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"PE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen/kitchen) -"PG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/circuitboard/machine/telecomms/message_server{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/circuitboard/machine/telecomms/relay, -/obj/item/stack/cable_coil/cut/yellow, -/obj/item/stack/rods, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"PJ" = ( -/obj/effect/turf_decal/trimline/opaque/red/corner{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4; - layer = 4.1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"PP" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/borderfloorblack/corner{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"PX" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"PY" = ( -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/machinery/power/rad_collector/anchored, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Qb" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/obj/item/tank/internals/plasma/full, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Qe" = ( -/obj/item/stock_parts/subspace/transmitter, -/obj/item/stock_parts/subspace/transmitter{ - pixel_x = -5; - pixel_y = -7 - }, -/obj/item/stock_parts/subspace/transmitter{ - pixel_x = 1; - pixel_y = -4 - }, -/obj/item/stock_parts/subspace/transmitter{ - pixel_x = 3; - pixel_y = -8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/stock_parts/subspace/transmitter{ - pixel_x = -5; - pixel_y = -7 - }, -/obj/item/stock_parts/subspace/transmitter{ - pixel_x = 1; - pixel_y = -4 - }, -/turf/open/floor/plating/airless{ - icon_state = "plating_rust" - }, -/area/ship/maintenance/port) -"Qi" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/item/ammo_casing/shotgun/laserscatter{ - pixel_x = -7; - pixel_y = -8 - }, -/obj/item/ammo_casing/shotgun/laserscatter{ - pixel_x = -4; - pixel_y = -6 - }, -/obj/item/ammo_casing/shotgun/stunslug, -/obj/item/ammo_casing/shotgun/stunslug{ - pixel_x = 3; - pixel_y = -4 - }, -/obj/item/gun/ballistic/shotgun/automatic/dual_tube{ - pixel_y = 2 - }, -/obj/item/gun/ballistic/shotgun/doublebarrel{ - pixel_y = -4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"Qk" = ( -/obj/machinery/door/airlock/hatch{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/crew) -"Qs" = ( -/turf/open/floor/plasteel/stairs{ - icon = 'icons/obj/stairs.dmi'; - dir = 8 - }, -/area/ship/security/armory) -"Qv" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/borderfloorblack{ - dir = 1 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/item/radio/intercom/wideband/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"Qw" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 8 - }, -/obj/structure/sign/warning/firingrange{ - pixel_x = -32 - }, -/obj/machinery/light/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"Qx" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"Qz" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/purple/hidden{ - dir = 1 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/ship/engineering/incinerator) -"QC" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 8 - }, -/obj/item/tank/internals/plasma/full, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"QH" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/emcloset/wall/directional/west, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"QK" = ( -/turf/closed/wall, -/area/ship/maintenance/port) -"QP" = ( -/turf/open/floor/engine/o2, -/area/ship/engineering/atmospherics) -"QR" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Ra" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Re" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/security/range) -"Rf" = ( -/obj/structure/catwalk, -/obj/item/kirbyplants{ - icon_state = "plant-22"; - pixel_x = -10; - pixel_y = 21 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/engineering/communications) -"Rn" = ( -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 5 - }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 10 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central2{ - dir = 1; - pixel_y = -2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Rs" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/decal/fakelattice{ - color = "#808080" - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/effect/decal/cleanable/insectguts{ - color = "#808080" - }, -/obj/effect/decal/cleanable/wrapping{ - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/elevatorshaft{ - color = "#808080" - }, -/area/ship/engineering/atmospherics) -"RB" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"RP" = ( -/obj/machinery/door/window/brigdoor/northleft{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/tech, -/area/ship/security/range) -"RQ" = ( -/obj/effect/decal/cleanable/sprayweb, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"RR" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-55" - }, -/turf/open/floor/plating/airless{ - icon_state = "foam_plating" - }, -/area/ship/maintenance/port) -"RS" = ( -/obj/machinery/door/poddoor{ - id = "pirate_cutter_escape"; - dir = 4 - }, -/obj/structure/barricade/wooden/crude{ - layer = 3.1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/office) -"RT" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/hyper{ - pixel_y = -2; - pixel_x = -6 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - pixel_y = 22; - pixel_x = -12 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"RW" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/engineering/incinerator) -"RX" = ( -/obj/structure/bookcase/random/fiction, -/obj/machinery/light_switch{ - pixel_x = 6; - pixel_y = 22 - }, -/obj/item/radio/intercom/directional/north{ - pixel_x = -8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/crew/office) -"RY" = ( -/obj/effect/spawner/lootdrop/salvage_capacitor, -/obj/item/stack/cable_coil/cut/yellow, -/obj/item/stack/rods{ - pixel_x = 7 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/ship/maintenance/port) -"Sa" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/engineering/atmospherics) -"Sb" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/door/airlock/wood{ - req_access_txt = "20"; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/office) -"Sc" = ( -/obj/structure/chair/office{ - dir = 1; - name = "tactical swivel chair" - }, -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"Sk" = ( -/obj/structure/sign/warning/deathsposal{ - pixel_y = 32 - }, -/obj/item/trash/can, -/obj/item/trash/chips{ - pixel_x = 9; - pixel_y = 5 - }, -/obj/machinery/conveyor{ - dir = 8; - id = "cutter_conveyor" - }, -/obj/machinery/door/window/brigdoor/southright{ - req_access_txt = "1" - }, -/turf/open/floor/engine/hull/reinforced/interior, -/area/ship/engineering/incinerator) -"Sq" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Sr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Ss" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/communications) -"SA" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8; - color = "#808080" - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/structure/frame/computer{ - anchored = 1; - dir = 8 - }, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/cargo) -"SB" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/engineering/atmospherics) -"SE" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood/walnut{ - icon_state = "wood-broken4" - }, -/area/ship/crew) -"SF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"SH" = ( -/turf/closed/wall, -/area/ship/engineering/atmospherics) -"SK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"SM" = ( -/obj/structure/foamedmetal, -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"SO" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "tactical chair" - }, -/obj/effect/turf_decal/steeldecal/steel_decals3{ - dir = 6 - }, -/obj/effect/turf_decal/steeldecal/steel_decals3, -/obj/effect/turf_decal/steeldecal/steel_decals_central4{ - dir = 8 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"SP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_general_lockdown"; - name = "Lockdown Shutters" - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"SQ" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/light_switch{ - pixel_x = -22; - dir = 4; - pixel_y = 6 - }, -/obj/item/radio/intercom/directional/west, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = 12 - }, -/turf/open/floor/plating{ - icon_state = "foam_plating" - }, -/area/ship/hallway/central) -"SR" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"SW" = ( -/obj/structure/fireaxecabinet{ - pixel_y = 27 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/engineering/incinerator) -"Td" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/hole/right{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/electrical) -"Tk" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/east, -/obj/machinery/door/poddoor{ - id = "cutter_engines_lockdown"; - name = "Engine Blast Door"; - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Tn" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/obj/item/tank/internals/plasma/full, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"To" = ( -/turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ship/crew/canteen/kitchen) -"Tp" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_y = 5 - }, -/obj/item/kitchen/knife{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/kitchen/rollingpin, -/obj/item/kitchen/knife/butcher{ - pixel_x = -1 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/crew/canteen/kitchen) -"Tw" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/ship/maintenance/fore) -"Tx" = ( -/obj/machinery/biogenerator, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew/canteen/kitchen) -"TI" = ( -/turf/closed/wall/r_wall, -/area/ship/security/armory) -"TO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_general_lockdown"; - name = "Lockdown Shutters" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"TS" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/concrete/tiles, -/area/ship/crew) -"TW" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/item/reagent_containers/glass/bucket, -/obj/effect/turf_decal/weather/dirt{ - dir = 6 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/ship/maintenance/central) -"TY" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"Uj" = ( -/obj/structure/table/wood/reinforced, -/obj/item/areaeditor/shuttle{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/reagent_containers/food/drinks/coffee{ - pixel_x = 10; - pixel_y = 3 - }, -/obj/item/storage/photo_album{ - pixel_x = -5; - pixel_y = 12 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/item/vibro_weapon, -/turf/open/floor/plasteel/tech, -/area/ship/crew/office) -"Uk" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass{ - pixel_y = -5; - pixel_x = -9 - }, -/turf/open/floor/wood, -/area/ship/security) -"Ul" = ( -/obj/effect/turf_decal/techfloor, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/extinguisher/advanced{ - pixel_x = 8; - pixel_y = 3 - }, -/obj/item/pipe_dispenser{ - pixel_y = -6 - }, -/obj/item/reagent_containers/glass/maunamug{ - pixel_x = -5; - pixel_y = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"Um" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/structure/closet/emcloset/wall/directional/west, -/obj/machinery/advanced_airlock_controller{ - pixel_y = 26 - }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/fore) -"Ut" = ( -/obj/structure/table/reinforced, -/obj/item/toy/figure/botanist{ - pixel_x = -9; - pixel_y = 7 - }, -/obj/item/spear/bonespear, -/obj/item/scythe, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/item/cultivator, -/obj/item/cultivator, -/turf/open/floor/plating, -/area/ship/maintenance/central) -"Uw" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/crew/office) -"Uz" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/chair/greyscale{ - dir = 8; - pixel_y = -7; - pixel_x = -3 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"UA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/fakelattice{ - icon_state = "lattice-9" - }, -/turf/open/floor/plating, -/area/ship/maintenance/port) -"UC" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/ship/cargo) -"UF" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/techfloor/orange{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/outline, -/obj/structure/sign/warning/explosives/alt{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"UH" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"UT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"UV" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 8 - }, -/obj/structure/sign/poster/official/build{ - pixel_y = 32 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/engineering/electrical) -"UX" = ( -/turf/closed/wall/r_wall/syndicate, -/area/ship/crew/canteen/kitchen) -"UY" = ( -/obj/item/stack/rods{ - pixel_x = 7 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Va" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_general_lockdown"; - name = "Lockdown Shutters" - }, -/turf/open/floor/mineral/plastitanium, -/area/ship/security/armory) -"Vb" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"Vh" = ( -/obj/machinery/light/directional/south, -/obj/structure/closet/crate/bin, -/obj/item/trash/energybar, -/obj/item/trash/candy, -/obj/item/trash/cheesie, -/obj/item/trash/pistachios{ - pixel_x = 5 - }, -/obj/item/flashlight/flare, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Vr" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"Vs" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-29" - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = 3; - pixel_y = -5 - }, -/obj/item/stack/ore/salvage/scrapgold/five, -/turf/open/floor/plating/airless{ - icon_state = "platingdmg3" - }, -/area/ship/maintenance/port) -"Vt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/arrows{ - pixel_y = 15 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plating/rust, -/area/ship/medical) -"Vu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/departments/cargo{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Vw" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/ship/engineering/incinerator) -"Vx" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_y = 15; - pixel_x = -10 - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_y = 13; - pixel_x = -7 - }, -/obj/item/reagent_containers/food/snacks/dough{ - pixel_x = 3 - }, -/obj/item/book/manual/chef_recipes{ - pixel_x = -4; - pixel_y = -2 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/canteen/kitchen) -"VA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/mafia_outfit, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"VB" = ( -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ship/security) -"VC" = ( -/obj/structure/railing/corner, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/stairs, -/area/ship/security) -"VD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on{ - dir = 8 - }, -/turf/open/floor/engine/n2, -/area/ship/engineering/atmospherics) -"VG" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/item/paper_bin{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/pen/red{ - pixel_x = -8; - pixel_y = 6 - }, -/obj/item/camera_bug{ - pixel_x = 2; - pixel_y = 10 - }, -/obj/machinery/recharger{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/clipboard{ - pixel_x = -10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"VI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"VL" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/east, -/obj/machinery/door/poddoor{ - id = "cutter_engines_lockdown"; - name = "Engine Blast Door"; - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"VN" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door{ - id = "cutter_engines_lockdown"; - name = "Engine Shutters"; - pixel_y = 9; - pixel_x = -23; - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/incinerator) -"VP" = ( -/obj/structure/guncase, -/obj/effect/turf_decal/techfloor, -/obj/item/gun/energy/taser, -/obj/structure/sign/poster/official/ion_carbine{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/armory) -"VU" = ( -/obj/effect/turf_decal/corner_techfloor_grid/full{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Wb" = ( -/obj/structure/bed, -/obj/item/bedsheet/dorms, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/structure/curtain/cloth/grey, -/obj/machinery/newscaster/directional/south, -/obj/item/toy/plush/beeplushie, -/turf/open/floor/carpet/green, -/area/ship/crew/office) -"Wc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass{ - pixel_y = 10 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_general_lockdown"; - name = "Lockdown Shutters" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Wd" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 8 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/purple/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"Wj" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Wm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/poster/random_contraband, -/obj/item/poster/random_contraband{ - pixel_y = -4 - }, -/obj/item/stock_parts/subspace/amplifier{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/stock_parts/subspace/amplifier{ - pixel_x = -5; - pixel_y = -1 - }, -/turf/open/floor/plating/airless{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/port) -"Wq" = ( -/obj/effect/turf_decal/techfloor, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-1" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Wt" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"WA" = ( -/obj/effect/turf_decal/atmos/oxygen{ - dir = 8 - }, -/turf/open/floor/engine/o2, -/area/ship/engineering/atmospherics) -"WH" = ( -/turf/closed/wall/rust, -/area/ship/crew) -"WK" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/grown/corn{ - pixel_y = 6 - }, -/obj/item/reagent_containers/food/snacks/grown/pumpkin{ - pixel_y = 6 - }, -/obj/item/reagent_containers/food/snacks/grown/carrot, -/obj/item/reagent_containers/food/snacks/grown/tomato, -/obj/item/radio/intercom/directional/south, -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/maintenance/central) -"WL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"WR" = ( -/obj/structure/table/wood/reinforced, -/obj/item/flashlight/lamp{ - pixel_x = -5; - pixel_y = 10 - }, -/obj/item/paper_bin{ - pixel_x = 7; - pixel_y = 2 - }, -/obj/item/pen{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/item/toy/cards/deck/tarot{ - pixel_x = -3; - pixel_y = 1 - }, -/turf/open/floor/concrete/reinforced, -/area/ship/crew) -"WV" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"Xd" = ( -/obj/structure/sink/puddle, -/obj/structure/flora/ausbushes/stalkybush{ - pixel_y = 6 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/grass, -/area/ship/maintenance/central) -"Xj" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4; - color = "#808080" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/east, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Xm" = ( -/obj/structure/catwalk, -/obj/item/weldingtool{ - pixel_x = 7; - pixel_y = 11 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/engineering/communications) -"Xn" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/purple/hidden, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Xp" = ( -/obj/item/stock_parts/subspace/ansible{ - pixel_x = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/rods{ - pixel_x = -7; - pixel_y = -2 - }, -/turf/open/floor/plating/airless, -/area/ship/maintenance/port) -"Xt" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8; - color = "#808080" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"Xu" = ( -/obj/effect/decal/cleanable/blood/tracks, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/airlock/medical{ - name = "Medbay" - }, -/turf/open/floor/plating, -/area/ship/medical) -"Xz" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/catwalk_floor, -/area/ship/crew) -"XA" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/red/line{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/security) -"XL" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ - dir = 1; - piping_layer = 4 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"XP" = ( -/obj/machinery/holopad/emergency/bar, -/obj/effect/turf_decal/box, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ship/crew/canteen/kitchen) -"XU" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/catwalk/over, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"XV" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 9 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 10 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/line, -/obj/effect/turf_decal/industrial/stand_clear, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"XZ" = ( -/obj/structure/chair/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = 12 - }, -/turf/open/floor/concrete/tiles, -/area/ship/crew) -"Yf" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/airlock/hatch{ - name = "The Plank" - }, -/turf/open/floor/plating, -/area/ship/engineering/incinerator) -"Yg" = ( -/obj/structure/bed/roller, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/greenglow, -/obj/structure/sign/poster/contraband/xenofauna_parasite{ - pixel_x = -32 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/medical) -"Yh" = ( -/obj/structure/curtain/bounty, -/obj/item/trash/chips, -/turf/open/floor/plating/airless{ - icon_state = "plating_rust" - }, -/area/ship/maintenance/port) -"Yj" = ( -/obj/effect/spawner/lootdrop/salvage_manipulator, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/range) -"Yk" = ( -/obj/item/stock_parts/subspace/treatment{ - pixel_x = 2; - pixel_y = -5 - }, -/obj/item/stock_parts/subspace/treatment{ - pixel_x = 5; - pixel_y = 8 - }, -/obj/item/stock_parts/subspace/treatment{ - pixel_x = -4; - pixel_y = -10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/cable_coil/cut/yellow, -/turf/open/floor/plating/airless{ - icon_state = "plating_rust" - }, -/area/ship/maintenance/port) -"Yn" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Ys" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/hallway/central) -"Yv" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_ce_lockdown" - }, -/turf/open/floor/plating, -/area/ship/engineering/communications) -"YB" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"YC" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"YG" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/bridge) -"YH" = ( -/obj/structure/rack, -/obj/item/storage/belt/utility/chief/full, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ship/engineering/communications) -"YR" = ( -/obj/effect/decal/fakelattice{ - icon_state = "lattice-3" - }, -/turf/open/floor/plating/airless{ - icon_state = "panelscorched" - }, -/area/ship/maintenance/port) -"YW" = ( -/obj/structure/janitorialcart, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/machinery/door/window/southleft{ - dir = 4 - }, -/obj/item/storage/box/mousetraps{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/item/soap/syndie, -/turf/open/floor/plating/rust, -/area/ship/maintenance/port) -"YX" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 4 - }, -/turf/open/floor/plating/foam, -/area/ship/cargo) -"YY" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/borderfloorblack/corner{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/contraband/space_cube{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/bridge) -"Zb" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/stock_parts/cell/high, -/obj/structure/window/reinforced/spawner/east, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/dark, -/area/ship/security/range) -"Zf" = ( -/obj/structure/catwalk/over/plated_catwalk, -/obj/effect/decal/cleanable/oil, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/purple/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ship/engineering) -"Zh" = ( -/obj/structure/railing{ - dir = 4; - layer = 4.1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 2 - }, -/obj/effect/turf_decal/spline/fancy/opaque/black{ - dir = 4 - }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 6; - pixel_x = -6 - }, -/obj/item/stack/sheet/mineral/plasma/twenty{ - pixel_x = -5; - pixel_y = -5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Zl" = ( -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/fore) -"Zn" = ( -/obj/effect/decal/cleanable/robot_debris/limb, -/obj/effect/decal/cleanable/vomit/old{ - pixel_x = 15 - }, -/obj/structure/sign/departments/medbay/alt{ - pixel_y = 32 - }, -/obj/item/stack/rods{ - pixel_x = -7; - pixel_y = -2 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plating/rust, -/area/ship/hallway/central) -"Zt" = ( -/obj/effect/turf_decal/techfloor{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/power/emitter{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/engine) -"Zw" = ( -/obj/structure/chair/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/concrete/tiles, -/area/ship/crew) -"Zy" = ( -/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium, -/obj/machinery/door/poddoor{ - id = "cutter_windows_general"; - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/crew/canteen/kitchen) -"ZB" = ( -/obj/effect/turf_decal/steeldecal/steel_decals10, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/turf_decal/steeldecal/steel_decals10{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/transparent/lightgrey/corner{ - dir = 8 - }, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/obj/effect/turf_decal/radiation, -/obj/machinery/pipedispenser, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"ZC" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door{ - id = "cutter_disposals_hatch"; - name = "Plank Opener"; - pixel_x = -1; - pixel_y = -23; - dir = 1 - }, -/obj/machinery/button/massdriver{ - id = "cutter_disposals"; - name = "disposals button"; - pixel_x = 7; - pixel_y = -22; - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/engineering/incinerator) -"ZK" = ( -/turf/closed/wall/r_wall, -/area/ship/crew) -"ZT" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cutter_bridge_lockdown"; - name = "Lockdown Shutters"; - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/fore) -"ZV" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"ZW" = ( -/obj/effect/turf_decal/spline/fancy/wood{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/robot_debris, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/turf/open/floor/carpet/red, -/area/ship/crew/canteen) -"ZX" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/reagent_containers/food/snacks/grown/tobacco/space, -/obj/item/reagent_containers/food/snacks/grown/tobacco/space{ - pixel_y = 3; - pixel_x = 3 - }, -/obj/item/clothing/mask/cigarette/pipe/cobpipe, -/turf/open/floor/carpet/nanoweave, -/area/ship/security) -"ZY" = ( -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/glass, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew) - -(1,1,1) = {" -ws -ws -ws -ws -ws -GM -lT -Bj -aO -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -fH -fH -fH -fH -ws -ws -ws -ws -ws -"} -(2,1,1) = {" -ws -ws -ws -ws -ws -GM -Oi -MO -nD -HI -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -Ds -Yv -LZ -qU -fH -ws -ws -ws -ws -ws -"} -(3,1,1) = {" -ws -ws -ws -ws -ws -GM -Sk -ZC -aO -wh -GM -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -Ds -Yv -YH -uO -oM -fH -ws -ws -ws -ws -ws -"} -(4,1,1) = {" -ws -ws -ws -ws -GM -GM -Gp -Vw -Yf -Ag -GM -mL -mL -GM -ws -ws -ws -ws -ws -ws -ws -Am -ld -ld -fH -Pw -Rf -Xm -zw -fH -fH -ws -ws -ws -ws -"} -(5,1,1) = {" -ws -ws -ws -ws -GM -GM -ru -Ku -aO -kG -GM -VL -VL -GM -RW -ws -ws -ws -ws -ws -nI -Am -Tk -Tk -fH -Dg -jq -AL -lu -Kw -fH -ws -ws -ws -ws -"} -(6,1,1) = {" -ws -ws -ws -ws -GM -aO -aO -aO -aO -SW -hq -Qz -oE -VN -GM -RW -ws -ws -ws -nI -Am -bx -Zf -JS -iC -zw -Ea -zw -zw -GH -fH -ws -ws -ws -ws -"} -(7,1,1) = {" -ws -ws -ws -GM -GM -to -lo -KW -wi -Mh -re -hm -eE -dP -EI -GM -eA -eA -eA -Am -dB -Xt -YB -eQ -zw -Ad -Gn -mJ -zw -zw -fH -fH -ws -ws -ws -"} -(8,1,1) = {" -ws -ws -ws -GM -to -to -to -Bw -wi -Ox -Ul -Db -aO -aO -lA -aO -FG -FG -FG -Am -uN -Xj -Ke -FF -bF -qT -cn -Ss -vh -wN -QH -LT -ws -ws -ws -"} -(9,1,1) = {" -ws -ws -zV -zV -El -GS -El -El -El -UF -uH -pc -oY -Kk -pd -oY -FM -Iu -Wq -LB -KP -KP -oy -LB -zw -EX -LE -OW -zw -kZ -fl -fH -ws -ws -ws -"} -(10,1,1) = {" -ws -ws -zV -Tn -QC -jk -bA -bG -El -aO -Dq -CP -GQ -kD -jA -oY -RT -pC -xx -fw -AQ -KM -GU -nA -gC -ed -ed -ed -WH -ed -ed -EG -EG -ws -ws -"} -(11,1,1) = {" -ws -ws -zV -pA -kT -aP -Wt -HG -Zt -aO -Nb -kt -oY -fu -fu -oY -Zh -ut -AU -gC -lq -al -Td -Fd -gC -WR -XZ -bI -HE -WH -dy -Xz -EG -ws -ws -"} -(12,1,1) = {" -ws -ws -zV -pZ -pZ -El -FC -Kl -oA -hl -FI -Wd -wQ -fX -Vr -iA -mY -EJ -Ey -gC -ah -KE -NZ -mz -gC -IC -dX -lf -Zw -ed -JQ -rJ -EG -ws -ws -"} -(13,1,1) = {" -ws -ws -zV -Ky -BI -oj -wm -qX -bt -LV -XV -tL -SB -Sa -JV -Xn -QR -Lj -nO -mh -em -ic -lV -GF -gC -eV -ku -TS -Kx -ed -ck -ed -EG -ws -ws -"} -(14,1,1) = {" -ws -ws -zV -ew -ew -El -jC -jF -PX -oY -ZB -fd -gb -Jk -XL -BH -ok -Ou -Gl -gC -sj -kb -zJ -nx -gC -HD -JX -cA -SE -On -cb -Hi -Ik -ws -ws -"} -(15,1,1) = {" -ws -ws -zV -kS -PY -lp -aL -Pv -DF -GQ -fu -fu -oY -fu -fu -oY -Rs -Ej -KJ -gC -UV -ho -No -tq -gC -Mx -wp -KN -CL -NE -nu -pn -Ik -ws -ws -"} -(16,1,1) = {" -ws -ws -zV -Qb -na -Bb -CF -Hd -GS -oY -rz -VD -oY -rW -As -oY -hS -ph -np -fw -sg -KT -cQ -FK -gC -tQ -Oy -kM -ZK -lz -Ak -ZK -EG -ws -ws -"} -(17,1,1) = {" -ws -df -df -GS -El -El -El -El -El -oY -LA -yo -oY -QP -WA -oY -SH -SH -Oc -gC -gC -gC -cE -fw -fw -ed -Qk -ed -ZK -Bz -kn -ZY -EG -EG -ws -"} -(18,1,1) = {" -ws -df -rm -vu -yG -Al -IF -rm -rm -oY -GQ -oY -oY -GQ -oY -oY -yq -Jd -rQ -Wc -Lc -mU -WL -zo -SQ -aQ -YC -Mz -lz -bh -sH -kx -ZK -EG -ws -"} -(19,1,1) = {" -ws -df -rm -SM -Cq -vc -FW -Qe -rm -rm -rg -vD -vX -aD -rg -uX -dc -eY -us -SP -Lz -Bq -FL -sa -BR -pj -Jy -hy -xk -xk -xk -xk -xk -Eb -ws -"} -(20,1,1) = {" -df -df -rm -QK -yx -uB -De -zH -PG -VA -um -DC -UH -bb -Fu -RQ -wo -Ys -Np -dF -aq -qw -iB -aZ -uD -sw -tT -vY -kk -lO -Jl -GV -fb -Eb -Eb -"} -(21,1,1) = {" -Pf -rF -yG -yx -qG -Hc -Wm -pD -Mv -Mv -zK -Mv -zK -Mv -zK -xO -vH -CV -II -ne -vg -ne -vt -ne -ne -Jx -BW -Vu -kk -ZV -fz -HW -Mo -MW -Eb -"} -(22,1,1) = {" -df -rF -rF -rm -IX -Ca -bV -RY -Mv -fM -zi -iN -fy -Mv -Mv -mU -tD -Nc -ne -ne -Ut -Et -iG -WK -ne -ge -sb -Ls -Oj -ce -tr -Ny -HN -CI -fQ -"} -(23,1,1) = {" -Dw -RR -rF -QK -ht -QK -QK -vG -Mv -KR -du -BD -cp -Yg -Mv -Zn -yJ -bg -ne -pT -DG -oa -ww -vz -HR -pO -zS -JE -wc -lm -Gz -UC -It -YX -mE -"} -(24,1,1) = {" -ws -tv -MS -FV -Lm -Xp -QK -Yk -zK -Dv -Vt -NJ -Bm -lR -Xu -zf -ch -qP -ne -Xd -yF -fo -cF -TW -ne -sR -xP -JO -kk -FU -fB -zY -oN -nB -Eb -"} -(25,1,1) = {" -ws -ws -jZ -Dy -YR -Eu -Vs -kf -Mv -CO -qQ -hw -Mv -zK -Mv -Oh -dM -Ah -rN -rN -AV -AV -AV -Kb -Kb -Kb -jG -Kb -kk -kk -kk -wZ -SA -Eb -mI -"} -(26,1,1) = {" -ws -ws -ws -ws -zn -vr -QK -NI -Mv -Mv -lH -pM -pM -ax -pM -XU -Sr -Kp -AV -Jp -oX -nM -IE -Kb -bZ -qK -xj -Jt -pQ -ID -Kb -Eb -Eb -mI -ws -"} -(27,1,1) = {" -ws -ws -ws -ws -ws -gK -yx -YW -rp -QK -pM -pM -er -Nn -jY -aS -SF -mq -hp -Jb -iw -IB -eG -pB -PE -Ab -Fx -xS -wd -yh -To -mI -ws -ws -ws -"} -(28,1,1) = {" -ws -ws -ws -ws -qf -DR -UA -KY -Yh -Ht -jY -wV -ni -Iv -Gw -Br -mS -Mj -AV -tX -FE -ZW -EC -sF -XP -uK -Vx -jI -vs -Au -To -ws -ws -ws -ws -"} -(29,1,1) = {" -ws -ws -ws -ws -ws -df -jv -CS -Hz -AG -jY -JZ -Uk -vo -pM -qr -iY -rG -AV -vE -vL -Hf -Ra -MF -Ek -Tp -Nz -uQ -Tx -To -UX -ws -ws -ws -ws -"} -(30,1,1) = {" -ws -ws -ws -ws -ws -Bp -ky -ky -pM -jY -pM -pM -jY -jY -pM -Pl -Lq -Mt -TI -TI -TI -jW -TI -TI -TI -TI -sy -Zy -Zy -UX -ws -ws -ws -ws -ws -"} -(31,1,1) = {" -ws -ws -ws -ws -ws -ws -ky -cr -bq -VC -PJ -bo -Pk -XA -VB -um -ys -UY -TI -Mn -kc -fm -By -mi -Pn -vw -sy -ws -ws -ws -ws -ws -ws -ws -ws -"} -(32,1,1) = {" -ws -ws -ws -ws -ws -ws -ky -vm -LH -NM -yw -GY -jl -ko -ko -In -En -BZ -TI -VP -nP -im -qv -vC -Bo -ul -sy -ws -ws -ws -ws -ws -ws -ws -ws -"} -(33,1,1) = {" -ws -ws -ws -ws -ws -ws -rw -ky -oT -fD -Ja -Ps -jh -SR -Vb -MQ -jn -qi -jW -HM -Cg -zZ -Bx -jt -Qi -sy -EM -ws -ws -ws -ws -ws -ws -ws -ws -"} -(34,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -eh -LH -tp -cl -Pb -WV -Pa -xs -fY -ta -Kh -jW -JK -aR -BT -JK -JK -JK -sy -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(35,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -eh -bS -CW -ZX -An -Kt -gu -Mu -xh -zu -OC -DS -Qw -Kq -TY -sS -io -HV -sy -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(36,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ky -sp -Em -Fg -NX -Qx -kO -fN -PC -UT -dN -TO -wD -fe -uL -OP -iJ -zh -sy -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(37,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -rw -ky -pM -jY -pM -pM -jY -pM -wC -jn -oO -Va -Le -ro -zE -LQ -AM -Hm -zc -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(38,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -GE -nw -Oq -ln -po -uq -ln -fv -rq -VI -TI -FQ -Fb -FQ -Qs -JK -JK -sy -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(39,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -GE -jO -Lf -yO -vq -oq -fP -kK -SK -tw -jW -yd -Lg -zP -se -kr -gP -pR -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(40,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -GE -ln -ln -IL -yM -rV -IL -tu -je -Vh -TI -gL -nL -va -AA -ar -JK -pR -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(41,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -GE -cm -jg -Ld -dv -Im -ss -ss -Ij -ss -TI -jW -jW -TI -TI -TI -TI -IP -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(42,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -qk -GE -uu -gd -pU -pU -Fo -BQ -fc -gg -Nx -xB -cT -Bh -yv -ss -ft -xK -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(43,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -GE -kP -Tw -Im -pU -mR -kC -NC -Zl -Ml -bi -oU -ER -OL -vK -ss -ss -xK -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(44,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -xK -Um -GO -ss -AZ -vl -wT -CX -ss -ZT -Bv -ss -DE -AI -Uz -cH -ss -xK -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(45,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -Mb -zv -aw -NW -Hs -wt -Wj -VU -ad -ad -sP -nZ -ad -ss -LU -Sq -Er -Nr -IM -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(46,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -xK -rd -ve -ss -tH -Nj -ad -Gq -jB -Ln -Rn -Eg -ad -ad -pF -ON -qp -IM -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(47,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -yL -yL -AD -hW -Sb -AD -ad -Fi -Sc -hP -CA -mW -ad -ad -fL -mw -fL -fC -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(48,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -ws -Uw -yL -nn -aJ -Cc -ad -Lx -EP -Yn -RB -HL -nX -ad -yy -lJ -Jf -fC -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(49,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -yL -uz -hF -iT -Gq -oh -yl -nf -SO -ML -Mf -ad -Zb -Yj -gi -fC -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(50,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -yL -tM -Uj -jf -ad -iM -VG -uy -YG -zF -Qv -ad -lN -Jr -gA -fC -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(51,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -yL -wG -Gr -OM -ad -PP -oS -uP -mn -vZ -YY -Gq -RP -fU -co -fC -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(52,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -yL -RX -vy -nJ -ad -yk -KO -Ec -Gf -sK -gc -ad -sq -xo -IS -fC -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(53,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -Uw -yL -af -Wb -GL -Ms -Ms -Ms -Ms -Ms -Ms -GL -aG -wS -fC -Re -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} -(54,1,1) = {" -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -yL -RS -eb -yL -ws -ws -ws -ws -ws -ws -fC -tl -FR -fC -ws -ws -ws -ws -ws -ws -ws -ws -ws -ws -"} diff --git a/_maps/shuttles/pirate/pirate_noderider.dmm b/_maps/shuttles/pirate/pirate_noderider.dmm index 10c591d8f52f..2e0352c54a58 100644 --- a/_maps/shuttles/pirate/pirate_noderider.dmm +++ b/_maps/shuttles/pirate/pirate_noderider.dmm @@ -435,9 +435,7 @@ id = "noderiders"; name = "cargo airshield" }, -/obj/machinery/computer/crew{ - icon_state = "computer-right" - }, +/obj/machinery/computer/crew, /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "fG" = ( @@ -1570,9 +1568,7 @@ pixel_y = 25 }, /obj/machinery/firealarm/directional/west, -/obj/machinery/computer/communications{ - icon_state = "computer-left" - }, +/obj/structure/frame/computer, /obj/machinery/light/small/built/directional/north{ pixel_x = 16 }, diff --git a/_maps/shuttles/pirate/pirate_tortuga.dmm b/_maps/shuttles/pirate/pirate_tortuga.dmm new file mode 100644 index 000000000000..e6aea0c42ff8 --- /dev/null +++ b/_maps/shuttles/pirate/pirate_tortuga.dmm @@ -0,0 +1,5354 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ah" = ( +/turf/closed/wall/r_wall/rust, +/area/ship/bridge) +"aA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"aE" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"aT" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/cargo) +"bj" = ( +/obj/machinery/light/directional/north, +/obj/structure/rack, +/obj/item/book/manual/wiki/command{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/book/manual/wiki/piloting{ + pixel_y = 5; + pixel_x = -5 + }, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"bu" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "watchdog_cargo" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/shieldwallgen/atmos{ + id = "watchdog_holo" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"bv" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "skull"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "f"; + pixel_x = -8; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "u"; + pixel_y = -7; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "k"; + pixel_x = 12; + pixel_y = -6 + }, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"bD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"bF" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 3 + }, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 5 + }, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 7 + }, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 9 + }, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 11 + }, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 13 + }, +/obj/item/storage/bag/tray/cafeteria{ + pixel_y = 15 + }, +/obj/machinery/light_switch{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/crew/canteen) +"bH" = ( +/obj/structure/salvageable/autolathe, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"bJ" = ( +/obj/machinery/door/airlock/grunge{ + req_one_access = list(1) + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/ship/security/armory) +"bN" = ( +/obj/machinery/holopad/emergency/command, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"bP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) +"bR" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"cb" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black/corner{ + dir = 1 + }, +/obj/machinery/computer/crew{ + dir = 8; + icon_state = "computer-left" + }, +/obj/effect/decal/cleanable/glass{ + pixel_x = -9; + dir = 8 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"ci" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"cv" = ( +/obj/structure/chair/stool{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/grimy, +/area/ship/crew/canteen) +"cx" = ( +/obj/structure/table/wood, +/obj/structure/showcase/machinery/tv{ + name = "\improper old TV"; + desc = "You don't get any signal in space, unfortunately."; + pixel_y = 6; + pixel_x = 6 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/ship/crew/crewtwo) +"cz" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 9 + }, +/obj/machinery/light/directional/north, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/crew/canteen) +"cG" = ( +/obj/structure/chair/stool{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/ship/crew/canteen) +"cS" = ( +/obj/structure/flippedtable{ + dir = 8 + }, +/obj/structure/fluff/paper/stack{ + pixel_x = 9 + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"dl" = ( +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"dm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/titanium, +/area/ship/security/armory) +"ds" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "watchdog_cargo" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"dA" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"dE" = ( +/obj/structure/table, +/obj/item/storage/cans/sixbeer, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"dF" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"dN" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"dV" = ( +/obj/structure/toilet{ + dir = 4; + pixel_x = -2; + pixel_y = 5 + }, +/obj/machinery/shower, +/obj/machinery/light/directional/west, +/obj/structure/curtain/cloth, +/turf/open/floor/plating, +/area/ship/security/armory) +"dX" = ( +/obj/structure/railing/corner{ + dir = 4; + layer = 2.8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"dY" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"dZ" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"em" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"es" = ( +/obj/machinery/door/window/westright, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"et" = ( +/obj/structure/cable/yellow{ + icon_state = "1-9" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"eA" = ( +/obj/item/flashlight/flare, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"eD" = ( +/obj/structure/railing/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"eE" = ( +/obj/machinery/light_switch{ + pixel_y = 22 + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"eS" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/structure/railing, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/crew) +"eU" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -22; + pixel_y = -10 + }, +/obj/structure/rack, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"ff" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"fj" = ( +/obj/effect/turf_decal/box/corners, +/obj/machinery/autolathe/hacked, +/obj/effect/decal/cleanable/wrapping{ + pixel_y = -7 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"fn" = ( +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"fq" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"fA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/maintenance/starboard) +"fE" = ( +/obj/structure/cable/yellow{ + icon_state = "0-9" + }, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/crayon{ + icon_state = "c"; + pixel_x = -10; + pixel_y = 11 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "l"; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "i"; + pixel_x = 7; + pixel_y = 10 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "p"; + pixel_x = 16; + pixel_y = 9 + }, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"fF" = ( +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"fM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/mineral/titanium/tiled, +/area/ship/security/armory) +"fR" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 15; + height = 15; + name = "tortuga dock"; + width = 15 + }, +/turf/template_noop, +/area/template_noop) +"fW" = ( +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"gi" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/crew/canteen) +"gr" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"gB" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"gD" = ( +/turf/open/floor/plasteel/tech/grid, +/area/ship/security/armory) +"gG" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"gI" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"gM" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"gQ" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"hh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"hi" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"hz" = ( +/obj/machinery/suit_storage_unit/industrial{ + suit_type = /obj/item/clothing/suit/space/hardsuit/security/independent/frontier + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/ship/security/armory) +"hD" = ( +/obj/machinery/door/airlock/command{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"hG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/mineral/titanium/tiled, +/area/ship/security/armory) +"hL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ship/cargo) +"hP" = ( +/obj/effect/turf_decal/techfloor{ + dir = 10 + }, +/obj/structure/guncase{ + anchored = 1 + }, +/obj/item/gun/ballistic/automatic/assault/skm/pirate, +/obj/item/gun/ballistic/rifle/illestren, +/obj/item/gun/ballistic/rifle/illestren, +/turf/open/floor/plasteel/tech/grid, +/area/ship/security/armory) +"hT" = ( +/obj/machinery/suit_storage_unit/industrial{ + suit_type = /obj/item/clothing/suit/space/hardsuit/security/independent/frontier + }, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/ship/security/armory) +"hU" = ( +/obj/structure/rack, +/obj/item/ammo_box/c45{ + pixel_x = -9; + pixel_y = 8 + }, +/obj/item/storage/toolbox/ammo/a762_40{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/storage/toolbox/ammo/a850r{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/ammo_box/magazine/m45{ + pixel_x = 5 + }, +/obj/item/ammo_box/magazine/m45{ + pixel_x = 5 + }, +/obj/item/ammo_box/magazine/m45{ + pixel_x = 5 + }, +/obj/item/ammo_box/magazine/m45{ + pixel_x = 5 + }, +/obj/item/ammo_box/magazine/m45{ + pixel_x = 5 + }, +/obj/item/ammo_box/magazine/m45{ + pixel_x = 5 + }, +/obj/item/ammo_box/magazine/skm_762_40{ + pixel_x = 5 + }, +/obj/item/ammo_box/magazine/skm_762_40{ + pixel_y = -3 + }, +/turf/open/floor/mineral/plastitanium, +/area/ship/security/armory) +"iq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel, +/area/ship/crew) +"iw" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"iy" = ( +/obj/structure/cable/yellow{ + icon_state = "6-10" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"iB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"iD" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"iN" = ( +/obj/structure/closet/crate{ + icon_state = "o2crate" + }, +/obj/item/spear/explosive, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"iP" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/stack/sheet/mineral/plasma/twenty, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"iW" = ( +/turf/open/floor/plasteel/white, +/area/ship/crew/canteen) +"iY" = ( +/obj/machinery/microwave{ + pixel_y = 6; + pixel_x = -1 + }, +/obj/structure/table, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/structure/sign/poster/retro/build{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/crew/canteen) +"ja" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "5-10" + }, +/obj/structure/cable/yellow{ + icon_state = "1-5" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"jh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ship/crew) +"jp" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"js" = ( +/obj/structure/cable/yellow{ + icon_state = "5-8" + }, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"jt" = ( +/obj/machinery/telecomms/relay/preset/frontiersmen, +/obj/machinery/door/window/southleft, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/bridge) +"jA" = ( +/obj/structure/railing, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"jH" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1; + layer = 2.89 + }, +/obj/machinery/computer/cryopod/directional/west, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/crew) +"jJ" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_y = 3; + w_class = 2 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_y = 5; + w_class = 2 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_y = 7; + w_class = 2 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_y = 9; + w_class = 2 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_y = 11; + w_class = 2 + }, +/obj/item/reagent_containers/glass/bowl{ + pixel_y = 13; + w_class = 2 + }, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/crew/canteen) +"jK" = ( +/obj/machinery/power/shuttle/engine/electric/bad{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance/port) +"jV" = ( +/obj/structure/table, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/recharger{ + pixel_x = -8 + }, +/obj/machinery/light_switch{ + pixel_y = 20; + pixel_x = 12 + }, +/turf/open/floor/mineral/plastitanium, +/area/ship/security/armory) +"kp" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"kv" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"kK" = ( +/obj/structure/cable/yellow{ + icon_state = "1-6" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"kO" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"la" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"ld" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"lh" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"li" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"lo" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"lx" = ( +/obj/structure/cable/yellow{ + icon_state = "6-9" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"lE" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-12" + }, +/obj/effect/turf_decal/industrial/warning/cee{ + dir = 4 + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/ship/cargo) +"lJ" = ( +/turf/closed/mineral/ship, +/area/ship/maintenance) +"lQ" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/ship/crew) +"lY" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = 8 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/ship/security/armory) +"mf" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/cable/yellow{ + icon_state = "5-9" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"mg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black/corner, +/turf/open/floor/mineral/titanium, +/area/ship/security/armory) +"ml" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"mp" = ( +/obj/structure/chair/stool{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/ship/crew/canteen) +"mu" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"mw" = ( +/turf/closed/wall/r_wall/rust, +/area/ship/crew/crewtwo) +"mB" = ( +/turf/closed/wall/r_wall, +/area/ship/crew/crewtwo) +"mD" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/grunge, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating/corner, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/crew) +"mE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"mG" = ( +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + name = "equipment locker"; + req_access_txt = "1" + }, +/obj/effect/turf_decal/box, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier{ + pixel_y = 6; + pixel_x = 7 + }, +/obj/item/clothing/suit/armor/vest/bulletproof/frontier{ + pixel_y = -4; + pixel_x = 8 + }, +/obj/machinery/light/directional/north, +/obj/item/clothing/suit/armor/vest/bulletproof/frontier{ + pixel_y = -4; + pixel_x = 8 + }, +/obj/item/clothing/suit/armor/vest/bulletproof/frontier{ + pixel_y = -4; + pixel_x = 8 + }, +/obj/item/clothing/suit/armor/vest/bulletproof/frontier{ + pixel_y = -4; + pixel_x = 8 + }, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier{ + pixel_y = 6; + pixel_x = 7 + }, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier{ + pixel_y = 6; + pixel_x = 7 + }, +/obj/item/clothing/head/helmet/bulletproof/x11/frontier{ + pixel_y = 6; + pixel_x = 7 + }, +/obj/item/storage/belt/military/assault{ + pixel_x = -4; + pixel_y = -11 + }, +/obj/item/storage/belt/military/assault{ + pixel_x = -4; + pixel_y = -11 + }, +/obj/item/storage/belt/military/assault{ + pixel_x = -4; + pixel_y = -11 + }, +/obj/item/storage/belt/military/assault{ + pixel_x = -4; + pixel_y = -11 + }, +/turf/open/floor/mineral/plastitanium, +/area/ship/security/armory) +"mZ" = ( +/obj/structure/curtain, +/turf/open/floor/plasteel/white, +/area/ship/crew/canteen) +"nc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"ng" = ( +/turf/closed/wall/r_wall, +/area/ship/crew/canteen) +"nt" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "2-5" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"nv" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"ny" = ( +/obj/effect/mob_spawn/human/corpse/frontier{ + mob_type = /mob/living/carbon/human/species/moth + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "body" + }, +/obj/item/clothing/mask/muzzle{ + pixel_x = 10; + pixel_y = -10 + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"nE" = ( +/obj/machinery/light_switch{ + pixel_y = 20 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"nT" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/closet/crate{ + icon_state = "o2crate" + }, +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/sheet/glass/twenty, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"nV" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/mineral/titanium/tiled, +/area/ship/security/armory) +"oe" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"om" = ( +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/structure/cable/yellow{ + icon_state = "2-10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"oq" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ship/crew/crewtwo) +"ov" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"oy" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plating/airless, +/area/ship/crew) +"oG" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ship/cargo) +"oH" = ( +/turf/closed/wall/rust, +/area/ship/maintenance/port) +"oI" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"oK" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"oS" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"oU" = ( +/obj/structure/table, +/turf/open/floor/plasteel/grimy, +/area/ship/crew/canteen) +"oV" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"ph" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"pr" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"pA" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"pB" = ( +/obj/structure/closet/secure_closet/engineering_personal{ + populate = 0 + }, +/obj/item/storage/belt/utility/full/engi{ + pixel_y = -9 + }, +/obj/item/clothing/accessory/armband/engine{ + pixel_y = 2; + pixel_x = -12 + }, +/obj/item/clothing/accessory/armband/engine{ + pixel_y = 2; + pixel_x = -12 + }, +/obj/item/clothing/glasses/welding{ + pixel_x = 9 + }, +/obj/item/storage/toolbox/electrical{ + pixel_y = 14 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"pE" = ( +/obj/effect/decal/cleanable/chem_pile{ + pixel_x = 9 + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"qd" = ( +/turf/closed/wall, +/area/ship/crew/canteen) +"qi" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/crayon{ + icon_state = "med" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"qp" = ( +/obj/machinery/door/airlock/medical{ + req_one_access = list(5) + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/crew/canteen) +"qu" = ( +/obj/machinery/door/window/brigdoor/eastleft, +/turf/open/floor/plating, +/area/ship/security/armory) +"qy" = ( +/obj/machinery/light/directional/north, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-10" + }, +/obj/item/stack/sheet/mineral/plasma/twenty, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"qD" = ( +/turf/closed/wall/r_wall/rust, +/area/ship/security/armory) +"qE" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"qI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"qM" = ( +/obj/effect/decal/cleanable/garbage{ + pixel_y = 7; + pixel_x = 6 + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"qT" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"ra" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable/yellow, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 4; + pixel_x = 10 + }, +/obj/item/pen{ + pixel_y = 4; + pixel_x = 10 + }, +/obj/item/flashlight/lamp{ + pixel_x = -6 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"rd" = ( +/turf/closed/wall/r_wall, +/area/ship/cargo) +"rU" = ( +/turf/closed/wall/r_wall, +/area/ship/crew) +"rW" = ( +/obj/structure/cable/yellow{ + icon_state = "5-10" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"rY" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "!"; + pixel_y = 6; + pixel_x = -7 + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"so" = ( +/turf/closed/wall/rust, +/area/ship/crew) +"ss" = ( +/obj/machinery/light/directional/south, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"sA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"sQ" = ( +/turf/closed/wall, +/area/ship/maintenance/starboard) +"tb" = ( +/obj/structure/flippedtable, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"tc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable/yellow{ + icon_state = "1-6" + }, +/obj/structure/cable/yellow{ + icon_state = "1-10" + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"td" = ( +/obj/structure/bonfire, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"te" = ( +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"ti" = ( +/obj/effect/spawner/lootdrop/donut, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"tq" = ( +/turf/closed/wall, +/area/ship/cargo) +"ts" = ( +/obj/item/storage/pill_bottle/floorpill/full{ + pixel_x = 10; + pixel_y = 1 + }, +/obj/structure/large_mortar{ + pixel_x = -6; + pixel_y = -1 + }, +/obj/item/pestle{ + pixel_y = 8; + pixel_x = 7 + }, +/obj/structure/table/rolling, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, +/area/ship/maintenance) +"tu" = ( +/obj/structure/bed{ + dir = 1 + }, +/obj/structure/curtain/cloth, +/obj/item/bedsheet/dorms, +/turf/open/floor/carpet, +/area/ship/crew) +"tI" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plating/airless, +/area/ship/security/armory) +"tL" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/comfy/grey/old/directional/south, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"tR" = ( +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"tS" = ( +/obj/structure/railing, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/crew) +"tT" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/ship/cargo) +"tV" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"ub" = ( +/obj/effect/turf_decal/techfloor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"uh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"ut" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_y = 10; + pixel_x = -1 + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_y = 7; + pixel_x = -8 + }, +/obj/effect/turf_decal/corner/opaque/blue/full, +/obj/item/stack/tape{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/white, +/area/ship/crew/canteen) +"ux" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"uC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/sofa/brown{ + dir = 1; + icon_state = "brown_sofa_end_right" + }, +/turf/open/floor/wood, +/area/ship/crew/crewtwo) +"uE" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"uG" = ( +/obj/structure/closet, +/obj/item/flashlight{ + pixel_x = -8; + pixel_y = -2 + }, +/obj/item/flashlight{ + pixel_y = -7; + pixel_x = -3 + }, +/obj/item/flashlight{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/flashlight{ + pixel_x = 8; + pixel_y = -9 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/item/radio{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/item/radio{ + pixel_x = -10; + pixel_y = 5 + }, +/obj/item/radio{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/radio{ + pixel_x = 1; + pixel_y = 7 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/crew) +"uL" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-12" + }, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/elevatorshaft, +/area/ship/cargo) +"uP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/maintenance/port) +"uQ" = ( +/obj/structure/reagent_dispensers/cooking_oil{ + desc = "A huge metal vat with a tap on the front. Contains your backup fuel."; + name = "vat of engine oil"; + reagent_id = /datum/reagent/fuel/oil; + tank_volume = 3000 + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"va" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"vb" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"vl" = ( +/turf/closed/wall/rust, +/area/ship/crew/canteen) +"vm" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"vD" = ( +/obj/structure/cable/yellow{ + icon_state = "5-10" + }, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"vQ" = ( +/obj/structure/railing, +/obj/structure/cable/yellow{ + icon_state = "2-9" + }, +/obj/structure/cable{ + icon_state = "5-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"vV" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/computer/helm/viewscreen/directional/east, +/turf/open/floor/plasteel/grimy, +/area/ship/crew) +"vW" = ( +/obj/item/flashlight/flare, +/obj/structure/bed/double/maint{ + dir = 1 + }, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"wa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/maintenance/starboard) +"wb" = ( +/obj/item/flashlight/glowstick/pink, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"wg" = ( +/obj/machinery/blackbox_recorder, +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/bridge) +"wp" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-12" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 10 + }, +/obj/effect/landmark/subship{ + subship_template = /datum/map_template/shuttle/subshuttles/brawler + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/ship/cargo) +"wC" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/double/black, +/obj/machinery/light/directional/north, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"wF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"wH" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"wL" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"wN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"wQ" = ( +/obj/effect/turf_decal/box/corners, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"wY" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/flippedtable{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"xb" = ( +/turf/closed/wall/r_wall/rust, +/area/ship/cargo) +"xf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/computer/helm/viewscreen/directional/north, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"xB" = ( +/obj/structure/closet/secure_closet{ + icon_door = "tac"; + icon_state = "tac"; + name = "boarding tools locker"; + req_access_txt = "3" + }, +/obj/effect/turf_decal/box, +/obj/item/storage/backpack/duffelbag/syndie/c4{ + pixel_y = 8 + }, +/obj/item/door_seal{ + pixel_y = -7 + }, +/obj/item/door_seal{ + pixel_y = -7 + }, +/turf/open/floor/mineral/plastitanium, +/area/ship/security/armory) +"xX" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"yc" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"yd" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 12 + }, +/turf/open/floor/plasteel/grimy, +/area/ship/crew) +"yl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"yt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/book/fish_catalog{ + pixel_y = 5; + pixel_x = 6 + }, +/obj/item/storage/toolbox/fishing{ + pixel_x = -6; + pixel_y = -2 + }, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"yv" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/structure/reagent_dispensers/servingdish, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/crew/canteen) +"yz" = ( +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"yC" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/cable/yellow{ + icon_state = "2-9" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"yH" = ( +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/tech/grid, +/area/ship/security/armory) +"yK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/bridge) +"yV" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/light/floor, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"yX" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/item/shard{ + pixel_x = -6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"ze" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/maintenance/starboard) +"zG" = ( +/obj/structure/chair/sofa/brown{ + dir = 1; + icon_state = "brown_sofa_end_left" + }, +/turf/open/floor/wood, +/area/ship/crew/crewtwo) +"zJ" = ( +/obj/item/flashlight/glowstick, +/obj/effect/decal/cleanable/crayon{ + icon_state = "radiation" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"zZ" = ( +/obj/structure/bed{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/security/armory) +"Ab" = ( +/turf/closed/wall/r_wall/rust, +/area/ship/crew) +"Ar" = ( +/obj/structure/bed, +/obj/structure/curtain/cloth, +/obj/item/bedsheet/dorms, +/turf/open/floor/carpet, +/area/ship/crew) +"Az" = ( +/obj/structure/curtain/bounty, +/obj/machinery/light_switch{ + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/ship/crew) +"AG" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"AQ" = ( +/obj/structure/closet/crate/bin, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"AZ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"Bk" = ( +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Bp" = ( +/turf/closed/wall/rust, +/area/ship/maintenance) +"BA" = ( +/obj/structure/cable/yellow{ + icon_state = "5-10" + }, +/turf/open/floor/plasteel/dark, +/area/ship/maintenance/starboard) +"BF" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) +"BG" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"BN" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ship/crew/crewtwo) +"BV" = ( +/obj/structure/salvageable/server, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"Ca" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/cargo) +"Cx" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Cy" = ( +/obj/structure/chair/stool{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/ship/crew/canteen) +"CA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"CE" = ( +/obj/structure/table, +/obj/machinery/jukebox/boombox{ + pixel_y = 2; + pixel_x = -3 + }, +/turf/open/floor/plasteel/grimy, +/area/ship/crew/canteen) +"CG" = ( +/turf/closed/wall, +/area/ship/maintenance/port) +"CN" = ( +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"CQ" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"CT" = ( +/obj/machinery/power/shuttle/engine/liquid/oil{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Dv" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"Dw" = ( +/obj/structure/dresser{ + dir = 1; + pixel_y = -5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel, +/area/ship/crew) +"DF" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"DG" = ( +/turf/open/floor/plasteel/elevatorshaft, +/area/ship/cargo) +"DN" = ( +/obj/structure/bed{ + dir = 1 + }, +/obj/structure/curtain/cloth, +/obj/item/bedsheet/dorms, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet, +/area/ship/crew) +"DR" = ( +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"DU" = ( +/obj/structure/cable/yellow{ + icon_state = "5-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Eb" = ( +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"Ek" = ( +/turf/template_noop, +/area/template_noop) +"Er" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner, +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Ev" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/closet/crate/trashcart, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"EB" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-12" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/ship/cargo) +"EI" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"EN" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"EO" = ( +/turf/open/floor/plasteel, +/area/ship/crew) +"EQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"Fc" = ( +/obj/structure/toilet{ + dir = 4; + pixel_x = -2; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/vomit/old{ + icon_state = "vomit_4"; + pixel_x = 15; + pixel_y = -12 + }, +/obj/effect/decal/cleanable/vomit/old{ + icon_state = "vomit_2"; + pixel_x = -13 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/crew/canteen) +"Fh" = ( +/obj/structure/flippedtable, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -7; + pixel_y = 11 + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Fk" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/crew) +"Fy" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/ship/cargo) +"FB" = ( +/obj/structure/rack, +/obj/item/kitchen/knife/combat/survival{ + pixel_y = 8; + pixel_x = -9 + }, +/obj/item/kitchen/knife/combat/survival{ + pixel_y = 7; + pixel_x = 5 + }, +/obj/item/kitchen/knife/combat/survival{ + pixel_y = 7; + pixel_x = -4 + }, +/obj/item/kitchen/knife/combat/survival{ + pixel_y = 7; + pixel_x = 1 + }, +/obj/item/melee/baton/boomerang/loaded{ + pixel_y = -14; + pixel_x = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/ship/security/armory) +"FL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"FP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/mineral/titanium/tiled, +/area/ship/security/armory) +"FQ" = ( +/turf/open/floor/mineral/titanium, +/area/ship/security/armory) +"FR" = ( +/obj/structure/cable/yellow{ + icon_state = "1-6" + }, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -7; + pixel_y = 8 + }, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"FU" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"FW" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ship/crew) +"Gd" = ( +/obj/structure/cable/yellow{ + icon_state = "2-5" + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Gm" = ( +/obj/structure/cable/yellow{ + icon_state = "5-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"Gr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/sign/poster/retro/lasergun{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Gx" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Gy" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"GA" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"GM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel, +/area/ship/crew) +"GV" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"GY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/dark, +/area/ship/maintenance/port) +"Ha" = ( +/obj/machinery/light/directional/north, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 9; + pixel_x = -5 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"Hk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Hx" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/ship/cargo) +"HG" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"HS" = ( +/obj/structure/cable/yellow{ + icon_state = "6-9" + }, +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/dark, +/area/ship/maintenance/port) +"HX" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"HY" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + layer = 2.35; + name = "air pump" + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"Il" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/ship/crew/crewtwo) +"Iw" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"Iy" = ( +/obj/machinery/shower{ + pixel_y = 14 + }, +/obj/item/bikehorn/rubberducky{ + pixel_x = 7; + pixel_y = -2 + }, +/obj/structure/curtain, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/crew/canteen) +"ID" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/stand_clear, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"II" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plating, +/area/ship/maintenance/port) +"IO" = ( +/obj/structure/sign/poster/rilena/tali{ + pixel_y = 32 + }, +/obj/structure/table/wood, +/obj/item/gun/ballistic/derringer{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/ammo_casing/c38{ + pixel_x = 9 + }, +/obj/item/ammo_casing/c38{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ship/crew/crewtwo) +"Je" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Jh" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"Ji" = ( +/obj/effect/turf_decal/techfloor, +/obj/item/radio/intercom/wideband/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"Jv" = ( +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"JA" = ( +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"JE" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"JJ" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/glass{ + pixel_x = 4; + pixel_y = 5; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"JS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"JX" = ( +/obj/structure/table/wood, +/obj/item/paicard{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/paicard{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/ship/crew) +"JZ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, +/obj/structure/fluff/fokoff_sign{ + pixel_x = -8; + pixel_y = 21 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"Ke" = ( +/obj/machinery/door/airlock/hatch{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"Kf" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ship/crew/crewtwo) +"Kn" = ( +/obj/structure/frame/machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Ko" = ( +/turf/closed/wall/rust, +/area/ship/maintenance/starboard) +"Kp" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"Kx" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/shieldwallgen/atmos{ + id = "watchdog_holo"; + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "watchdog_cargo" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"KM" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-6" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"KO" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Lb" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/turf_decal/siding/wideplating{ + dir = 5 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/crew/canteen) +"Ld" = ( +/obj/item/toy/plush/moth/error, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Lg" = ( +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Lm" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"Lt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"Lz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/ship/security/armory) +"LG" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"LH" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-12" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 9 + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/ship/cargo) +"Mb" = ( +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"Mk" = ( +/obj/machinery/light/directional/south, +/obj/structure/table, +/obj/item/dyespray{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/lipstick/jade{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/item/lipstick/purple{ + pixel_x = 8 + }, +/obj/item/lipstick{ + pixel_x = 5; + pixel_y = -4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/crew/canteen) +"Mn" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Mo" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/stand_clear, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"MC" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"MD" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/ship/crew) +"MF" = ( +/obj/structure/floodlight_frame, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"MH" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"MI" = ( +/obj/machinery/door/airlock/hatch{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"MK" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"MO" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-6" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"MS" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/ship/crew/canteen) +"Nr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"NI" = ( +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/crew) +"Od" = ( +/obj/machinery/computer/helm{ + dir = 8; + icon_state = "computer-right" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Ol" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Oo" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Op" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/security/officer/frontier/officer{ + pixel_x = -5 + }, +/obj/item/clothing/shoes/jackboots{ + pixel_y = -13 + }, +/obj/item/clothing/head/caphat/frontier{ + pixel_y = 9 + }, +/obj/item/clothing/suit/armor/frontier{ + pixel_x = 8 + }, +/obj/item/clothing/suit/armor/frontier{ + pixel_x = 8 + }, +/obj/item/clothing/under/rank/security/officer/frontier/officer{ + pixel_x = -5 + }, +/obj/item/clothing/head/caphat/frontier{ + pixel_y = 9 + }, +/obj/item/clothing/shoes/jackboots{ + pixel_y = -13 + }, +/obj/item/ammo_box/c38_box/surplus, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"OF" = ( +/obj/effect/decal/fakelattice{ + icon_state = "lattice-12" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/corner, +/turf/open/floor/plasteel/elevatorshaft, +/area/ship/cargo) +"OG" = ( +/obj/effect/decal/cleanable/vomit{ + pixel_x = 8; + pixel_y = 14 + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"OI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/fax/frontiersmen{ + pixel_y = 5 + }, +/obj/structure/fluff/paper/stack{ + dir = 5; + layer = 2.79; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Pa" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/corner/opaque/blue/full, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/machinery/light_switch{ + pixel_y = 22 + }, +/obj/item/clothing/suit/apron/surgical{ + pixel_x = -7; + pixel_y = 10 + }, +/turf/open/floor/plasteel/white, +/area/ship/crew/canteen) +"Pb" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, +/area/ship/maintenance) +"Pl" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Po" = ( +/obj/structure/bed{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/blue/full, +/obj/machinery/computer/helm/viewscreen/directional/north, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/white, +/area/ship/crew/canteen) +"Pu" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"Pw" = ( +/obj/structure/cable{ + icon_state = "4-9" + }, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -9; + pixel_y = -20 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"Px" = ( +/obj/effect/turf_decal/techfloor, +/obj/structure/guncase{ + anchored = 1 + }, +/obj/item/gun/ballistic/automatic/pistol/candor, +/obj/item/gun/ballistic/automatic/pistol/candor, +/obj/item/gun/ballistic/automatic/pistol/candor, +/turf/open/floor/plasteel/tech/grid, +/area/ship/security/armory) +"PC" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"PI" = ( +/obj/effect/turf_decal/borderfloor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"PV" = ( +/obj/structure/chair/office, +/turf/open/floor/plasteel/grimy, +/area/ship/crew) +"Qi" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"Ql" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plasteel, +/area/ship/crew) +"QJ" = ( +/turf/closed/wall/r_wall/rust, +/area/ship/maintenance) +"QK" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"QM" = ( +/obj/effect/spawner/lootdrop/maintenance/three, +/obj/structure/closet/cardboard, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"QP" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ship/maintenance/port) +"QT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"QV" = ( +/obj/item/book/manual/wiki/ghetto_chemistry{ + pixel_y = 11; + pixel_x = -7 + }, +/obj/item/lighter{ + pixel_x = 5 + }, +/turf/open/floor/plating/airless{ + icon_state = "panelscorched" + }, +/area/ship/maintenance) +"Rg" = ( +/obj/machinery/button/door{ + id = "watchdog_cargo"; + pixel_y = 25; + pixel_x = -3 + }, +/obj/machinery/button/shieldwallgen{ + id = "watchdog_holo"; + pixel_x = 8; + pixel_y = 23 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"Rn" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/plating, +/area/ship/cargo) +"Rs" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"Ry" = ( +/obj/machinery/light/floor, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"RB" = ( +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"RF" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"RH" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/security/armory) +"RP" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable/yellow{ + icon_state = "1-10" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"RV" = ( +/obj/item/kitchen/knife/plastic{ + pixel_x = 8 + }, +/obj/item/reagent_containers/food/snacks/grown/potato{ + pixel_x = -12; + pixel_y = 15 + }, +/obj/item/reagent_containers/food/snacks/grown/potato{ + pixel_x = -11; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/snacks/grown/potato{ + pixel_x = -12; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/snacks/grown/potato{ + pixel_x = -14; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/snacks/grown/potato{ + pixel_x = -10; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/snacks/grown/potato{ + pixel_x = -15 + }, +/obj/item/reagent_containers/food/snacks/grown/potato{ + pixel_x = -12; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/security/armory) +"Se" = ( +/turf/closed/wall/r_wall, +/area/ship/bridge) +"So" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Ss" = ( +/obj/structure/table/wood/reinforced, +/obj/item/modular_computer/laptop/preset/civilian/rilena{ + pixel_x = -16; + pixel_y = 4 + }, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"Su" = ( +/obj/machinery/grill, +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Sv" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Sy" = ( +/obj/machinery/iv_drip, +/obj/effect/turf_decal/corner/opaque/blue/full, +/turf/open/floor/plasteel/white, +/area/ship/crew/canteen) +"SC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"SD" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/mineral/titanium/tiled, +/area/ship/security/armory) +"SG" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/siding/wideplating{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"SJ" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/item/kirbyplants/fullysynthetic{ + pixel_x = 6 + }, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"SS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"SV" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ship/crew) +"SX" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"SY" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/ship/crew/crewtwo) +"Td" = ( +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"Tq" = ( +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/port) +"TG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/mineral/titanium/tiled, +/area/ship/security/armory) +"TM" = ( +/obj/effect/turf_decal/borderfloor, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"TN" = ( +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"TO" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/ship/crew/crewtwo) +"Uk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"Uo" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plating, +/area/ship/cargo) +"Uw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/port) +"UE" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/ship/crew) +"UO" = ( +/obj/structure/table/wood, +/obj/machinery/light/directional/north, +/turf/open/floor/carpet, +/area/ship/crew) +"UQ" = ( +/obj/item/stack/tile/plasteel/tech/techmaint, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"UT" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/hatch, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Vd" = ( +/obj/structure/curtain/bounty, +/turf/open/floor/plasteel, +/area/ship/crew) +"Vf" = ( +/obj/structure/sink{ + pixel_x = 2; + pixel_y = 20 + }, +/obj/structure/mirror{ + pixel_y = 28; + pixel_x = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/crew/canteen) +"Vg" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/security/officer/frontier{ + pixel_x = -7 + }, +/obj/item/clothing/under/rank/security/officer/frontier{ + pixel_x = -4 + }, +/obj/item/clothing/under/rank/security/officer/frontier, +/obj/item/clothing/under/rank/security/officer/frontier{ + pixel_x = 4 + }, +/obj/item/clothing/under/rank/security/officer/frontier{ + pixel_x = 8 + }, +/obj/item/clothing/shoes/jackboots{ + pixel_y = -13; + pixel_x = -8 + }, +/obj/item/clothing/shoes/jackboots{ + pixel_y = -13; + pixel_x = -4 + }, +/obj/item/clothing/shoes/jackboots{ + pixel_y = -13 + }, +/obj/item/clothing/shoes/jackboots{ + pixel_y = -13; + pixel_x = 4 + }, +/obj/item/clothing/shoes/jackboots{ + pixel_y = -13; + pixel_x = 8 + }, +/turf/open/floor/plasteel, +/area/ship/crew) +"Vm" = ( +/obj/item/reagent_containers/glass/bucket{ + desc = "Better get scoopin'."; + name = "oil-soaked bucket"; + pixel_x = -5; + pixel_y = 5 + }, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"Vt" = ( +/turf/closed/wall/r_wall, +/area/ship/security/armory) +"Vx" = ( +/obj/item/reagent_containers/food/snacks/deadmouse{ + pixel_x = -9; + pixel_y = 12 + }, +/obj/item/crowbar{ + pixel_x = 21 + }, +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 3; + pixel_x = -9; + icon_state = "drip1" + }, +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 6; + pixel_x = 6 + }, +/obj/effect/decal/cleanable/blood/splatter{ + pixel_y = -4 + }, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, +/area/ship/cargo) +"VE" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/stand_clear{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plating, +/area/ship/cargo) +"VH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/structure/table, +/obj/item/folder{ + pixel_x = -6; + pixel_y = 12 + }, +/obj/item/folder{ + pixel_x = -2; + pixel_y = 7 + }, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"VO" = ( +/obj/docking_port/mobile{ + name = "tortuga docking port"; + port_direction = 8; + preferred_direction = 4; + dir = 2 + }, +/turf/closed/wall, +/area/ship/maintenance/port) +"VP" = ( +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"VQ" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/salvageable/computer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Wa" = ( +/obj/structure/cable/yellow{ + icon_state = "5-8" + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"Wd" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "engie" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"We" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/structure/closet/cardboard, +/obj/item/pickaxe/rusted{ + pixel_y = 14; + pixel_x = 13 + }, +/obj/item/pickaxe/rusted{ + pixel_y = 14; + pixel_x = 13 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/item/clothing/head/hardhat/mining{ + pixel_x = 8; + pixel_y = -4 + }, +/obj/item/clothing/head/hardhat/mining{ + pixel_x = 8; + pixel_y = -4 + }, +/obj/item/storage/bag/ore{ + pixel_x = -11 + }, +/obj/item/storage/bag/ore{ + pixel_x = -11 + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Wv" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/salvageable/computer{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Wx" = ( +/turf/closed/wall/r_wall/rust, +/area/ship/crew/canteen) +"WF" = ( +/turf/closed/wall/rust, +/area/ship/cargo) +"Xb" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Xc" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/crew) +"Xn" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/closet/secure_closet/engineering_welding, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"Xs" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/light_switch{ + pixel_y = -12; + dir = 8; + pixel_x = 21 + }, +/obj/structure/closet/crate{ + icon_state = "o2crate" + }, +/turf/open/floor/plasteel/mono, +/area/ship/cargo) +"Xu" = ( +/obj/structure/table/wood/reinforced, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 11; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/drinks/bottle/champagne{ + pixel_y = 15; + pixel_x = -5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 13; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/drinks/bottle/champagne{ + pixel_y = 10; + pixel_x = 2 + }, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"XC" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"XJ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/fluff/paper/stack{ + dir = 4; + pixel_y = 9; + layer = 2.79 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"XM" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/nachos{ + desc = "You're pretty sure these are stolen from an outpost." + }, +/turf/open/floor/plasteel/grimy, +/area/ship/crew/canteen) +"XX" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Yk" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/ship/maintenance/starboard) +"Yo" = ( +/obj/machinery/icecream_vat{ + desc = "Ding-aling ding dong. Get your Frontiersmen-approved ice cream!" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"Yr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Ys" = ( +/obj/effect/turf_decal/industrial/loading{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"Yu" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/dark, +/area/ship/crew/canteen) +"YD" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/glass/bucket{ + pixel_y = 14; + pixel_x = 6 + }, +/obj/item/mop{ + pixel_x = -10; + pixel_y = -3 + }, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"YE" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"YG" = ( +/obj/effect/turf_decal/techfloor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/tech, +/area/ship/bridge) +"YH" = ( +/obj/machinery/door/airlock/command{ + req_one_access = list(19) + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/crew/crewtwo) +"YI" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 6 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"YJ" = ( +/obj/structure/salvageable/machine, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/ship/maintenance) +"YL" = ( +/obj/structure/catwalk/over/plated_catwalk, +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plating, +/area/ship/cargo) +"YU" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless{ + icon_state = "plating_rust" + }, +/area/ship/maintenance) +"YX" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"Zf" = ( +/obj/structure/table/wood/reinforced, +/obj/item/folder{ + pixel_x = -7; + pixel_y = 2 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/nanoweave, +/area/ship/crew/crewtwo) +"Zi" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Zp" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/grunge{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/cargo) +"Zz" = ( +/obj/structure/closet/secure_closet/wall{ + pixel_y = -28; + req_access = list(5) + }, +/obj/item/storage/firstaid/brute{ + pixel_y = 8; + pixel_x = 2 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/clothing/accessory/armband/medblue{ + pixel_y = -1; + pixel_x = -6 + }, +/obj/item/clothing/gloves/color/latex{ + pixel_y = -13 + }, +/obj/item/storage/belt/medical/webbing{ + pixel_y = 8; + pixel_x = 5 + }, +/obj/item/clothing/head/soft/mime, +/turf/open/floor/plasteel/white, +/area/ship/crew/canteen) +"ZC" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/wood{ + icon_state = "wood-broken2" + }, +/area/ship/crew/crewtwo) +"ZH" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "electricdanger" + }, +/turf/open/floor/plating/airless, +/area/ship/maintenance) + +(1,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +fR +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +"} +(2,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +WF +WF +bu +ds +ds +ds +ds +ds +Kx +tq +tq +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +"} +(3,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +WF +tq +Rg +Wa +tR +tR +Ys +tR +tR +RB +FU +tq +tq +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +"} +(4,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +tq +oe +Er +SX +SX +Pl +lo +pr +SX +SX +Ol +yV +tq +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +"} +(5,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +tq +lh +Uo +LH +Fy +Fy +Fy +Fy +Fy +wp +ld +Td +tq +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +"} +(6,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +VO +jK +jK +CG +Ek +tq +uE +Uo +EB +DG +DG +DG +DG +DG +uL +ld +mu +WF +Ek +sQ +jK +jK +Ko +Ek +Ek +Ek +Ek +"} +(7,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +CG +Pu +EI +oH +Ek +tq +lh +Uo +EB +DG +DG +DG +DG +DG +uL +ld +Td +WF +Ek +sQ +la +jp +Ko +Ek +Ek +Ek +Ek +"} +(8,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +oH +HX +HX +oH +CG +tq +lh +VE +Rn +DG +DG +DG +DG +DG +BF +Mo +Td +WF +CT +Ko +ux +Kp +sQ +Ek +Ek +Ek +Ek +"} +(9,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +EQ +DF +QP +CG +EN +CG +VP +oV +pA +DG +DG +DG +DG +DG +BF +ID +Td +Ko +es +sQ +ze +RF +bP +Ek +Ek +Ek +Ek +"} +(10,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +EQ +dE +HS +mE +HY +oH +VP +Uo +EB +DG +DG +DG +DG +DG +uL +ld +Td +Ko +Vm +sA +fA +Xn +bP +Ek +Ek +Ek +Ek +"} +(11,1,1) = {" +Ek +Ek +lJ +lJ +Ek +JZ +aA +Lt +GY +dX +vb +oH +vm +Uo +EB +DG +DG +DG +DG +DG +uL +ld +TM +sQ +wH +eD +wa +Gm +bP +Ek +Ek +Ek +Ek +"} +(12,1,1) = {" +Ek +Bp +Bp +Bp +Bp +Bp +oH +Ha +uP +em +JS +oH +VP +Uo +EB +DG +DG +DG +DG +DG +uL +ld +PI +sQ +Mb +Yk +BA +ss +sQ +lJ +lJ +Ek +Ek +"} +(13,1,1) = {" +Ek +lJ +lJ +lJ +lJ +BV +CG +pB +yl +va +Uw +CG +VP +Uo +OF +tT +tT +tT +tT +tT +uL +ld +PI +Ko +gI +ja +TN +YD +sQ +lJ +lJ +lJ +Ek +"} +(14,1,1) = {" +Ek +lJ +lJ +lJ +QV +Pb +CG +CG +ff +KM +iD +gr +MO +YL +lE +ci +fq +Oo +fq +Mn +lE +nt +oS +dA +tc +jA +ph +Ko +Ko +Bp +Bp +Bp +Bp +"} +(15,1,1) = {" +lJ +lJ +lJ +lJ +MF +pE +ts +CG +Tq +dY +Pw +oH +VP +Xb +Hx +dN +CN +Ca +dZ +Je +RP +dN +PI +Ko +eE +vQ +YX +Ko +QM +Hk +yc +lJ +Ek +"} +(16,1,1) = {" +lJ +lJ +lJ +lJ +zJ +QJ +QJ +oH +oH +HG +SS +oH +VP +ov +nc +tR +nc +hL +tR +tR +tR +Ry +PI +Ko +qy +AZ +sQ +Ko +Hk +kv +lJ +lJ +Ek +"} +(17,1,1) = {" +lJ +lJ +AG +Bk +qE +kO +wb +ZH +II +wN +iP +oH +Vx +UQ +lx +FL +qI +oG +wF +uh +nc +nc +Td +Ko +uQ +GA +UT +kK +Bk +lJ +lJ +lJ +Ek +"} +(18,1,1) = {" +lJ +lJ +lJ +QJ +wY +Bk +Bk +bR +so +vl +vl +vl +qd +qd +We +yC +aE +Sv +Ev +So +wL +Vt +Vt +Vt +qD +QJ +QJ +QJ +mf +lJ +lJ +lJ +Ek +"} +(19,1,1) = {" +lJ +lJ +lJ +QJ +XC +JA +Ab +rU +rU +Wx +Iy +Fc +Mk +qd +nT +Xs +fj +aT +QK +Su +wQ +Vt +dV +zZ +Vt +Kn +bR +vD +hh +lJ +lJ +lJ +Ek +"} +(20,1,1) = {" +lJ +lJ +lJ +QJ +XC +ti +Ab +jH +eS +ng +Vf +MS +MS +vl +WF +WF +WF +Zp +rd +xb +Vt +Vt +RV +qu +qD +AG +Jv +Eb +Hk +lJ +lJ +Ek +Ek +"} +(21,1,1) = {" +QJ +QJ +QJ +QJ +MI +Ab +rU +Xc +tS +ng +ng +ng +gi +vl +SG +PC +JE +MC +Gx +qD +lY +dm +dm +FQ +qD +Yo +XX +Hk +lJ +lJ +Ek +Ek +Ek +"} +(22,1,1) = {" +Ek +lJ +lJ +Fh +XC +rU +uG +NI +NI +Fk +Ab +cz +dl +KO +te +iw +Gd +Iw +Yu +qD +jV +Lz +dm +mg +qD +qD +MI +QJ +QJ +QJ +QJ +Ek +Ek +"} +(23,1,1) = {" +lJ +lJ +lJ +tb +XC +Ab +Ab +Az +Vd +rU +Ab +yv +QT +mp +cv +om +MK +Gy +Gr +bJ +nV +fM +hG +TG +hT +qD +XX +kv +lJ +lJ +lJ +Ek +Ek +"} +(24,1,1) = {" +lJ +lJ +eA +OG +Rs +Ab +DN +EO +EO +Vg +Ab +jJ +QT +oU +CE +bD +ng +ng +ng +Vt +xB +RH +hP +FP +hz +qD +Dv +fn +lJ +lJ +Ek +Ek +Ek +"} +(25,1,1) = {" +lJ +lJ +tV +Bk +Wv +Ab +UO +EO +Ql +Dw +rU +bF +QT +XM +oU +GV +ng +Po +Sy +Vt +hU +gD +yH +FP +hz +qD +MH +Eb +lJ +lJ +Ek +Ek +Ek +"} +(26,1,1) = {" +lJ +lJ +AG +gG +js +Ab +tu +UE +FW +jh +mD +oI +Nr +Cy +cG +BG +ng +mZ +mZ +Vt +mG +FB +Px +SD +hT +qD +XX +YU +lJ +lJ +lJ +Ek +Ek +"} +(27,1,1) = {" +lJ +lJ +YJ +DR +Wd +oy +MD +SV +GM +iq +rU +iY +hi +iB +xX +nv +qp +iW +Zz +Vt +Vt +qD +qD +qD +qD +Vt +MI +QJ +QJ +QJ +QJ +QJ +Ek +"} +(28,1,1) = {" +lJ +lJ +Cx +XC +eA +Ab +Ar +lQ +PV +yd +rU +Lb +gQ +gQ +LG +YI +ng +Pa +ut +tI +iN +qi +Lg +Hk +kv +hh +DU +Hk +lJ +lJ +lJ +Ek +Ek +"} +(29,1,1) = {" +QJ +QJ +QJ +Ke +QJ +Ab +Ab +Ab +vV +JX +ah +Se +Se +Se +hD +Se +mB +mB +mB +mB +mB +mB +li +QJ +YU +rW +kv +lJ +lJ +lJ +Ek +Ek +Ek +"} +(30,1,1) = {" +lJ +lJ +lJ +dF +kO +FR +bR +rU +rU +ah +ah +bj +VH +eU +gB +ra +mB +cx +zG +Il +Jh +mB +mB +QJ +iy +oK +lJ +lJ +lJ +Ek +Ek +Ek +Ek +"} +(31,1,1) = {" +Ek +lJ +lJ +lJ +qM +bv +fE +YE +bH +ah +jt +yz +bN +YG +CQ +OI +mB +IO +uC +TO +fW +Xu +mB +VQ +XJ +et +lJ +lJ +lJ +Ek +Ek +Ek +Ek +"} +(32,1,1) = {" +Ek +lJ +lJ +lJ +lJ +cS +rY +bR +ny +Se +wg +SC +CA +ub +JJ +Yr +YH +SY +ZC +BN +gM +Zf +mB +yX +fn +lJ +lJ +lJ +Ek +Ek +Ek +Ek +Ek +"} +(33,1,1) = {" +Ek +Ek +lJ +lJ +lJ +lJ +lJ +vW +td +ah +Se +ah +AQ +Ji +Zi +fF +mB +xf +Uk +Kf +tL +Ss +mB +kp +Hk +lJ +lJ +Ek +Ek +Ek +Ek +Ek +Ek +"} +(34,1,1) = {" +Ek +Ek +Ek +Ek +lJ +lJ +lJ +lJ +QJ +QJ +Ld +ah +ah +ah +cb +Od +mB +nE +Qi +oq +SJ +mB +mw +MI +QJ +QJ +QJ +QJ +Ek +Ek +Ek +Ek +Ek +"} +(35,1,1) = {" +Ek +Ek +Ek +Ek +Ek +lJ +lJ +lJ +lJ +QJ +lJ +lJ +lJ +ah +yK +yK +mB +wC +Op +mw +mw +mw +yt +Lm +Kn +lJ +lJ +lJ +Ek +Ek +Ek +Ek +Ek +"} +(36,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +lJ +lJ +lJ +QJ +lJ +lJ +lJ +Ek +Ek +Ek +mB +mB +mw +mw +yc +hh +qT +ml +lJ +lJ +lJ +Ek +Ek +Ek +Ek +Ek +Ek +"} +(37,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +Ek +lJ +lJ +QJ +lJ +lJ +Ek +Ek +Ek +Ek +Ek +Ek +Ek +QJ +lJ +lJ +lJ +lJ +lJ +lJ +Ek +Ek +Ek +Ek +Ek +Ek +Ek +"} +(38,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +lJ +QJ +lJ +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +QJ +lJ +lJ +lJ +lJ +lJ +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +"} +(39,1,1) = {" +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +lJ +lJ +lJ +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +Ek +"} diff --git a/_maps/shuttles/roumain/srm_elder.dmm b/_maps/shuttles/roumain/srm_elder.dmm index ff5841d98df5..0fdb4827655a 100644 --- a/_maps/shuttles/roumain/srm_elder.dmm +++ b/_maps/shuttles/roumain/srm_elder.dmm @@ -273,7 +273,6 @@ dir = 1 }, /obj/machinery/door/poddoor/shutters{ - dir = 2; id = "elderatriumshuts" }, /turf/open/floor/plating, @@ -497,7 +496,6 @@ /obj/machinery/button/door{ id = "elderengineshuts"; name = "Engine Shutters"; - dir = 2; pixel_x = 7; pixel_y = 21 }, @@ -955,7 +953,6 @@ /obj/structure/grille, /obj/structure/window/reinforced/fulltile, /obj/machinery/door/poddoor/shutters{ - dir = 2; id = "elderatriumshuts" }, /turf/open/floor/plating, @@ -1170,7 +1167,6 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ - dir = 2; id = "elderatriumshuts" }, /turf/open/floor/plating, @@ -1242,7 +1238,6 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ - dir = 2; id = "elderatriumshuts" }, /turf/open/floor/plating, @@ -1259,15 +1254,13 @@ /obj/machinery/door/window/eastright{ dir = 8 }, -/obj/item/gun/ballistic/shotgun/flamingarrow{ - pixel_y = -5 - }, -/obj/item/gun/ballistic/shotgun/flamingarrow{ - pixel_y = 0 - }, +/obj/item/gun/ballistic/shotgun/flamingarrow/factory, /obj/item/gun/ballistic/shotgun/flamingarrow/bolt{ pixel_y = 5 }, +/obj/item/gun/ballistic/shotgun/flamingarrow/factory{ + pixel_y = -5 + }, /turf/open/floor/wood/ebony, /area/ship/storage) "oC" = ( @@ -1275,7 +1268,6 @@ /obj/structure/grille, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/poddoor/shutters{ - dir = 2; id = "elderatriumshuts" }, /turf/open/floor/plating, @@ -1774,7 +1766,6 @@ /obj/structure/window/reinforced/fulltile, /obj/structure/grille, /obj/machinery/door/poddoor/shutters{ - dir = 2; id = "elderatriumshuts" }, /turf/open/floor/plating, @@ -2187,18 +2178,18 @@ /obj/machinery/door/window{ dir = 8 }, -/obj/item/gun/ballistic/rifle/illestren{ +/obj/item/gun/ballistic/rifle/illestren/factory{ + pixel_y = 3; + pixel_x = -4 + }, +/obj/item/gun/ballistic/rifle/illestren/factory{ pixel_x = -4; pixel_y = -5 }, -/obj/item/gun/ballistic/rifle/illestren{ +/obj/item/gun/ballistic/rifle/illestren/factory{ pixel_x = -4; pixel_y = -1 }, -/obj/item/gun/ballistic/rifle/illestren{ - pixel_x = -4; - pixel_y = 3 - }, /turf/open/floor/wood/ebony, /area/ship/storage) "Bq" = ( @@ -2278,7 +2269,6 @@ pixel_x = 4 }, /obj/item/reagent_containers/food/snacks/meat/steak{ - pixel_y = 0; pixel_x = -9 }, /obj/item/reagent_containers/food/snacks/meat/steak{ @@ -2542,9 +2532,7 @@ pixel_x = 3; pixel_y = -6 }, -/obj/item/storage/toolbox/fishing{ - pixel_y = 0 - }, +/obj/item/storage/toolbox/fishing, /turf/open/floor/wood/ebony, /area/ship/storage) "Fu" = ( @@ -2926,7 +2914,6 @@ pixel_x = -2 }, /obj/item/weldingtool{ - pixel_y = 0; pixel_x = -5 }, /turf/open/floor/wood/ebony, @@ -3015,8 +3002,7 @@ dir = 1 }, /obj/machinery/door/airlock/medical/glass{ - name = "Medical Bay"; - dir = 2 + name = "Medical Bay" }, /obj/effect/turf_decal/siding/blue/end{ dir = 1 @@ -3073,7 +3059,6 @@ pixel_x = 21 }, /obj/item/binoculars{ - pixel_y = 0; pixel_x = -4 }, /obj/item/megaphone{ @@ -3497,8 +3482,7 @@ pixel_x = 5 }, /obj/item/cultivator/rake{ - pixel_x = -4; - pixel_y = 0 + pixel_x = -4 }, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) @@ -3763,8 +3747,7 @@ pixel_y = -4 }, /obj/item/pickaxe{ - pixel_x = 1; - pixel_y = 0 + pixel_x = 1 }, /obj/item/pickaxe{ pixel_x = 1; diff --git a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt index a42968567352..732d43938f30 100644 --- a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt +++ b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt @@ -68,3 +68,9 @@ Size = "10x7" Purpose = "A boarding dropship employed by the PGFN." File Path = "_maps\shuttles\subshuttles\pgf_nail.dmm" +Name = "Brawler Attack Shuttle" +Size = "15x11" +Purpose = "A hit-and-run vessel made locally by the Frontiersmen." +File Path = "_maps\shuttles\subshuttles\frontiersmen_brawler.dmm" + + diff --git a/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm b/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm new file mode 100644 index 000000000000..821918d660f2 --- /dev/null +++ b/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm @@ -0,0 +1,587 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/structure/cable/yellow{ + icon_state = "2-9" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"c" = ( +/obj/machinery/door/poddoor/shutters{ + id = "brawler_starboard" + }, +/obj/machinery/power/shieldwallgen/atmos{ + id = "brawler_starboard_holo"; + dir = 8 + }, +/obj/structure/cable/yellow, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"e" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/telecomms/relay/preset/frontiersmen, +/obj/machinery/light_switch{ + pixel_y = -22; + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/bridge) +"f" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"g" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ship/bridge) +"i" = ( +/obj/effect/decal/cleanable/oil/streak{ + pixel_x = -1; + pixel_y = 19; + icon_state = "streak2" + }, +/obj/effect/decal/cleanable/oil/streak{ + pixel_x = 5; + pixel_y = -2; + icon_state = "streak3" + }, +/obj/machinery/button/shieldwallgen{ + pixel_y = 9; + pixel_x = 23; + id = "brawler_aft_holo"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"k" = ( +/turf/template_noop, +/area/template_noop) +"o" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/engine/hull/reinforced, +/area/ship/bridge) +"p" = ( +/obj/effect/decal/cleanable/plasma{ + pixel_x = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/smes/engineering, +/obj/effect/turf_decal/siding/thinplating/end{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-10" + }, +/obj/structure/cable/yellow{ + icon_state = "0-6" + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola{ + pixel_y = 16; + pixel_x = -3 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = -15; + pixel_x = -10 + }, +/obj/structure/cable/yellow{ + icon_state = "0-5" + }, +/turf/open/floor/plasteel, +/area/ship/bridge) +"r" = ( +/obj/machinery/power/shieldwallgen/atmos{ + id = "brawler_aft_holo"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "brawler_aft" + }, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"s" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/engine/hull/reinforced, +/area/ship/bridge) +"t" = ( +/obj/item/clothing/head/cone{ + pixel_y = 8; + pixel_x = -5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"u" = ( +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/structure/cable/yellow{ + icon_state = "1-10" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"v" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"x" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/bridge) +"y" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "brawler_port" + }, +/obj/machinery/power/shieldwallgen/atmos{ + id = "brawler_port_holo"; + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"z" = ( +/obj/structure/cable/yellow{ + icon_state = "1-6" + }, +/obj/docking_port/mobile{ + dir = 4; + name = "brawler shuttle"; + port_direction = 2; + preferred_direction = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "brawler_aft" + }, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"A" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "brawler_port" + }, +/obj/machinery/power/shieldwallgen/atmos{ + id = "brawler_port_holo"; + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/button/door{ + pixel_x = -23; + pixel_y = -7; + id = "brawler_port"; + dir = 4 + }, +/obj/machinery/button/shieldwallgen{ + pixel_y = 7; + pixel_x = -23; + id = "brawler_port_holo"; + dir = 4 + }, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"B" = ( +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/structure/fluff/broken_flooring{ + icon_state = "plating"; + dir = 8 + }, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -6; + pixel_y = 5 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"C" = ( +/obj/item/clothing/head/cone{ + pixel_x = -9; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"D" = ( +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil/streak{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ship/bridge) +"E" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "brawler_aft" + }, +/obj/machinery/power/shieldwallgen/atmos{ + id = "brawler_aft_holo" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"F" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/table, +/obj/item/radio/intercom/wideband/table{ + dir = 4; + pixel_x = 6 + }, +/obj/machinery/button/door{ + id = "brawler_aft"; + pixel_x = -7; + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/mono, +/area/ship/bridge) +"G" = ( +/obj/effect/decal/cleanable/wrapping{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"I" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/power/smes/shuttle/precharged, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"J" = ( +/obj/effect/decal/cleanable/plastic, +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/chair/plastic, +/obj/item/chair/plastic{ + pixel_y = 4; + pixel_x = -2 + }, +/obj/item/chair/plastic{ + pixel_y = 7 + }, +/obj/item/chair/plastic{ + pixel_y = 5; + pixel_x = -6 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/ship/bridge) +"L" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/stack/sheet/mineral/plasma/twenty{ + pixel_y = 9; + pixel_x = -5 + }, +/turf/open/floor/plasteel, +/area/ship/bridge) +"M" = ( +/obj/machinery/door/poddoor/shutters{ + id = "brawler_starboard" + }, +/obj/machinery/power/shieldwallgen/atmos{ + id = "brawler_starboard_holo"; + dir = 4 + }, +/obj/structure/cable/yellow, +/obj/machinery/button/door{ + dir = 4; + pixel_y = 7; + pixel_x = -23; + id = "brawler_starboard" + }, +/obj/machinery/button/shieldwallgen{ + pixel_y = -7; + pixel_x = -23; + id = "brawler_starboard_holo"; + dir = 4 + }, +/turf/open/floor/engine/hull/interior, +/area/ship/bridge) +"N" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"O" = ( +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ship/bridge) +"P" = ( +/obj/machinery/light/directional/south, +/obj/structure/cable/yellow{ + icon_state = "5-8" + }, +/obj/structure/cable/yellow{ + icon_state = "5-9" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"R" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/patterned/ridged, +/area/ship/bridge) +"W" = ( +/turf/closed/wall/r_wall, +/area/ship/bridge) +"X" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes/shuttle/precharged{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil{ + pixel_y = 11; + pixel_x = 17 + }, +/obj/effect/decal/cleanable/oil{ + pixel_y = 15; + pixel_x = -7 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"Y" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/engine/hull/reinforced, +/area/ship/bridge) +"Z" = ( +/obj/machinery/computer/helm{ + dir = 8 + }, +/obj/effect/decal/cleanable/vomit/old{ + pixel_x = -10; + pixel_y = 3 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/mono, +/area/ship/bridge) + +(1,1,1) = {" +k +W +E +z +r +W +k +"} +(2,1,1) = {" +k +W +B +t +P +W +k +"} +(3,1,1) = {" +k +W +C +p +G +W +k +"} +(4,1,1) = {" +k +A +u +J +a +M +k +"} +(5,1,1) = {" +k +y +R +L +v +c +k +"} +(6,1,1) = {" +Y +W +O +x +D +W +Y +"} +(7,1,1) = {" +o +I +i +N +f +X +s +"} +(8,1,1) = {" +k +W +F +Z +e +W +k +"} +(9,1,1) = {" +k +W +g +g +g +W +k +"} diff --git a/_maps/shuttles/subshuttles/syndicate_runner.dmm b/_maps/shuttles/subshuttles/syndicate_runner.dmm index 100a0d234000..69430bf09157 100644 --- a/_maps/shuttles/subshuttles/syndicate_runner.dmm +++ b/_maps/shuttles/subshuttles/syndicate_runner.dmm @@ -74,9 +74,7 @@ /obj/effect/turf_decal/trimline/opaque/bar/filled/corner, /obj/machinery/power/terminal, /obj/effect/landmark/ert_shuttle_spawn, -/obj/structure/cable{ - icon_state = "0-1" - }, +/obj/structure/cable, /obj/structure/cable{ icon_state = "1-4" }, @@ -168,15 +166,15 @@ "co" = ( /obj/effect/turf_decal/spline/fancy/opaque/black, /obj/effect/turf_decal/trimline/opaque/syndiered/filled/line, -/obj/effect/turf_decal/trimline/opaque/bar/filled/warning{ - dir = 1 - }, /obj/structure/cable{ icon_state = "4-8" }, /obj/structure/cable{ icon_state = "1-8" }, +/obj/effect/turf_decal/trimline/opaque/bar/line{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "cF" = ( @@ -213,9 +211,7 @@ dir = 4; id = "runner_sub_holo" }, -/obj/structure/cable{ - icon_state = "0-1" - }, +/obj/structure/cable, /turf/open/floor/plating, /area/ship/bridge) "fa" = ( @@ -228,6 +224,15 @@ /obj/machinery/light/directional/south, /turf/open/floor/plasteel/tech/grid, /area/ship/bridge) +"fQ" = ( +/obj/effect/turf_decal/trimline/opaque/bar/filled/warning{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) "gi" = ( /obj/item/storage/backpack/duffelbag/med/surgery{ pixel_x = -2; @@ -325,15 +330,32 @@ }, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) +"mN" = ( +/obj/docking_port/mobile{ + dir = 2; + name = "trauma team shuttle"; + port_direction = 8; + preferred_direction = 4 + }, +/obj/machinery/door/poddoor{ + id = "runner_sub_door" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "runner_sub_holo" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ship/bridge) "nP" = ( /obj/effect/turf_decal/spline/fancy/opaque/black, /obj/effect/turf_decal/trimline/opaque/syndiered/filled/line, -/obj/effect/turf_decal/trimline/opaque/bar/filled/warning{ - dir = 1 - }, /obj/structure/cable{ icon_state = "1-8" }, +/obj/effect/turf_decal/trimline/opaque/bar/line{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "rR" = ( @@ -389,13 +411,13 @@ /obj/effect/turf_decal/trimline/opaque/syndiered/filled/line{ dir = 1 }, -/obj/effect/turf_decal/trimline/opaque/bar/filled/warning, /obj/structure/cable{ icon_state = "2-8" }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/turf_decal/trimline/opaque/bar/line, /turf/open/floor/plasteel/dark, /area/ship/bridge) "DP" = ( @@ -420,23 +442,11 @@ /turf/open/floor/engine/hull, /area/ship/external) "Or" = ( -/obj/docking_port/mobile{ - dir = 2; - name = "trauma team shuttle"; - port_direction = 8; - preferred_direction = 4 - }, -/obj/machinery/door/poddoor{ - id = "runner_sub_door" - }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "runner_sub_holo" - }, /obj/structure/cable{ - icon_state = "0-1" + icon_state = "1-2" }, -/turf/open/floor/plating, +/obj/effect/turf_decal/trimline/opaque/bar/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/bridge) "Pq" = ( /turf/template_noop, @@ -568,29 +578,29 @@ gs te "} (4,1,1) = {" -Pq bz +fQ co gA SE ku zS +Or dB -Pq "} (5,1,1) = {" -Pq sl +fQ nP ZN kM iR zS Or -Pq +mN "} (6,1,1) = {" -Pq +PD PD cF hJ @@ -598,7 +608,7 @@ ac hB bG PD -Pq +PD "} (7,1,1) = {" Pq diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm index f573148a8fe4..ce77d98f5833 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -55,12 +55,12 @@ req_access = list(20) }, /obj/item/storage/backpack/security, -/obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/suit/armor/vest/capcarapace/syndicate, -/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/under/syndicate/ngr/officer, +/obj/item/clothing/suit/armor/ngr/captain, +/obj/item/clothing/shoes/combat, /obj/item/clothing/gloves/combat, /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch, -/obj/item/clothing/head/HoS/syndicate, +/obj/item/clothing/head/ngr/peaked, /obj/effect/decal/cleanable/dirt/dust, /obj/item/gun/ballistic/revolver, /obj/item/ammo_box/a357/match, @@ -75,10 +75,6 @@ icon_state = "syndicate"; name = "armor locker" }, -/obj/item/clothing/suit/armor/vest/syndie, -/obj/item/clothing/suit/armor/vest/syndie, -/obj/item/clothing/head/helmet/operator, -/obj/item/clothing/head/helmet/operator, /obj/effect/decal/cleanable/dirt/dust, /obj/item/radio/intercom/directional/west{ pixel_y = -5 @@ -91,6 +87,12 @@ /obj/machinery/light/small/directional/west{ pixel_y = 7 }, +/obj/item/clothing/glasses/hud/security/sunglasses/ngr, +/obj/item/clothing/glasses/hud/security/sunglasses/ngr, +/obj/item/clothing/suit/armor/ngr, +/obj/item/clothing/suit/armor/ngr, +/obj/item/clothing/head/helmet/ngr, +/obj/item/clothing/head/helmet/ngr, /turf/open/floor/mineral/plastitanium, /area/ship/security/armory) "bN" = ( @@ -882,14 +884,10 @@ "pt" = ( /obj/effect/turf_decal/industrial/outline, /obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/gloves/explorer, /obj/item/clothing/accessory/armband/cargo, /obj/item/storage/belt/mining, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat/orange, -/obj/item/clothing/head/soft/grey, /obj/machinery/light/small/directional/north, /obj/structure/closet/secure_closet{ anchored = 1; @@ -899,15 +897,9 @@ }, /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/industrial/outline, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/gloves/explorer, -/obj/item/clothing/accessory/armband/cargo, -/obj/item/storage/belt/mining, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat/orange, -/obj/item/clothing/head/soft/grey, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/suit/hazardvest/ngr, +/obj/item/clothing/head/hardhat/ngr, /turf/open/floor/plasteel/tech/grid, /area/ship/storage) "pu" = ( @@ -1028,14 +1020,10 @@ req_access = list(11) }, /obj/item/clothing/shoes/workboots, -/obj/item/clothing/under/syndicate/gorlex, /obj/item/clothing/accessory/armband/engine, -/obj/item/clothing/suit/hazardvest, /obj/item/storage/belt/utility, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat, -/obj/item/clothing/head/soft/yellow, /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, /obj/machinery/light_switch{ @@ -1043,6 +1031,9 @@ pixel_y = -16; pixel_x = -12 }, +/obj/item/clothing/under/syndicate/ngr, +/obj/item/clothing/suit/hazardvest/ngr, +/obj/item/clothing/head/hardhat/ngr, /turf/open/floor/plasteel/tech/grid, /area/ship/storage) "rM" = ( @@ -1154,15 +1145,14 @@ req_access = list(48) }, /obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/gloves/explorer, /obj/item/clothing/accessory/armband/cargo, /obj/item/storage/belt/mining, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat/orange, -/obj/item/clothing/head/soft/grey, /obj/machinery/airalarm/directional/north, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/suit/hazardvest/ngr, +/obj/item/clothing/head/hardhat/ngr, /turf/open/floor/plasteel/tech/grid, /area/ship/storage) "tI" = ( @@ -1340,6 +1330,18 @@ /area/ship/crew) "wP" = ( /obj/effect/turf_decal/industrial/outline, +/obj/structure/closet/crate{ + name = "desert equipment crate"; + desc = "A rectangular steel crate containing supplies to survive a desert environment more easily." + }, +/obj/item/clothing/neck/shemagh/ngr, +/obj/item/clothing/neck/shemagh/ngr, +/obj/item/clothing/neck/shemagh/ngr, +/obj/item/clothing/neck/shemagh/ngr, +/obj/item/clothing/head/ngr/flap, +/obj/item/clothing/head/ngr/flap, +/obj/item/clothing/head/ngr/flap, +/obj/item/clothing/head/ngr/flap, /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "xm" = ( @@ -1489,29 +1491,32 @@ /obj/structure/closet/wall/red/directional/east{ name = "uniform closet" }, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/under/syndicate/skirt, -/obj/item/clothing/under/syndicate/skirt, -/obj/item/clothing/under/syndicate/skirt, -/obj/item/clothing/under/syndicate/skirt, -/obj/item/clothing/under/syndicate, -/obj/item/clothing/under/syndicate, -/obj/item/clothing/under/syndicate, -/obj/item/clothing/under/syndicate, -/obj/item/clothing/head/soft/black, -/obj/item/clothing/head/soft/black, -/obj/item/clothing/head/soft/black, -/obj/item/clothing/head/soft/black, +/obj/item/tank/jetpack/suit, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/under/syndicate/ngr, +/obj/item/clothing/under/syndicate/ngr, +/obj/item/clothing/under/syndicate/ngr, +/obj/item/clothing/under/syndicate/ngr, /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/under/syndicate/ngr/jumpsuit, +/obj/item/clothing/head/ngr, +/obj/item/clothing/head/ngr, +/obj/item/clothing/head/ngr, +/obj/item/clothing/head/ngr, /obj/item/radio, /obj/item/radio, /obj/item/radio, @@ -1519,12 +1524,6 @@ /obj/item/radio, /obj/item/radio, /obj/item/radio, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, /turf/open/floor/plasteel/dark, /area/ship/crew/dorm) "zA" = ( @@ -1646,19 +1645,14 @@ name = "foreman's locker"; req_access = list(56) }, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/under/syndicate/gorlex, -/obj/item/clothing/suit/toggle/industrial, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/under/syndicate/ngr/officer, /obj/item/clothing/gloves/combat, /obj/item/storage/belt/utility/chief{ name = "\improper Foreman's toolbelt" }, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/welding, -/obj/item/clothing/head/hardhat/white, -/obj/item/clothing/head/beret/ce{ - name = "foreman beret" - }, /obj/item/storage/toolbox/syndicate, /obj/item/wrench/combat, /obj/item/ammo_box/magazine/m10mm, @@ -1666,6 +1660,8 @@ /obj/item/clothing/accessory/holster, /obj/item/grenade/chem_grenade/metalfoam, /obj/machinery/airalarm/directional/west, +/obj/item/clothing/suit/ngr, +/obj/item/clothing/head/hardhat/ngr/foreman, /obj/item/tank/jetpack/suit, /turf/open/floor/carpet/red, /area/ship/cargo/office) @@ -1696,7 +1692,7 @@ dir = 4; pixel_x = -20 }, -/obj/item/clothing/suit/space/hardsuit/syndi/sbg, +/obj/item/clothing/suit/space/hardsuit/syndi/ngr, /obj/item/clothing/mask/gas/syndicate, /turf/open/floor/carpet/black, /area/ship/bridge) diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 5878f667db1e..7bf283492efc 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -101,8 +101,8 @@ req_access = list(3,150) }, /obj/item/clothing/under/syndicate/ngr/officer, -/obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain, -/obj/item/clothing/head/ngrcap, +/obj/item/clothing/suit/armor/ngr/captain, +/obj/item/clothing/head/ngr/peaked, /obj/item/clothing/shoes/combat, /obj/item/megaphone/sec{ name = "syndicate megaphone" @@ -2367,7 +2367,7 @@ dir = 8 }, /obj/machinery/suit_storage_unit/syndicate{ - suit_type = /obj/item/clothing/suit/space/hardsuit/syndi/sbg; + suit_type = /obj/item/clothing/suit/space/hardsuit/syndi/ngr; name = "lieutenant's suit storage unit" }, /turf/open/floor/mineral/plastitanium, @@ -2560,11 +2560,8 @@ /obj/effect/turf_decal/corner/opaque/syndiered/half{ dir = 4 }, -/obj/machinery/computer/communications{ - dir = 8; - req_access = list(151); - set_obj_flags = "EMAGGED"; - icon_state = "computer-right" +/obj/structure/frame/computer{ + dir = 8 }, /turf/open/floor/mineral/plastitanium, /area/ship/bridge) @@ -4262,7 +4259,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/computer/helm{ dir = 8; - icon_state = "computer-middle" + icon_state = "computer-right" }, /obj/effect/turf_decal/corner/opaque/syndiered/half{ dir = 4 @@ -4675,8 +4672,7 @@ pixel_x = 6; pixel_y = 1 }, -/obj/item/gun/ballistic/automatic/sniper_rifle/syndicate{ - spawnwithmagazine = 0; +/obj/item/gun/ballistic/automatic/sniper_rifle/syndicate/no_mag{ pixel_x = -3; pixel_y = 6 }, @@ -5612,15 +5608,13 @@ /area/ship/security) "Gm" = ( /obj/structure/rack, -/obj/item/gun/ballistic/automatic/ebr{ +/obj/item/gun/ballistic/automatic/ebr/no_mag{ pixel_x = -16; pixel_y = 7; - spawnwithmagazine = 0 }, -/obj/item/gun/ballistic/automatic/ebr{ +/obj/item/gun/ballistic/automatic/ebr/no_mag{ pixel_x = -9; pixel_y = 2; - spawnwithmagazine = 0 }, /obj/item/ammo_box/magazine/ebr{ pixel_x = 10; @@ -6100,10 +6094,6 @@ /obj/machinery/camera/autoname{ dir = 6 }, -/obj/item/reagent_containers/spray/syndicate{ - pixel_y = 11; - pixel_x = -2 - }, /turf/open/floor/wood/walnut, /area/ship/crew/janitor) "IE" = ( @@ -7509,15 +7499,13 @@ /area/ship/hallway/aft) "Rv" = ( /obj/structure/rack, -/obj/item/gun/ballistic/shotgun/bulldog{ +/obj/item/gun/ballistic/shotgun/bulldog/no_mag{ pixel_x = -7; pixel_y = 7; - spawnwithmagazine = 0 }, -/obj/item/gun/ballistic/shotgun/bulldog{ +/obj/item/gun/ballistic/shotgun/bulldog/no_mag{ pixel_y = -3; pixel_x = 2; - spawnwithmagazine = 0 }, /obj/machinery/light/directional/north, /obj/item/ammo_box/magazine/m12g{ @@ -8848,19 +8836,16 @@ /area/ship/engineering/engine) "YO" = ( /obj/structure/rack, -/obj/item/gun/ballistic/automatic/smg/c20r{ +/obj/item/gun/ballistic/automatic/smg/c20r/no_mag{ pixel_x = 2; pixel_y = 8; - spawnwithmagazine = 0 }, -/obj/item/gun/ballistic/automatic/smg/c20r{ +/obj/item/gun/ballistic/automatic/smg/c20r/no_mag{ pixel_y = 3; - spawnwithmagazine = 0 }, -/obj/item/gun/ballistic/automatic/smg/c20r{ +/obj/item/gun/ballistic/automatic/smg/c20r/no_mag{ pixel_y = -2; pixel_x = 3; - spawnwithmagazine = 0 }, /obj/item/ammo_box/magazine/smgm45, /obj/item/ammo_box/magazine/smgm45, diff --git a/check_regex.yaml b/check_regex.yaml index 538d570daea4..e01c41995e8e 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -38,7 +38,7 @@ standards: - exactly: [ - 269, + 268, "non-bitwise << uses", '(?= max_interaction_count) +#define DOING_INTERACTION_WITH_TARGET(user, target) (LAZYACCESS(user.do_afters, target)) +#define DOING_INTERACTION_WITH_TARGET_LIMIT(user, target, max_interaction_count) ((LAZYACCESS(user.do_afters, target) || 0) >= max_interaction_count) /// If you examine the same atom twice in this timeframe, we call examine_more() instead of examine() #define EXAMINE_MORE_TIME 1 SECONDS diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 865470774039..d9ca63008c1d 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -33,6 +33,7 @@ #define IN_STORAGE (1<<11) //is this item in the storage item, such as backpack? used for tooltips #define SURGICAL_TOOL (1<<12) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes) #define EYE_STAB (1<<13) /// Item can be used to eyestab +#define NO_PIXEL_RANDOM_DROP (1<<14) //if dropped, it wont have a randomized pixel_x/pixel_y // Flags for the clothing_flags var on /obj/item/clothing diff --git a/code/__DEFINES/power.dm b/code/__DEFINES/power.dm index a95fec219552..29d6e72dffa5 100644 --- a/code/__DEFINES/power.dm +++ b/code/__DEFINES/power.dm @@ -12,3 +12,16 @@ #define TESLA_DEFAULT_POWER 1738260 #define TESLA_MINI_POWER 869130 + +#define LIGHT_DRAW 10 // mulitplied by brightness, typically 4-8 + +#define IDLE_DRAW_MINIMAL 50 // 20x = 1kw, used for small things and computers on stand-by +#define IDLE_DRAW_LOW 200 //5x = 1kw, used for always-active computers +#define IDLE_DRAW_MEDIUM 500 //2x = 1kw +#define IDLE_DRAW_HIGH 1000 //1kw + +#define ACTIVE_DRAW_MINIMAL 200 //5x = 1kw +#define ACTIVE_DRAW_LOW 500 //2x = 1kw +#define ACTIVE_DRAW_MEDIUM 1000 //microwaves use this +#define ACTIVE_DRAW_HIGH 2000 +#define ACTIVE_DRAW_EXTREME 5000 //highest this value should be in most cases diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index a470b9087b2e..96d322285dfc 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -96,6 +96,8 @@ //Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam #define MAX_MESSAGE_LEN 1024 +#define MAX_FLAVOR_LEN 1024 +#define MAX_SHORTFLAVOR_LEN 100 #define MAX_NAME_LEN 42 #define MAX_BROADCAST_LEN 512 #define MAX_CHARTER_LEN 80 diff --git a/code/__DEFINES/sight.dm b/code/__DEFINES/sight.dm index a0ce649dd04d..ba4589985015 100644 --- a/code/__DEFINES/sight.dm +++ b/code/__DEFINES/sight.dm @@ -13,6 +13,8 @@ #define INVISIBILITY_OBSERVER 60 #define SEE_INVISIBLE_OBSERVER 60 +#define INVISIBILITY_INVINISMIN 80 //invisible admins + #define INVISIBILITY_MAXIMUM 100 //the maximum allowed for "real" objects #define INVISIBILITY_ABSTRACT 101 //only used for abstract objects (e.g. spacevine_controller), things that are not really there. diff --git a/code/__DEFINES/species_clothing_defines.dm b/code/__DEFINES/species_clothing_defines.dm index df8c2db1afc8..c74a20877348 100644 --- a/code/__DEFINES/species_clothing_defines.dm +++ b/code/__DEFINES/species_clothing_defines.dm @@ -31,10 +31,12 @@ #define KEPORI_UNIFORM_PATH 'icons/mob/species/kepori/onmob_uniform_kepori.dmi' #define KEPORI_SHOES_PATH 'icons/mob/species/kepori/onmob_feet_kepori.dmi' #define KEPORI_SUIT_PATH 'icons/mob/species/kepori/onmob_suit_kepori.dmi' +//#define KEPORI_EARS_PATH 'icons/mob/species/kepori/onmob_ears_kepori.dmi' #define KEPORI_MASK_PATH 'icons/mob/species/kepori/onmob_mask_kepori.dmi' #define KEPORI_HEAD_PATH 'icons/mob/species/kepori/onmob_head_kepori.dmi' #define KEPORI_GLOVES_PATH 'icons/mob/species/kepori/onmob_hands_kepori.dmi' //#define KEPORI_BELT_PATH 'icons/mob/species/kepori/onmob_belt_kepori.dmi' +//#define KEPORI_GLASSES_PATH 'icons/mob/species/kepori/onmob_eyes_kepori.dmi' #define KEPORI_UNDERWEAR_TORSO_PATH 'icons/mob/clothing/underwear/species/underwear_torso_kepori.dmi' #define KEPORI_UNDERWEAR_LEGS_PATH 'icons/mob/clothing/underwear/species/underwear_legs_kepori.dmi' #define KEPORI_UNDERWEAR_SOCKS_PATH 'icons/mob/clothing/underwear/species/underwear_socks_kepori.dmi' diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm new file mode 100644 index 000000000000..cb657520e33f --- /dev/null +++ b/code/__DEFINES/storage.dm @@ -0,0 +1,88 @@ +// storage_flags variable on /datum/component/storage + +// Storage limits. These can be combined (and usually are combined). +/// Check max_items and contents.len when trying to insert +#define STORAGE_LIMIT_MAX_ITEMS (1<<0) +/// Check max_combined_w_class. +#define STORAGE_LIMIT_COMBINED_W_CLASS (1<<1) +/// Use the new volume system. Will automatically force rendering to use the new volume/baystation scaling UI so this is kind of incompatible with stuff like stack storage etc etc. +#define STORAGE_LIMIT_VOLUME (1<<2) +/// Use max_w_class +#define STORAGE_LIMIT_MAX_W_CLASS (1<<3) + +#define STORAGE_FLAGS_LEGACY_DEFAULT (STORAGE_LIMIT_MAX_ITEMS | STORAGE_LIMIT_COMBINED_W_CLASS | STORAGE_LIMIT_MAX_W_CLASS) +#define STORAGE_FLAGS_VOLUME_DEFAULT (STORAGE_LIMIT_VOLUME | STORAGE_LIMIT_MAX_W_CLASS) + +// UI defines +/// Size of volumetric box icon +#define VOLUMETRIC_STORAGE_BOX_ICON_SIZE 32 +/// Size of EACH left/right border icon for volumetric boxes +#define VOLUMETRIC_STORAGE_BOX_BORDER_SIZE 1 +/// Minimum pixels an item must have in volumetric scaled storage UI +#define MINIMUM_PIXELS_PER_ITEM 8 +/// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. +#define MAXIMUM_VOLUMETRIC_ITEMS 256 +/// How much padding to give between items +#define VOLUMETRIC_STORAGE_ITEM_PADDING 3 +/// How much padding to give to edges +#define VOLUMETRIC_STORAGE_EDGE_PADDING 1 + +//ITEM INVENTORY WEIGHT, FOR w_class +/// Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money +#define WEIGHT_CLASS_TINY 1 +/// Fits within a small pocket, ex: Flashlight, Multitool, Grenades, GPS Device +#define WEIGHT_CLASS_SMALL 2 +/// Can be carried in one hand comfortably, ex: Fire extinguisher, Stunbaton, Gas Mask, Metal Sheets +#define WEIGHT_CLASS_NORMAL 3 +/// Items that can be wielded or equipped, (e.g. defibrillator, space suits). Often fits inside backpacks. +#define WEIGHT_CLASS_BULKY 4 +/// Usually represents objects that require two hands to operate, (e.g. shotgun, two-handed melee weapons) May fit on some inventory slots +#define WEIGHT_CLASS_HUGE 5 +/// Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe - Can not fit in Boh +#define WEIGHT_CLASS_GIGANTIC 6 + +// PLEASE KEEP ALL VOLUME DEFINES IN THIS FILE, it's going to be hell to keep track of them later. +#define DEFAULT_VOLUME_TINY 1 +#define DEFAULT_VOLUME_SMALL 2 +#define DEFAULT_VOLUME_NORMAL 6 +#define DEFAULT_VOLUME_BULKY 12 +#define DEFAULT_VOLUME_HUGE 24 +#define DEFAULT_VOLUME_GIGANTIC 48 + +GLOBAL_LIST_INIT(default_weight_class_to_volume, list( + "[WEIGHT_CLASS_TINY]" = DEFAULT_VOLUME_TINY, + "[WEIGHT_CLASS_SMALL]" = DEFAULT_VOLUME_SMALL, + "[WEIGHT_CLASS_NORMAL]" = DEFAULT_VOLUME_NORMAL, + "[WEIGHT_CLASS_BULKY]" = DEFAULT_VOLUME_BULKY, + "[WEIGHT_CLASS_HUGE]" = DEFAULT_VOLUME_HUGE, + "[WEIGHT_CLASS_GIGANTIC]" = DEFAULT_VOLUME_GIGANTIC + )) + +/// Macro for automatically getting the volume of an item from its w_class. +#define AUTO_SCALE_VOLUME(w_class) (GLOB.default_weight_class_to_volume["[w_class]"]) +/// Macro for automatically getting the volume of a storage item from its max_w_class and max_combined_w_class. +#define AUTO_SCALE_STORAGE_VOLUME(w_class, max_combined_w_class) (AUTO_SCALE_VOLUME(w_class) * (max_combined_w_class / w_class)) + +// Let's keep all of this in one place. given what we put above anyways.. + +// volume amount for items +#define ITEM_VOLUME_DISK DEFAULT_VOLUME_TINY +#define ITEM_VOLUME_CONTAINER_M 12 //makes nested toolboxes & toolbelts less efficient +#define ITEM_VOLUME_MOB 40//prevents mob stacking + +// #define SAMPLE_VOLUME_AMOUNT 2 + +// max_weight_class for storages +// +#define MAX_WEIGHT_CLASS_S_CONTAINER WEIGHT_CLASS_SMALL +#define MAX_WEIGHT_CLASS_M_CONTAINER WEIGHT_CLASS_NORMAL +#define MAX_WEIGHT_CLASS_BACKPACK WEIGHT_CLASS_NORMAL +#define MAX_WEIGHT_CLASS_DUFFEL WEIGHT_CLASS_BULKY + +// max_volume for storages +#define STORAGE_VOLUME_CONTAINER_S DEFAULT_VOLUME_NORMAL //3 small items +#define STORAGE_VOLUME_CONTAINER_M (DEFAULT_VOLUME_NORMAL * 2) //6 small items +#define STORAGE_VOLUME_SATCHEL (DEFAULT_VOLUME_NORMAL * 4) //4 normal items +#define STORAGE_VOLUME_BACKPACK (DEFAULT_VOLUME_NORMAL * 6) //6 normal items, or 3 bulky items +#define STORAGE_VOLUME_DUFFLEBAG (DEFAULT_VOLUME_NORMAL * 8) // 2 huge items, or 4 bulky items +#define STORAGE_VOLUME_BAG_OF_HOLDING (DEFAULT_VOLUME_NORMAL * 9) //1.5X backpack diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 629755487849..36aa57e48625 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -174,6 +174,7 @@ #define FIRE_PRIORITY_PARALLAX 65 #define FIRE_PRIORITY_INSTRUMENTS 80 #define FIRE_PRIORITY_MOBS 100 +#define FIRE_PRIORITY_MOVABLE_PHYSICS 105 #define FIRE_PRIORITY_TGUI 110 #define FIRE_PRIORITY_TICKER 200 #define FIRE_PRIORITY_ATMOS_ADJACENCY 300 diff --git a/code/__DEFINES/timed_action.dm b/code/__DEFINES/timed_action.dm new file mode 100644 index 000000000000..90572cdc5416 --- /dev/null +++ b/code/__DEFINES/timed_action.dm @@ -0,0 +1,10 @@ +// timed_action_flags parameter for 'proc/do_after' + +// The user can move freely without canceling the do_after +#define IGNORE_USER_LOC_CHANGE (1<<0) +// The target can move freely without canceling the do_after +#define IGNORE_TARGET_LOC_CHANGE (1<<1) +/// Can do the action even if the item is no longer being held +#define IGNORE_HELD_ITEM (1<<2) +/// Can do the action even if the mob is incapacitated +#define IGNORE_INCAPACITATED (1<<3) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 72123b78268c..f88f0c9d791c 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -294,8 +294,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NIGHT_VISION "night_vision" #define TRAIT_LIGHT_STEP "light_step" #define TRAIT_SPIRITUAL "spiritual" -#define TRAIT_FAN_CLOWN "fan_clown" -#define TRAIT_FAN_MIME "fan_mime" #define TRAIT_FAN_RILENA "fan_rilena" #define TRAIT_VORACIOUS "voracious" #define TRAIT_SELF_AWARE "self_aware" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 28e2464aa8a9..f603e85292ad 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -16,7 +16,7 @@ #define LAZYREMOVE(L, I) if(L) { L -= I; if(!length(L)) { L = null; } } #define LAZYADD(L, I) if(!L) { L = list(); } L += I; #define LAZYOR(L, I) if(!L) { L = list(); } L |= I; -#define LAZYFIND(L, V) L ? L.Find(V) : 0 +#define LAZYFIND(L, V) (L ? L.Find(V) : 0) #define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= length(L) ? L[I] : null) : L[I]) : null) #define LAZYSET(L, K, V) if(!L) { L = list(); } L[K] = V; #define LAZYISIN(L, V) (L ? (V in L) : FALSE) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 81ba9ec06dd2..63990e61ee33 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -241,66 +241,6 @@ GLOBAL_LIST_EMPTY(species_list) else return "unknown" -///Timed action involving two mobs, the user and the target. -/proc/do_mob(mob/user , mob/target, time = 3 SECONDS, uninterruptible = FALSE, progress = TRUE, datum/callback/extra_checks = null, ignore_loc_change = FALSE, hidden = FALSE) - if(!user || !target) - return FALSE - - if(target && INTERACTING_WITH(user, target)) - to_chat(user, "You're already interacting with [target]!") - return - - var/user_loc = user.loc - - var/drifting = FALSE - if(!user.Process_Spacemove(0) && user.inertia_dir) - drifting = TRUE - - var/target_loc = target.loc - - LAZYADD(user.do_afters, target) - LAZYADD(target.targeted_by, user) - var/holding = user.get_active_held_item() - var/datum/progressbar/progbar - var/datum/cogbar/cog - if (progress) - progbar = new(user, time, target) - if(!hidden && time >= 1 SECONDS) - cog = new(user) - - var/endtime = world.time+time - var/starttime = world.time - . = TRUE - while (world.time < endtime) - stoplag(1) - if(!QDELETED(progbar)) - progbar.update(world.time - starttime) - if(QDELETED(user) || QDELETED(target)) - . = FALSE - break - if(uninterruptible) - continue - - if(drifting && !user.inertia_dir) - drifting = FALSE - user_loc = user.loc - - - if(!ignore_loc_change && ((!drifting && user.loc != user_loc) || target.loc != target_loc)) - . = FALSE - break - - if(user.get_active_held_item() != holding || user.incapacitated() || (extra_checks && !extra_checks.Invoke())) - . = FALSE - break - if(!QDELETED(progbar)) - progbar.end_progress() - - cog?.remove() - if(!QDELETED(target)) - LAZYREMOVE(user.do_afters, target) - LAZYREMOVE(target.targeted_by, user) - //some additional checks as a callback for for do_afters that want to break on losing health or on the mob taking action /mob/proc/break_do_after_checks(list/checked_health, check_clicks) if(check_clicks && next_move > world.time) @@ -315,24 +255,40 @@ GLOBAL_LIST_EMPTY(species_list) checked_health["health"] = health return ..() -///Timed action involving one mob user. Target is optional. -/proc/do_after(mob/user, delay, needhand = TRUE, atom/target = null, progress = TRUE, datum/callback/extra_checks = null, hidden = FALSE) +/** + * Timed action involving one mob user. A target can also be specified, but it is optional. + * + * Checks that `user` does not move, change hands, get stunned, etc. for the + * given `delay`. Returns `TRUE` on success or `FALSE` on failure. + * + * Arguments: + * * user - the primary "user" of the do_after. + * * delay - how long the do_after takes. Defaults to 3 SECONDS. + * * target - the (optional) target mob of the do_after. If they move/cease to exist, the do_after is cancelled. + * * timed_action_flags - optional flags to override certain do_after checks (see DEFINES/timed_action.dm). + * * progress - if TRUE, a progress bar is displayed. + * * extra_checks - a callback that can be used to add extra checks to the do_after. Returning false in this callback will cancel the do_after. + */ +/proc/do_after(mob/user, delay = 3 SECONDS, atom/target, timed_action_flags = NONE, progress = TRUE, datum/callback/extra_checks, interaction_key, max_interact_count = 1, hidden = FALSE) if(!user) return FALSE + if(!isnum(delay)) + CRASH("do_after was passed a non-number delay: [delay || "null"].") - if(target && INTERACTING_WITH(user, target)) + if(target && DOING_INTERACTION_WITH_TARGET(user, target)) to_chat(user, "You're already interacting with [target]!") return - var/atom/Tloc = null - if(target && !isturf(target)) - Tloc = target.loc - - if(target) - LAZYADD(user.do_afters, target) - LAZYADD(target.targeted_by, user) + if(!interaction_key && target) + interaction_key = target //Use the direct ref to the target + if(interaction_key) //Do we have a interaction_key now? + var/current_interaction_count = LAZYACCESS(user.do_afters, interaction_key) || 0 + if(current_interaction_count >= max_interact_count) //We are at our peak + return + LAZYSET(user.do_afters, interaction_key, current_interaction_count + 1) - var/atom/Uloc = user.loc + var/atom/user_loc = user.loc + var/atom/target_loc = target?.loc var/drifting = FALSE if(!user.Process_Spacemove(0) && user.inertia_dir) @@ -340,136 +296,59 @@ GLOBAL_LIST_EMPTY(species_list) var/holding = user.get_active_held_item() - var/holdingnull = TRUE //User's hand started out empty, check for an empty hand - if(holding) - holdingnull = FALSE //Users hand started holding something, check to see if it's still holding that - delay *= user.do_after_coefficent() var/datum/progressbar/progbar var/datum/cogbar/cog + if(progress) - progbar = new(user, delay, target || user) + if(user.client) + progbar = new(user, delay, target || user) + if(!hidden && delay >= 1 SECONDS) cog = new(user) + var/endtime = world.time + delay var/starttime = world.time . = TRUE while (world.time < endtime) stoplag(1) + if(!QDELETED(progbar)) progbar.update(world.time - starttime) if(drifting && !user.inertia_dir) drifting = FALSE - Uloc = user.loc + user_loc = user.loc - if(QDELETED(user) || user.stat || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke())) + // Check flags + if(QDELETED(user) \ + || (!(timed_action_flags & IGNORE_USER_LOC_CHANGE) && !drifting && user.loc != user_loc) \ + || (!(timed_action_flags & IGNORE_HELD_ITEM) && user.get_active_held_item() != holding) \ + || (!(timed_action_flags & IGNORE_INCAPACITATED) && HAS_TRAIT(user, TRAIT_INCAPACITATED)) \ + || (extra_checks && !extra_checks.Invoke())) . = FALSE break - if(isliving(user)) - var/mob/living/L = user - if(L.IsStun() || L.IsParalyzed()) - . = FALSE - break - - if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc)) - if((Uloc != Tloc || Tloc != user) && !drifting) - . = FALSE - break - - if(target && !(target in user.do_afters)) + // If we have a target, we check for them moving here. We don't care about it if we're drifting or we ignore target loc change + if(target && (user != target) && \ + (QDELETED(target) \ + || (!(timed_action_flags & IGNORE_TARGET_LOC_CHANGE) && target.loc != target_loc))) . = FALSE break - if(needhand) - //This might seem like an odd check, but you can still need a hand even when it's empty - //i.e the hand is used to pull some item/tool out of the construction - if(!holdingnull) - if(!holding) - . = FALSE - break - if(user.get_active_held_item() != holding) - . = FALSE - break if(!QDELETED(progbar)) progbar.end_progress() cog?.remove() - if(!QDELETED(target)) - LAZYREMOVE(user.do_afters, target) - LAZYREMOVE(target.targeted_by, user) + if(interaction_key) + LAZYREMOVE(user.do_afters, interaction_key) /mob/proc/do_after_coefficent() // This gets added to the delay on a do_after, default 1 . = 1 return -///Timed action involving at least one mob user and a list of targets. -/proc/do_after_mob(mob/user, list/targets, time = 3 SECONDS, uninterruptible = FALSE, progress = TRUE, datum/callback/extra_checks) - if(!user) - return FALSE - if(!islist(targets)) - targets = list(targets) - if(!length(targets)) - return FALSE - - for(var/i in targets) - var/mob/living/target = i - if(INTERACTING_WITH(user, target)) - to_chat(user, "You're already interacting with [target]!") - return - - - var/user_loc = user.loc - - var/drifting = FALSE - if(!user.Process_Spacemove(0) && user.inertia_dir) - drifting = TRUE - - var/list/originalloc = list() - for(var/atom/target in targets) - originalloc[target] = target.loc - LAZYADD(user.do_afters, target) - LAZYADD(target.targeted_by, user) - - var/holding = user.get_active_held_item() - var/datum/progressbar/progbar - if(progress) - progbar = new(user, time, targets[1]) - - var/endtime = world.time + time - var/starttime = world.time - . = TRUE - mainloop: - while(world.time < endtime) - stoplag(1) - if(!QDELETED(progbar)) - progbar.update(world.time - starttime) - if(QDELETED(user) || !targets) - . = FALSE - break - if(uninterruptible) - continue - - if(drifting && !user.inertia_dir) - drifting = FALSE - user_loc = user.loc - - for(var/atom/target in targets) - if((!drifting && user_loc != user.loc) || QDELETED(target) || originalloc[target] != target.loc || user.get_active_held_item() != holding || user.incapacitated() || (extra_checks && !extra_checks.Invoke())) - . = FALSE - break mainloop - if(!QDELETED(progbar)) - progbar.end_progress() - - for(var/thing in targets) - var/atom/target = thing - if(!QDELETED(target)) - LAZYREMOVE(user.do_afters, target) - LAZYREMOVE(target.targeted_by, user) - /proc/is_species(A, species_datum) . = FALSE if(ishuman(A)) diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index 4348460c24d7..7054c051f707 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -233,54 +233,52 @@ GLOBAL_DATUM(syndicate_code_response_regex, /regex) else . += ", " +#define FACTION_SYNDICATE "Syndicate" + #define FACTION_NGR "New Gorlex Republic" + #define FACTION_CYBERSUN "CyberSun" + #define FACTION_SUNS "Student-Union of Naturalistic Sciences" +#define FACTION_SOLGOV "SolGov" +#define FACTION_SRM "Saint-Roumain Militia" +#define FACTION_INTEQ "Inteq Risk Management Group" +#define FACTION_CLIP "CLIP Minutemen" +#define FACTION_NT "Nanotrasen" + #define FACTION_NS_LOGI "N+S Logistics" + #define FACTION_VIGILITAS "Vigilitas Interstellar" +#define FACTION_FRONTIER "Frontiersmen Fleet" +#define FACTION_PGF "Pan-Gezenan Federation" +#define FACTION_INDEPENDENT "Independent" + +#define PREFIX_SYNDICATE list("SEV", "SSV") + #define PREFIX_NGR list("NGRV") + #define PREFIX_CYBERSUN list("CSSV") + #define PREFIX_SUNS list("SUNS") +#define PREFIX_SOLGOV list("SCSV") +#define PREFIX_SRM list("SRSV") +#define PREFIX_INTEQ list("IRMV") +#define PREFIX_CLIP list("CMSV", "CMGSV") +#define PREFIX_NT list("NTSV") + #define PREFIX_NS_LOGI list("NSSV") + #define PREFIX_VIGILITAS list("VISV") +#define PREFIX_FRONTIER list("FFV") +#define PREFIX_PGF list("PGF", "PGFMC", "PGFN") +#define PREFIX_INDEPENDENT list("SV", "IMV", "ISV") + /// List of all ship factions to their prefixes. GLOBAL_LIST_INIT(ship_faction_to_prefixes, list( - "Syndicate" = list( - "SEV", - "SSV", - ), - "New Gorlex Republic" = list( - "NGRV", - ), - "CyberSun" = list( - "CSSV", - ), - "Student-Union of Naturalistic Sciences" = list( - "SUNS", - ), - "SolGov" = list( - "SCSV", - ), - "Saint-Roumain Militia" = list( - "SRSV", - ), - "Independent" = list( - "SV", - "IMV", - "ISV", - "XSV", - ), - "Inteq Risk Management Group" = list( - "IRMV", - ), - "CLIP Minutemen" = list( - "CMSV", - "CMGSV", - ), - "Nanotrasen" = list( - "NTSV", - ), - "Frontiersmen Fleet" = list( - "FFV", - ), - "Saint-Roumaine Militia" = list( - "SRSV", - ), - "Pan-Gezenan Federation" = list( - "PGF", - "PGFMC", - "PGFN", - ), + FACTION_SYNDICATE = PREFIX_SYNDICATE, + FACTION_NGR = PREFIX_NGR, + FACTION_CYBERSUN = PREFIX_CYBERSUN, + FACTION_SUNS = PREFIX_SUNS, + FACTION_SOLGOV = PREFIX_SOLGOV, + FACTION_SRM = PREFIX_SRM, + FACTION_INTEQ = PREFIX_INTEQ, + FACTION_CLIP = PREFIX_CLIP, + FACTION_NT = PREFIX_NT, + FACTION_NS_LOGI = PREFIX_NS_LOGI, + FACTION_VIGILITAS = PREFIX_VIGILITAS, + FACTION_FRONTIER = PREFIX_FRONTIER, + FACTION_PGF = PREFIX_PGF, + FACTION_INDEPENDENT = PREFIX_INDEPENDENT )) /proc/ship_prefix_to_faction(prefix) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 8e9a1dbc9979..c8c7b63d0a09 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1329,44 +1329,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) temp = ((temp + (temp>>3))&29127) % 63 //070707 return temp -//same as do_mob except for movables and it allows both to drift and doesn't draw progressbar -/proc/do_atom(atom/movable/user , atom/movable/target, time = 30, uninterruptible = 0,datum/callback/extra_checks = null) - if(!user || !target) - return TRUE - var/user_loc = user.loc - - var/drifting = FALSE - if(!user.Process_Spacemove(0) && user.inertia_dir) - drifting = TRUE - - var/target_drifting = FALSE - if(!target.Process_Spacemove(0) && target.inertia_dir) - target_drifting = TRUE - - var/target_loc = target.loc - - var/endtime = world.time+time - . = TRUE - while (world.time < endtime) - stoplag(1) - if(QDELETED(user) || QDELETED(target)) - . = 0 - break - if(uninterruptible) - continue - - if(drifting && !user.inertia_dir) - drifting = FALSE - user_loc = user.loc - - if(target_drifting && !target.inertia_dir) - target_drifting = FALSE - target_loc = target.loc - - if((!drifting && user.loc != user_loc) || (!target_drifting && target.loc != target_loc) || (extra_checks && !extra_checks.Invoke())) - . = FALSE - break - //returns a GUID like identifier (using a mostly made up record format) //guids are not on their own suitable for access or security tokens, as most of their bits are predictable. // (But may make a nice salt to one) diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 406f0bb0b101..bbfb0d3a74c5 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -152,6 +152,7 @@ DEFINE_BITFIELD(item_flags, list( "NOBLUDGEON" = NOBLUDGEON, "NO_MAT_REDEMPTION" = NO_MAT_REDEMPTION, "SLOWS_WHILE_IN_HAND" = SLOWS_WHILE_IN_HAND, + "NO_PIXEL_RANDOM_DROP" = NO_PIXEL_RANDOM_DROP, )) DEFINE_BITFIELD(machine_stat, list( @@ -190,6 +191,7 @@ DEFINE_BITFIELD(movement_type, list( "GROUND" = GROUND, "PHASING" = PHASING, "VENTCRAWLING" = VENTCRAWLING, + "THROWN" = THROWN, )) DEFINE_BITFIELD(obj_flags, list( @@ -263,6 +265,14 @@ DEFINE_BITFIELD(zap_flags, list( "ZAP_OBJ_DAMAGE" = ZAP_OBJ_DAMAGE, )) + +DEFINE_BITFIELD(storage_flags, list( + "STORAGE_LIMIT_MAX_ITEMS" = STORAGE_LIMIT_MAX_ITEMS, + "STORAGE_LIMIT_MAX_W_CLASS" = STORAGE_LIMIT_MAX_W_CLASS, + "STORAGE_LIMIT_COMBINED_W_CLASS" = STORAGE_LIMIT_COMBINED_W_CLASS, + "STORAGE_LIMIT_VOLUME" = STORAGE_LIMIT_VOLUME, +)) + DEFINE_BITFIELD(bodytype, list( "BODYTYPE_ORGANIC" = BODYTYPE_ORGANIC, "BODYTYPE_ROBOTIC" = BODYTYPE_ROBOTIC, diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 479e43e34543..f4f000be6d57 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -189,6 +189,22 @@ GLOBAL_LIST_INIT(exowearlist, list(PREF_NOEXOWEAR, PREF_EXOWEAR, PREF_ALTEXOWEAR #define UPLINK_PEN "Pen" //like a real spy! GLOBAL_LIST_INIT(uplink_spawn_loc_list, list(UPLINK_PDA, UPLINK_RADIO, UPLINK_PEN)) +//favorite cigarette brand +#define PREF_CIG_SPACE "Space Cigarettes" +#define PREF_CIG_DROMEDARY "DromedaryCo Cigarettes" +#define PREF_CIG_UPLIFT "Uplift Smooth Cigarettes" +#define PREF_CIG_ROBUST "Robust Cigarettes" +#define PREF_CIG_ROBUSTGOLD "Robust Gold Cigarettes" +#define PREF_CIG_CARP "Carp Classic Cigarettes" +#define PREF_CIG_MIDORI "Midori Taboko Rollies" +#define PREF_CIGAR "Premium Cigars" +#define PREF_CIGAR_SOLAR "Solarian Cigars" +#define PREF_CIGAR_COHIBA "Cohiba Cigars" +#define PREF_VAPE "Vape Pen" +#define PREF_PIPE "Fancy Pipe" + +GLOBAL_LIST_INIT(valid_smoke_types, sortList(list(PREF_CIG_SPACE, PREF_CIG_DROMEDARY, PREF_CIG_UPLIFT, PREF_CIG_ROBUST, PREF_CIG_ROBUSTGOLD, PREF_CIG_CARP, PREF_CIG_MIDORI, PREF_CIGAR, PREF_CIGAR_SOLAR, PREF_CIGAR_COHIBA, PREF_VAPE, PREF_PIPE))) + //Female Uniforms GLOBAL_LIST_EMPTY(female_clothing_icons) //Alternate species icons diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index ee9bc5bb429a..888def7a7182 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -41,11 +41,6 @@ List of configurable names in preferences and their metadata ), */ GLOBAL_LIST_INIT(preferences_custom_names, list( - "human" = list("pref_name" = "Backup Human", "qdesc" = "backup human name, used in the event you are assigned a command role as another species", "group" = "backup_human", "allow_null" = FALSE), - "clown" = list("pref_name" = "Clown" , "qdesc" = "clown name", "group" = "fun", "allow_null" = FALSE), - "mime" = list("pref_name" = "Mime", "qdesc" = "mime name" , "group" = "fun", "allow_null" = FALSE), "cyborg" = list("pref_name" = "Cyborg", "qdesc" = "cyborg name (Leave empty to use default naming scheme)", "group" = "silicons", "allow_null" = TRUE), "ai" = list("pref_name" = "AI", "qdesc" = "ai name", "group" = "silicons", "allow_null" = FALSE), - "religion" = list("pref_name" = "Chaplain religion", "qdesc" = "religion" , "group" = "chaplain", "allow_null" = FALSE), - "deity" = list("pref_name" = "Chaplain deity", "qdesc" = "deity", "group" = "chaplain", "allow_null" = FALSE) - )) +)) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index dbc3607129f4..5f5c26731d15 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -125,8 +125,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NIGHT_VISION" = TRAIT_NIGHT_VISION, "TRAIT_LIGHT_STEP" = TRAIT_LIGHT_STEP, "TRAIT_SPIRITUAL" = TRAIT_SPIRITUAL, - "TRAIT_FAN_CLOWN" = TRAIT_FAN_CLOWN, - "TRAIT_FAN_MIME" = TRAIT_FAN_MIME, "TRAIT_VORACIOUS" = TRAIT_VORACIOUS, "TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE, "TRAIT_FREERUNNING" = TRAIT_FREERUNNING, diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 8615b9a9aa6d..ef1f614809fe 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -241,20 +241,20 @@ user.swap_hand(held_index) return TRUE -/atom/movable/screen/close - name = "close" - layer = ABOVE_HUD_LAYER - plane = ABOVE_HUD_PLANE - icon_state = "backpack_close" +// /atom/movable/screen/close +// name = "close" +// layer = ABOVE_HUD_LAYER +// plane = ABOVE_HUD_PLANE +// icon_state = "backpack_close" -/atom/movable/screen/close/Initialize(mapload, new_master) - . = ..() - master = new_master +// /atom/movable/screen/close/Initialize(mapload, new_master) +// . = ..() +// master = new_master -/atom/movable/screen/close/Click() - var/datum/component/storage/S = master - S.hide_from(usr) - return TRUE +// /atom/movable/screen/close/Click() +// var/datum/component/storage/S = master +// S.hide_from(usr) +// return TRUE /atom/movable/screen/drop name = "drop" @@ -437,30 +437,6 @@ icon_state = "[base_icon_state][user.resting ? 0 : null]" return ..() -/atom/movable/screen/storage - name = "storage" - icon_state = "block" - screen_loc = "7,7 to 10,8" - layer = HUD_LAYER - plane = HUD_PLANE - -/atom/movable/screen/storage/Initialize(mapload, new_master) - . = ..() - master = new_master - -/atom/movable/screen/storage/Click(location, control, params) - if(world.time <= usr.next_move) - return TRUE - if(usr.incapacitated()) - return TRUE - if (ismecha(usr.loc)) // stops inventory actions in a mech - return TRUE - if(master) - var/obj/item/I = usr.get_active_held_item() - if(I) - master.attackby(null, I, usr, params) - return TRUE - /atom/movable/screen/throw_catch name = "throw/catch" icon = 'icons/hud/screen_midnight.dmi' diff --git a/code/_onclick/hud/storage.dm b/code/_onclick/hud/storage.dm new file mode 100644 index 000000000000..c10375df4e8b --- /dev/null +++ b/code/_onclick/hud/storage.dm @@ -0,0 +1,198 @@ +/atom/movable/screen/storage + name = "storage" + var/insertion_click = FALSE + +/atom/movable/screen/storage/Initialize(mapload, new_master) + . = ..() + master = new_master + +/atom/movable/screen/storage/Click(location, control, params) + if(!insertion_click) + return ..() + if(hud?.mymob && (hud.mymob != usr)) + return + // just redirect clicks + if(master) + var/obj/item/I = usr.get_active_held_item() + if(I) + master.attackby(null, I, usr, params) + return TRUE + +/atom/movable/screen/storage/boxes + name = "storage" + icon_state = "block" + screen_loc = "7,7 to 10,8" + layer = HUD_LAYER + plane = HUD_PLANE + insertion_click = TRUE + +/atom/movable/screen/storage/close + name = "close" + layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE + icon_state = "backpack_close" + +/atom/movable/screen/storage/close/Click() + var/datum/component/storage/S = master + S.close(usr) + return TRUE + +/atom/movable/screen/storage/left + icon_state = "storage_start" + insertion_click = TRUE + +/atom/movable/screen/storage/right + icon_state = "storage_end" + insertion_click = TRUE + +/atom/movable/screen/storage/continuous + icon_state = "storage_continue" + insertion_click = TRUE + +/atom/movable/screen/storage/volumetric_box + icon_state = "stored_continue" + layer = VOLUMETRIC_STORAGE_BOX_LAYER + plane = VOLUMETRIC_STORAGE_BOX_PLANE + var/obj/item/our_item + +/atom/movable/screen/storage/volumetric_box/Initialize(mapload, new_master, obj/item/our_item) + src.our_item = our_item + RegisterSignal(our_item, COMSIG_ITEM_MOUSE_ENTER, PROC_REF(on_item_mouse_enter)) + RegisterSignal(our_item, COMSIG_ITEM_MOUSE_EXIT, PROC_REF(on_item_mouse_exit)) + return ..() + +/atom/movable/screen/storage/volumetric_box/Destroy() + makeItemInactive() + our_item = null + return ..() + +/atom/movable/screen/storage/volumetric_box/Click(location, control, params) + return our_item.Click(location, control, params) + +/atom/movable/screen/storage/volumetric_box/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) + return our_item.MouseDrop(over, src_location, over_location, src_control, over_control, params) + +/atom/movable/screen/storage/volumetric_box/MouseExited(location, control, params) + makeItemInactive() + +/atom/movable/screen/storage/volumetric_box/MouseEntered(location, control, params) + . = ..() + makeItemActive() + +/atom/movable/screen/storage/volumetric_box/proc/on_item_mouse_enter() + makeItemActive() + +/atom/movable/screen/storage/volumetric_box/proc/on_item_mouse_exit() + makeItemInactive() + +/atom/movable/screen/storage/volumetric_box/proc/makeItemInactive() + return + +/atom/movable/screen/storage/volumetric_box/proc/makeItemActive() + return + +/atom/movable/screen/storage/volumetric_box/center + icon_state = "stored_continue" + var/atom/movable/screen/storage/volumetric_edge/stored_left/left + var/atom/movable/screen/storage/volumetric_edge/stored_right/right + var/atom/movable/screen/storage/item_holder/holder + var/pixel_size + +/atom/movable/screen/storage/volumetric_box/center/Initialize(mapload, new_master, our_item) + left = new(null, src, our_item) + right = new(null, src, our_item) + return ..() + +/atom/movable/screen/storage/volumetric_box/center/Destroy() + QDEL_NULL(left) + QDEL_NULL(right) + vis_contents.Cut() + if(holder) + QDEL_NULL(holder) + return ..() + +/atom/movable/screen/storage/volumetric_box/center/proc/on_screen_objects() + return list(src) + + +//Sets the size of this box screen object and regenerates its left/right borders. This includes the actual border's size! +/atom/movable/screen/storage/volumetric_box/center/proc/set_pixel_size(pixels) + if(pixel_size == pixels) + return + pixel_size = pixels + cut_overlays() + vis_contents.Cut() + //our icon size is 32 pixels. + var/multiplier = (pixels - (VOLUMETRIC_STORAGE_BOX_BORDER_SIZE * 2)) / VOLUMETRIC_STORAGE_BOX_ICON_SIZE + transform = matrix(multiplier, 0, 0, 0, 1, 0) + if(our_item) + if(holder) + qdel(holder) + holder = new(null, src, our_item) + holder.transform = matrix(1 / multiplier, 0, 0, 0, 1, 0) + holder.mouse_opacity = MOUSE_OPACITY_TRANSPARENT + holder.appearance_flags &= ~RESET_TRANSFORM + makeItemInactive() + vis_contents += holder + left.pixel_x = -((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) - VOLUMETRIC_STORAGE_BOX_BORDER_SIZE + right.pixel_x = ((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) + VOLUMETRIC_STORAGE_BOX_BORDER_SIZE + add_overlay(left) + add_overlay(right) + +/atom/movable/screen/storage/volumetric_box/center/makeItemInactive() + if(!holder) + return + holder.layer = VOLUMETRIC_STORAGE_ITEM_LAYER + holder.plane = VOLUMETRIC_STORAGE_ITEM_PLANE + +/atom/movable/screen/storage/volumetric_box/center/makeItemActive() + if(!holder) + return + holder.our_item.layer = VOLUMETRIC_STORAGE_ACTIVE_ITEM_LAYER //make sure we display infront of the others! + holder.our_item.plane = VOLUMETRIC_STORAGE_ACTIVE_ITEM_PLANE + +/atom/movable/screen/storage/volumetric_edge + layer = VOLUMETRIC_STORAGE_BOX_LAYER + plane = VOLUMETRIC_STORAGE_BOX_PLANE + +/atom/movable/screen/storage/volumetric_edge/Initialize(mapload, master, our_item) + src.master = master + return ..() + +/atom/movable/screen/storage/volumetric_edge/Click(location, control, params) + return master.Click(location, control, params) + +/atom/movable/screen/storage/volumetric_edge/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) + return master.MouseDrop(over, src_location, over_location, src_control, over_control, params) + +/atom/movable/screen/storage/volumetric_edge/MouseExited(location, control, params) + return master.MouseExited(location, control, params) + +/atom/movable/screen/storage/volumetric_edge/MouseEntered(location, control, params) + . = ..() + return master.MouseEntered(location, control, params) + +/atom/movable/screen/storage/volumetric_edge/stored_left + icon_state = "stored_start" + appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM // Yes I know RESET_TRANSFORM is in APPEARANCE_UI but we're hard-asserting this incase someone changes it. + +/atom/movable/screen/storage/volumetric_edge/stored_right + icon_state = "stored_end" + appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM + +/atom/movable/screen/storage/item_holder + var/obj/item/our_item + vis_flags = NONE + +/atom/movable/screen/storage/item_holder/Initialize(mapload, new_master, obj/item/I) + . = ..() + our_item = I + vis_contents += I + +/atom/movable/screen/storage/item_holder/Destroy() + vis_contents.Cut() + our_item = null + return ..() + +/atom/movable/screen/storage/item_holder/Click(location, control, params) + return our_item.Click(location, control, params) diff --git a/code/controllers/subsystem/blackmarket.dm b/code/controllers/subsystem/blackmarket.dm index 6014259278d7..cbd07fcd8fda 100644 --- a/code/controllers/subsystem/blackmarket.dm +++ b/code/controllers/subsystem/blackmarket.dm @@ -5,8 +5,8 @@ SUBSYSTEM_DEF(blackmarket) /// Descriptions for each shipping methods. var/shipping_method_descriptions = list( - SHIPPING_METHOD_LAUNCH="Launches the item at your coordinates from across deep space, cheap but you might not recieve your item at all.", - SHIPPING_METHOD_LTSRBT="Long-To-Short-Range-Bluespace-Transceiver, a machine that prepares items at a remote storage location and then teleports them to the location of the uplink." + SHIPPING_METHOD_LAUNCH="Launches the item at your coordinates from across deep space. Cheap, but you might not recieve your item at all. We recommend being stationary in space, away from any large structures, for best results.", + SHIPPING_METHOD_LTSRBT="Long-To-Short-Range-Bluespace-Transceiver, a machine that prepares items at a remote storage location and then teleports them to the location of the LTRSBT." ) /// List of all existing markets. @@ -29,7 +29,8 @@ SUBSYSTEM_DEF(blackmarket) if(!markets[M]) stack_trace("SSblackmarket: Item [I] available in market that does not exist.") continue - markets[M].add_item(item) + markets[M].add_item(item, FALSE) + qdel(I) . = ..() @@ -47,22 +48,10 @@ SUBSYSTEM_DEF(blackmarket) switch(purchase.method) // Find a ltsrbt pad and make it handle the shipping. if(SHIPPING_METHOD_LTSRBT) - if(!telepads.len) - continue - // Prioritize pads that don't have a cooldown active. - var/free_pad_found = FALSE - for(var/obj/machinery/ltsrbt/pad in telepads) - if(pad.recharge_cooldown) - continue - pad.add_to_queue(purchase) - queued_purchases -= purchase - free_pad_found = TRUE - break - - if(free_pad_found) + if(!purchase.uplink.target) continue - var/obj/machinery/ltsrbt/pad = pick(telepads) + var/obj/machinery/ltsrbt/pad = purchase.uplink.target to_chat(recursive_loc_check(purchase.uplink.loc, /mob), "[purchase.uplink] flashes a message noting that the order is being processed by [pad].") @@ -76,7 +65,7 @@ SUBSYSTEM_DEF(blackmarket) var/pickedloc = vlevel.get_side_turf(startSide) var/atom/movable/item = purchase.entry.spawn_item(pickedloc) - item.throw_at(purchase.uplink, 3, 3, spin = FALSE) + item.safe_throw_at(purchase.uplink, 3, 3, spin = FALSE) to_chat(recursive_loc_check(purchase.uplink.loc, /mob), "[purchase.uplink] flashes a message noting the order is being launched at your coordinates from [dir2text(startSide)].") @@ -96,7 +85,7 @@ SUBSYSTEM_DEF(blackmarket) /// Used to add /datum/blackmarket_purchase to queued_purchases var. Returns TRUE when queued. /datum/controller/subsystem/blackmarket/proc/queue_item(datum/blackmarket_purchase/P) - if(P.method == SHIPPING_METHOD_LTSRBT && !telepads.len) + if(P.method == SHIPPING_METHOD_LTSRBT && !P.uplink.target) return FALSE queued_purchases += P return TRUE diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 32f404c936a6..dc55c7ca0755 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -102,7 +102,7 @@ SUBSYSTEM_DEF(events) // Why the heck is this here! Took me so damn long to find! /client/proc/forceEvent() set name = "Trigger Event" - set category = "Admin.Events" + set category = "Event" if(!holder ||!check_rights(R_FUN)) return diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index 4440d1c17b33..e8285abafde1 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -47,10 +47,7 @@ SUBSYSTEM_DEF(machines) while(currentrun.len) var/obj/machinery/thing = currentrun[currentrun.len] currentrun.len-- - if(!QDELETED(thing) && thing.process(seconds) != PROCESS_KILL) - if(thing.use_power) - thing.auto_use_power() //add back the power state - else + if(QDELETED(thing) || thing.process(seconds) == PROCESS_KILL) processing -= thing if (!QDELETED(thing)) thing.datum_flags &= ~DF_ISPROCESSING diff --git a/code/controllers/subsystem/overmap.dm b/code/controllers/subsystem/overmap.dm index 93852230b244..1304eeeb34ea 100644 --- a/code/controllers/subsystem/overmap.dm +++ b/code/controllers/subsystem/overmap.dm @@ -133,7 +133,7 @@ SUBSYSTEM_DEF(overmap) spawn_ruin_levels() spawn_outpost() - spawn_initial_ships() + //spawn_initial_ships() /** * VERY Simple random generation for overmap events, spawns the event in a random turf and sometimes spreads it out similar to ores @@ -212,6 +212,7 @@ SUBSYSTEM_DEF(overmap) new found_type(location) return +/* /datum/controller/subsystem/overmap/proc/spawn_initial_ships() #ifndef UNIT_TESTS var/datum/map_template/shuttle/selected_template = SSmapping.maplist[pick(SSmapping.maplist)] @@ -224,10 +225,11 @@ SUBSYSTEM_DEF(overmap) query_round_map_name.Execute() qdel(query_round_map_name) #endif +*/ /** * Spawns a controlled ship with the passed template at the template's preferred spawn location. - * Inteded for ship purchases, etc. + * Intended for ship purchases, etc. */ /datum/controller/subsystem/overmap/proc/spawn_ship_at_start(datum/map_template/shuttle/template) //Should never happen, but just in case. This'll delay the next spawn until the current one is done. diff --git a/code/controllers/subsystem/processing/movable_physics.dm b/code/controllers/subsystem/processing/movable_physics.dm new file mode 100644 index 000000000000..65015edbd668 --- /dev/null +++ b/code/controllers/subsystem/processing/movable_physics.dm @@ -0,0 +1,24 @@ +///Real fast ticking subsystem for moving movables via modifying pixel_x/y/z +PROCESSING_SUBSYSTEM_DEF(movablephysics) + name = "Movable Physics" + wait = 0.05 SECONDS + stat_tag = "MP" + priority = FIRE_PRIORITY_MOVABLE_PHYSICS + +/datum/controller/subsystem/processing/movablephysics/fire(resumed = FALSE) + if (!resumed) + currentrun = processing.Copy() + //cache for sanic speed (lists are references anyways) + var/list/current_run = currentrun + + while(current_run.len) + var/datum/component/thing = current_run[current_run.len] + current_run.len-- + if(QDELETED(thing)) + processing -= thing + else + if(thing.process(wait * 0.1) == PROCESS_KILL) + // fully stop so that a future START_PROCESSING will work + STOP_PROCESSING(src, thing) + if (MC_TICK_CHECK) + return diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 9dc117783af9..c6f9e4404c07 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -23,7 +23,6 @@ PROCESSING_SUBSYSTEM_DEF(quirks) list("Ageusia","Vegetarian","Deviant Tastes"), \ list("Ananas Affinity","Ananas Aversion"), \ list("Alcohol Tolerance","Light Drinker"), \ - list("Clown Fan","Mime Fan", "RILENA Super Fan"), \ list("Bad Touch", "Friendly")) species_blacklist = list("Blood Deficiency" = list(SPECIES_IPC, SPECIES_JELLYPERSON, SPECIES_PLASMAMAN, SPECIES_VAMPIRE)) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 0260e952d10d..e8cd514eb48b 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -47,7 +47,7 @@ SUBSYSTEM_DEF(throwing) /datum/thrownthing var/atom/movable/thrownthing - var/atom/target + var/datum/weakref/initial_target var/turf/target_turf var/target_zone var/init_dir @@ -71,12 +71,13 @@ SUBSYSTEM_DEF(throwing) var/last_move = 0 -/datum/thrownthing/New(thrownthing, target, target_turf, init_dir, maxrange, speed, thrower, diagonals_first, force, gentle, callback, target_zone) +/datum/thrownthing/New(thrownthing, target, init_dir, maxrange, speed, thrower, diagonals_first, force, gentle, callback, target_zone) . = ..() src.thrownthing = thrownthing RegisterSignal(thrownthing, COMSIG_PARENT_QDELETING, PROC_REF(on_thrownthing_qdel)) - src.target = target - src.target_turf = target_turf + src.target_turf = get_turf(target) + if(target_turf != target) + src.initial_target = WEAKREF(target) src.init_dir = init_dir src.maxrange = maxrange src.speed = speed @@ -87,14 +88,13 @@ SUBSYSTEM_DEF(throwing) src.callback = callback src.target_zone = target_zone - /datum/thrownthing/Destroy() SSthrowing.processing -= thrownthing SSthrowing.currentrun -= thrownthing thrownthing.throwing = null thrownthing = null - target = null thrower = null + initial_target = null if(callback) QDEL_NULL(callback) //It stores a reference to the thrownthing, its source. Let's clean that. return ..() @@ -109,6 +109,7 @@ SUBSYSTEM_DEF(throwing) /datum/thrownthing/proc/tick() var/atom/movable/AM = thrownthing + AM.setMovetype(AM.movement_type | THROWN) if (!isturf(AM.loc) || !AM.throwing) finalize() return @@ -117,9 +118,17 @@ SUBSYSTEM_DEF(throwing) delayed_time += world.time - last_move return - if (dist_travelled && hitcheck()) //to catch sneaky things moving on our tile while we slept - finalize() - return + var/atom/movable/actual_target = initial_target?.resolve() + + if(dist_travelled) //to catch sneaky things moving on our tile while we slept + for(var/atom/movable/obstacle as anything in get_turf(thrownthing)) + if (obstacle == thrownthing || (obstacle == thrower && !ismob(thrownthing))) + continue + if(obstacle.pass_flags_self & LETPASSTHROW) + continue + if (obstacle == actual_target || (obstacle.density && !(obstacle.flags_1 & ON_BORDER_1))) + finalize(TRUE, obstacle) + return var/atom/step @@ -146,10 +155,15 @@ SUBSYSTEM_DEF(throwing) finalize() return - AM.Move(step, get_dir(AM, step), DELAY_TO_GLIDE_SIZE(1 / speed)) + if(!AM.Move(step, get_dir(AM, step), DELAY_TO_GLIDE_SIZE(1 / speed))) // we hit something during our move... + if(AM.throwing) // ...but finalize() wasn't called on Bump() because of a higher level definition that doesn't always call parent. + finalize() + return - if (!AM.throwing) // we hit something during our move - finalize(hit = TRUE) + dist_travelled++ + + if(actual_target && !(actual_target.pass_flags_self & LETPASSTHROW) && actual_target.loc == AM.loc) // we crossed a movable with no density (e.g. a mouse or APC) we intend to hit anyway. + finalize(TRUE, actual_target) return dist_travelled++ @@ -158,18 +172,19 @@ SUBSYSTEM_DEF(throwing) finalize() return -/datum/thrownthing/proc/finalize(hit = FALSE, target=null) +//If the target hasent been hit search for it in the turf we landed on. +/datum/thrownthing/proc/finalize(hit = FALSE, target = null) set waitfor = FALSE //done throwing, either because it hit something or it finished moving if(!thrownthing) return thrownthing.throwing = null + thrownthing.setMovetype(thrownthing.movement_type & ~THROWN) if (!hit) - for (var/thing in get_turf(thrownthing)) //looking for our target on the turf we land on. - var/atom/A = thing - if (A == target) + for (var/atom/movable/obstacle as anything in get_turf(thrownthing)) //looking for our target on the turf we land on. + if (obstacle == target) hit = TRUE - thrownthing.throw_impact(A, src) + thrownthing.throw_impact(obstacle, src) if(QDELETED(thrownthing)) //throw_impact can delete things, such as glasses smashing return //deletion should already be handled by on_thrownthing_qdel() break @@ -195,15 +210,3 @@ SUBSYSTEM_DEF(throwing) T.zFall(thrownthing) qdel(src) - -/datum/thrownthing/proc/hit_atom(atom/A) - finalize(hit=TRUE, target=A) - -/datum/thrownthing/proc/hitcheck() - for (var/thing in get_turf(thrownthing)) - var/atom/movable/AM = thing - if (AM == thrownthing || (AM == thrower && !ismob(thrownthing))) - continue - if (AM.density && !(AM.pass_flags_self & LETPASSTHROW) && !(AM.flags_1 & ON_BORDER_1)) - finalize(hit=TRUE, target=AM) - return TRUE diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index 1e697327c844..3dc5553b7381 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -41,7 +41,7 @@ SUBSYSTEM_DEF(traumas) "spiders" = typecacheof(list(/mob/living/simple_animal/hostile/poison/giant_spider)), "security" = typecacheof(list(/mob/living/simple_animal/bot/secbot)), "lizards" = typecacheof(list(/mob/living/simple_animal/hostile/lizard)), - "skeletons" = typecacheof(list(/mob/living/simple_animal/hostile/skeleton)), + "skeletons" = typecacheof(list(/mob/living/simple_animal/hostile/human/skeleton)), "snakes" = typecacheof(list(/mob/living/simple_animal/hostile/retaliate/poison/snake)), "robots" = typecacheof(list(/mob/living/silicon/robot, /mob/living/silicon/ai, /mob/living/simple_animal/drone, /mob/living/simple_animal/bot, /mob/living/simple_animal/hostile/swarmer)), @@ -90,10 +90,10 @@ SUBSYSTEM_DEF(traumas) /obj/item/clothing/under/rank/command/captain, /obj/item/clothing/under/rank/security/head_of_security, /obj/item/clothing/under/rank/engineering/chief_engineer, /obj/item/clothing/under/rank/medical/chief_medical_officer, /obj/item/clothing/under/rank/command/head_of_personnel, /obj/item/clothing/under/rank/rnd/research_director, - /obj/item/clothing/under/rank/security/head_of_security/alt,//WS Edit - Better security jumpsuit sprites + /obj/item/clothing/under/rank/security/head_of_security/alt, /obj/item/clothing/under/rank/rnd/research_director/alt, /obj/item/clothing/under/rank/rnd/research_director/turtleneck, - /obj/item/clothing/under/rank/command/captain/parade, /obj/item/clothing/under/rank/security/head_of_security/parade, - /obj/item/clothing/under/rank/security/head_of_security/parade/female, //WS Edit - Better Command Uniforms + /obj/item/clothing/under/rank/security/head_of_security/parade, + /obj/item/clothing/under/rank/security/head_of_security/parade/female, /obj/item/clothing/head/helmet/abductor, /obj/item/clothing/suit/armor/abductor/vest, /obj/item/melee/baton/abductor, /obj/item/storage/belt/military/abductor, /obj/item/gun/energy/alien, /obj/item/abductor/silencer, /obj/item/abductor/gizmo, /obj/item/clothing/under/rank/centcom/official, @@ -128,7 +128,7 @@ SUBSYSTEM_DEF(traumas) /obj/item/melee/cultblade, /obj/item/cult_bastard, /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/head/hooded/cult_hoodie, /obj/effect/rune, - /obj/item/stack/sheet/runed_metal, /obj/machinery/door/airlock/cult, /obj/singularity/narsie, + /obj/machinery/door/airlock/cult, /obj/singularity/narsie, /obj/item/soulstone, /obj/item/clothing/suit/wizrobe, /obj/item/clothing/head/wizard, /obj/item/spellbook, /obj/item/staff, /obj/item/clothing/suit/space/hardsuit/shielded/wizard, /obj/item/clothing/suit/space/hardsuit/wizard, @@ -149,8 +149,7 @@ SUBSYSTEM_DEF(traumas) "birds" = typecacheof(list( /obj/item/clothing/mask/gas/plaguedoctor, /obj/item/reagent_containers/food/snacks/cracker, /obj/item/clothing/suit/chickensuit, /obj/item/clothing/head/chicken, - /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/costume/owl, /obj/item/clothing/mask/gas/owl_mask, - /obj/item/clothing/head/helmet/space/freedom, /obj/item/clothing/suit/space/freedom)), + /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/costume/owl, /obj/item/clothing/mask/gas/owl_mask)), "anime" = typecacheof(list( /obj/item/clothing/under/costume/schoolgirl, /obj/item/katana, /obj/item/reagent_containers/food/snacks/sashimi, diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index 1d16391a18e1..d76504787b04 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -321,10 +321,12 @@ // all the objects that are receiving the signal get the signal this final time. // AKA: No you can't cancel the signal reception of another object by doing an unregister in the same signal. var/list/queued_calls = list() - for(var/datum/listening_datum as anything in target) - queued_calls[listening_datum] = listening_datum.signal_procs[src][sigtype] - for(var/datum/listening_datum as anything in queued_calls) - . |= call(listening_datum, queued_calls[listening_datum])(arglist(arguments)) + // This should be faster than doing `var/datum/listening_datum as anything in target` as it does not implicitly copy the list + for(var/i in 1 to length(target)) + var/datum/listening_datum = target[i] + queued_calls.Add(listening_datum, listening_datum.signal_procs[src][sigtype]) + for(var/i in 1 to length(queued_calls) step 2) + . |= call(queued_calls[i], queued_calls[i + 1])(arglist(arguments)) // The type arg is casted so initial works, you shouldn't be passing a real instance into this /** diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm index 6923760a7705..55ba84fb5f7d 100644 --- a/code/datums/components/butchering.dm +++ b/code/datums/components/butchering.dm @@ -51,10 +51,14 @@ /datum/component/butchering/proc/startButcher(obj/item/source, mob/living/M, mob/living/user) to_chat(user, "You begin to butcher [M]...") playsound(M.loc, butcher_sound, 50, TRUE, -1) - if(do_mob(user, M, speed) && M.Adjacent(source)) + if(do_after(user, speed, M) && M.Adjacent(source)) Butcher(user, M) /datum/component/butchering/proc/startNeckSlice(obj/item/source, mob/living/carbon/human/H, mob/living/user) + if(DOING_INTERACTION_WITH_TARGET(user, H)) + to_chat(user, "You're already interacting with [H]!") + return + user.visible_message("[user] is slitting [H]'s throat!", \ "You start slicing [H]'s throat!", \ "You hear a cutting noise!", ignored_mobs = H) @@ -63,7 +67,7 @@ log_combat(user, H, "starts slicing the throat of") playsound(H.loc, butcher_sound, 50, TRUE, -1) - if(do_mob(user, H, clamp(500 / source.force, 30, 100)) && H.Adjacent(source)) + if(do_after(user, clamp(500 / source.force, 30, 100), H) && H.Adjacent(source)) if(H.has_status_effect(/datum/status_effect/neck_slice)) user.show_message("[H]'s neck has already been already cut, you can't make the bleeding any worse!", MSG_VISUAL, \ "Their neck has already been already cut, you can't make the bleeding any worse!") diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 9ec90bf09eac..ab7a2d4315d7 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -24,1112 +24,3 @@ */ /datum/crafting_recipe/proc/check_requirements(mob/user, list/collected_requirements) return TRUE - -/datum/crafting_recipe/IED - name = "IED" - result = /obj/item/grenade/iedcasing - reqs = list(/datum/reagent/fuel = 50, - /obj/item/stack/cable_coil = 1, - /obj/item/assembly/igniter = 1, - /obj/item/reagent_containers/food/drinks/soda_cans = 1) - parts = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1) - time = 15 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/lance - name = "Explosive Lance (Grenade)" - result = /obj/item/spear/explosive - reqs = list(/obj/item/spear = 1, - /obj/item/grenade = 1) - blacklist = list(/obj/item/spear/bonespear) - parts = list(/obj/item/spear = 1, - /obj/item/grenade = 1) - time = 15 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/strobeshield - name = "Strobe Shield" - result = /obj/item/shield/riot/flash - reqs = list(/obj/item/wallframe/flasher = 1, - /obj/item/assembly/flash/handheld = 1, - /obj/item/shield/riot = 1) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/strobeshield/New() - ..() - blacklist |= subtypesof(/obj/item/shield/riot/) - -/datum/crafting_recipe/molotov - name = "Molotov" - result = /obj/item/reagent_containers/food/drinks/bottle/molotov - reqs = list(/obj/item/reagent_containers/glass/rag = 1, - /obj/item/reagent_containers/food/drinks/bottle = 1) - parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/stunprod - name = "Stunprod" - result = /obj/item/melee/baton/cattleprod - reqs = list(/obj/item/restraints/handcuffs/cable = 1, - /obj/item/stack/rods = 1, - /obj/item/assembly/igniter = 1) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/teleprod - name = "Teleprod" - result = /obj/item/melee/baton/cattleprod/teleprod - reqs = list(/obj/item/restraints/handcuffs/cable = 1, - /obj/item/stack/rods = 1, - /obj/item/assembly/igniter = 1, - /obj/item/stack/ore/bluespace_crystal = 1) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/bola - name = "Bola" - result = /obj/item/restraints/legcuffs/bola - reqs = list(/obj/item/restraints/handcuffs/cable = 1, - /obj/item/stack/sheet/metal = 6) - time = 20//15 faster than crafting them by hand! - category= CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/gonbola - name = "Gonbola" - result = /obj/item/restraints/legcuffs/bola/gonbola - reqs = list(/obj/item/restraints/handcuffs/cable = 1, - /obj/item/stack/sheet/metal = 6, - /obj/item/stack/sheet/animalhide/gondola = 1) - time = 40 - category= CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/ed209 - name = "ED209" - result = /mob/living/simple_animal/bot/secbot/ed209 - reqs = list(/obj/item/robot_suit = 1, - /obj/item/clothing/head/helmet = 1, - /obj/item/clothing/suit/armor/vest = 1, - /obj/item/bodypart/leg/left/robot = 1, - /obj/item/bodypart/leg/right/robot = 1, - /obj/item/stack/sheet/metal = 1, - /obj/item/stack/cable_coil = 1, - /obj/item/gun/energy/disabler = 1, - /obj/item/assembly/prox_sensor = 1) - tools = list(TOOL_WELDER, TOOL_SCREWDRIVER) - time = 60 - category = CAT_ROBOT - -/datum/crafting_recipe/secbot - name = "Secbot" - result = /mob/living/simple_animal/bot/secbot - reqs = list(/obj/item/assembly/signaler = 1, - /obj/item/clothing/head/helmet/sec = 1, - /obj/item/melee/baton = 1, - /obj/item/assembly/prox_sensor = 1, - /obj/item/bodypart/r_arm/robot = 1) - tools = list(TOOL_WELDER) - time = 60 - category = CAT_ROBOT - -/datum/crafting_recipe/cleanbot - name = "Cleanbot" - result = /mob/living/simple_animal/bot/cleanbot - reqs = list(/obj/item/reagent_containers/glass/bucket = 1, - /obj/item/assembly/prox_sensor = 1, - /obj/item/bodypart/r_arm/robot = 1) - time = 40 - category = CAT_ROBOT - -/datum/crafting_recipe/floorbot - name = "Floorbot" - result = /mob/living/simple_animal/bot/floorbot - reqs = list(/obj/item/storage/toolbox = 1, - /obj/item/stack/tile/plasteel = 10, - /obj/item/assembly/prox_sensor = 1, - /obj/item/bodypart/r_arm/robot = 1) - time = 40 - category = CAT_ROBOT - -/datum/crafting_recipe/medbot - name = "Medbot" - result = /mob/living/simple_animal/bot/medbot - reqs = list(/obj/item/healthanalyzer = 1, - /obj/item/storage/firstaid = 1, - /obj/item/assembly/prox_sensor = 1, - /obj/item/bodypart/r_arm/robot = 1) - time = 40 - category = CAT_ROBOT - -/datum/crafting_recipe/honkbot - name = "Honkbot" - result = /mob/living/simple_animal/bot/honkbot - reqs = list(/obj/item/storage/box/clown = 1, - /obj/item/bodypart/r_arm/robot = 1, - /obj/item/assembly/prox_sensor = 1, - /obj/item/bikehorn/ = 1) - time = 40 - category = CAT_ROBOT - -/datum/crafting_recipe/Firebot - name = "Firebot" - result = /mob/living/simple_animal/bot/firebot - reqs = list(/obj/item/extinguisher = 1, - /obj/item/bodypart/r_arm/robot = 1, - /obj/item/assembly/prox_sensor = 1, - /obj/item/clothing/head/hardhat/red = 1) - time = 40 - category = CAT_ROBOT - -/datum/crafting_recipe/Vibebot - name = "Vibebot" - result = /mob/living/simple_animal/bot/vibebot - reqs = list(/obj/item/light/bulb = 2, - /obj/item/bodypart/head/robot = 1, - /obj/item/assembly/prox_sensor = 1, - /obj/item/toy/crayon = 1) - time = 40 - category = CAT_ROBOT - -/datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but - name = "Pneumatic Cannon" - result = /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 = 50 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/flamethrower - name = "Flamethrower" - result = /obj/item/flamethrower - reqs = list(/obj/item/weldingtool = 1, - /obj/item/assembly/igniter = 1, - /obj/item/stack/rods = 1) - parts = list(/obj/item/assembly/igniter = 1, - /obj/item/weldingtool = 1) - tools = list(TOOL_SCREWDRIVER) - time = 10 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/meteorslug - name = "Meteorslug Shell" - result = /obj/item/ammo_casing/shotgun/meteorslug - reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /obj/item/rcd_ammo = 1, - /obj/item/stock_parts/manipulator = 2) - tools = list(TOOL_SCREWDRIVER) - time = 5 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/pulseslug - name = "Pulse Slug Shell" - result = /obj/item/ammo_casing/shotgun/pulseslug - reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /obj/item/stock_parts/capacitor/adv = 2, - /obj/item/stock_parts/micro_laser/ultra = 1) - tools = list(TOOL_SCREWDRIVER) - time = 5 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/dragonsbreath - name = "Dragonsbreath Shell" - result = /obj/item/ammo_casing/shotgun/dragonsbreath - reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, /datum/reagent/phosphorus = 5) - tools = list(TOOL_SCREWDRIVER) - time = 5 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/frag12 - name = "FRAG-12 Shell" - result = /obj/item/ammo_casing/shotgun/frag12 - reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /datum/reagent/glycerol = 5, - /datum/reagent/toxin/acid = 5, - /datum/reagent/toxin/acid/fluacid = 5) - tools = list(TOOL_SCREWDRIVER) - time = 5 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/ionslug - name = "Ion Scatter Shell" - result = /obj/item/ammo_casing/shotgun/ion - reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /obj/item/stock_parts/micro_laser/ultra = 1, - /obj/item/stock_parts/subspace/crystal = 1) - tools = list(TOOL_SCREWDRIVER) - time = 5 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/improvisedslug - name = "Improvised Shotgun Shell" - result = /obj/item/ammo_casing/shotgun/improvised - reqs = list(/obj/item/stack/sheet/metal = 2, - /obj/item/stack/cable_coil = 1, - /datum/reagent/fuel = 10) - tools = list(TOOL_SCREWDRIVER) - time = 12 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/laserscatter - name = "Scatter Laser Shell" - result = /obj/item/ammo_casing/shotgun/laserscatter - reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /obj/item/stock_parts/capacitor/adv = 1, - /obj/item/stock_parts/micro_laser/high = 1) - tools = list(TOOL_SCREWDRIVER) - time = 5 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/ishotgun - name = "Improvised Shotgun" - result = /obj/item/gun/ballistic/shotgun/doublebarrel/improvised - reqs = list(/obj/item/weaponcrafting/receiver = 1, - /obj/item/pipe = 1, - /obj/item/weaponcrafting/stock = 1, - /obj/item/stack/packageWrap = 5) - tools = list(TOOL_SCREWDRIVER) - time = 100 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/chainsaw - name = "Chainsaw" - result = /obj/item/chainsaw - reqs = list(/obj/item/circular_saw = 1, - /obj/item/stack/cable_coil = 3, - /obj/item/stack/sheet/plasteel = 5) - tools = list(TOOL_WELDER) - time = 50 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/spear - name = "Spear" - result = /obj/item/spear - reqs = list(/obj/item/restraints/handcuffs/cable = 1, - /obj/item/shard = 1, - /obj/item/stack/rods = 1) - parts = list(/obj/item/shard = 1) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/spooky_camera - name = "Camera Obscura" - result = /obj/item/camera/spooky - time = 15 - reqs = list(/obj/item/camera = 1, - /datum/reagent/water/holywater = 10) - parts = list(/obj/item/camera = 1) - category = CAT_MISC - -/datum/crafting_recipe/skateboard - name = "Skateboard" - result = /obj/vehicle/ridden/scooter/skateboard - time = 60 - reqs = list(/obj/item/stack/sheet/metal = 5, - /obj/item/stack/rods = 10) - category = CAT_MISC - -/datum/crafting_recipe/scooter - name = "Scooter" - result = /obj/vehicle/ridden/scooter - time = 65 - reqs = list(/obj/item/stack/sheet/metal = 5, - /obj/item/stack/rods = 12) - category = CAT_MISC - -/datum/crafting_recipe/wheelchair - name = "Wheelchair" - result = /obj/vehicle/ridden/wheelchair - reqs = list(/obj/item/stack/sheet/metal = 4, - /obj/item/stack/rods = 6) - time = 100 - category = CAT_MISC - -/datum/crafting_recipe/motorized_wheelchair - name = "Motorized Wheelchair" - result = /obj/vehicle/ridden/wheelchair/motorized - reqs = list(/obj/item/stack/sheet/metal = 10, - /obj/item/stack/rods = 8, - /obj/item/stock_parts/manipulator = 2, - /obj/item/stock_parts/capacitor = 1) - parts = list(/obj/item/stock_parts/manipulator = 2, - /obj/item/stock_parts/capacitor = 1) - tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) - time = 200 - category = CAT_MISC - -/datum/crafting_recipe/mousetrap - name = "Mouse Trap" - result = /obj/item/assembly/mousetrap - time = 10 - reqs = list(/obj/item/stack/sheet/cardboard = 1, - /obj/item/stack/rods = 1) - category = CAT_MISC - -/datum/crafting_recipe/papersack - name = "Paper Sack" - result = /obj/item/storage/box/papersack - time = 10 - reqs = list(/obj/item/paper = 5) - category = CAT_MISC - - -/datum/crafting_recipe/flashlight_eyes - name = "Flashlight Eyes" - result = /obj/item/organ/eyes/robotic/flashlight - time = 10 - reqs = list( - /obj/item/flashlight = 2, - /obj/item/restraints/handcuffs/cable = 1 - ) - category = CAT_MISC - -/datum/crafting_recipe/paperframes - name = "Paper Frames" - result = /obj/item/stack/sheet/paperframes/five - time = 10 - reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/paper = 20) - category = CAT_MISC - -/datum/crafting_recipe/naturalpaper - name = "Hand-Pressed Paper" - time = 30 - reqs = list(/datum/reagent/water = 50, /obj/item/stack/sheet/mineral/wood = 1) - tools = list(/obj/item/hatchet) - result = /obj/item/paper_bin/bundlenatural - category = CAT_MISC - -/datum/crafting_recipe/toysword - name = "Toy Sword" - reqs = list(/obj/item/light/bulb = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4) - result = /obj/item/toy/sword - category = CAT_MISC - -/datum/crafting_recipe/blackcarpet - name = "Black Carpet" - reqs = list(/obj/item/stack/tile/carpet = 50, /obj/item/toy/crayon/black = 1) - result = /obj/item/stack/tile/carpet/black/fifty - category = CAT_MISC - -/datum/crafting_recipe/curtain - name = "Curtains" - reqs = list(/obj/item/stack/sheet/cotton/cloth = 4, /obj/item/stack/rods = 1) - result = /obj/structure/curtain/cloth - category = CAT_MISC - -/datum/crafting_recipe/showercurtain - name = "Shower Curtains" - reqs = list(/obj/item/stack/sheet/cotton/cloth = 2, /obj/item/stack/sheet/plastic = 2, /obj/item/stack/rods = 1) - result = /obj/structure/curtain - category = CAT_MISC - -/datum/crafting_recipe/extendohand - name = "Extendo-Hand" - reqs = list(/obj/item/bodypart/r_arm/robot = 1, /obj/item/clothing/gloves/boxing = 1) - result = /obj/item/extendohand - category = CAT_MISC - -/datum/crafting_recipe/chemical_payload - name = "Chemical Payload (C4)" - result = /obj/item/bombcore/chemical - reqs = list( - /obj/item/stock_parts/matter_bin = 1, - /obj/item/grenade/c4 = 1, - /obj/item/grenade/chem_grenade = 2 - ) - parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) - time = 30 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/chemical_payload2 - name = "Chemical Payload (Gibtonite)" - result = /obj/item/bombcore/chemical - reqs = list( - /obj/item/stock_parts/matter_bin = 1, - /obj/item/gibtonite = 1, - /obj/item/grenade/chem_grenade = 2 - ) - parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) - time = 50 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/bonearmor - name = "Bone Armor" - result = /obj/item/clothing/suit/armor/bone - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 6) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonetalisman - name = "Bone Talisman" - result = /obj/item/clothing/accessory/talisman - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/sinew = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonenecklace - name = "Hunter's Necklace" - result = /obj/item/clothing/accessory/wolftalisman - time = 35 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/sinew = 3, - /obj/item/crusher_trophy/wolf_ear = 2, - /obj/item/crusher_trophy/fang = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonecodpiece - name = "Skull Codpiece" - result = /obj/item/clothing/accessory/skullcodpiece - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/crusher_trophy/legion_skull = 1, - /obj/item/stack/sheet/animalhide/goliath_hide = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonestaff - name = "Legion Staff" - result = /obj/item/legion_staff - time = 35 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/crusher_trophy/legion_skull = 2,\ - /obj/item/crusher_trophy/dwarf_skull = 1, - /obj/item/organ/regenerative_core/legion = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/skilt - name = "Sinew Kilt" - result = /obj/item/clothing/accessory/skilt - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 1, - /obj/item/stack/sheet/sinew = 2) - category = CAT_PRIMAL - -/datum/crafting_recipe/bracers - name = "Bone Bracers" - result = /obj/item/clothing/gloves/bracer - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/sinew = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/skullhelm - name = "Skull Helmet" - result = /obj/item/clothing/head/helmet/skull - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 4) - category = CAT_PRIMAL - -/datum/crafting_recipe/goliathcloak - name = "Goliath Cloak" - result = /obj/item/clothing/suit/hooded/cloak/goliath - time = 50 - reqs = list(/obj/item/stack/sheet/leather = 2, - /obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 2) //it takes 4 goliaths to make 1 cloak if the plates are skinned - category = CAT_PRIMAL - -/datum/crafting_recipe/drakecloak - name = "Ash Drake Armour" - result = /obj/item/clothing/suit/hooded/cloak/drake - time = 60 - reqs = list(/obj/item/stack/sheet/bone = 10, - /obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/ashdrake = 5) - category = CAT_PRIMAL - -/datum/crafting_recipe/firebrand - name = "Firebrand" - result = /obj/item/match/firebrand - time = 100 //Long construction time. Making fire is hard work. - reqs = list(/obj/item/stack/sheet/mineral/wood = 2) - category = CAT_PRIMAL - -/datum/crafting_recipe/gold_horn - name = "Golden Bike Horn" - result = /obj/item/bikehorn/golden - time = 20 - reqs = list(/obj/item/stack/sheet/mineral/bananium = 5, - /obj/item/bikehorn = 1) - category = CAT_MISC - -/datum/crafting_recipe/bonedagger - name = "Bone Dagger" - result = /obj/item/kitchen/knife/combat/bone - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 2) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonespear - name = "Bone Spear" - result = /obj/item/spear/bonespear - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 4, - /obj/item/stack/sheet/sinew = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/boneaxe - name = "Bone Axe" - result = /obj/item/fireaxe/boneaxe - time = 50 - reqs = list(/obj/item/stack/sheet/bone = 6, - /obj/item/stack/sheet/sinew = 3) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonfire - name = "Bonfire" - time = 60 - reqs = list(/obj/item/grown/log = 5) - parts = list(/obj/item/grown/log = 5) - blacklist = list(/obj/item/grown/log/steel) - result = /obj/structure/bonfire - category = CAT_PRIMAL - -/datum/crafting_recipe/rake //Category resorting incoming - name = "Rake" - time = 30 - reqs = list(/obj/item/stack/sheet/mineral/wood = 5) - result = /obj/item/cultivator/rake - category = CAT_PRIMAL - -/datum/crafting_recipe/woodbucket - name = "Wooden Bucket" - time = 30 - reqs = list(/obj/item/stack/sheet/mineral/wood = 3) - result = /obj/item/reagent_containers/glass/bucket/wooden - category = CAT_PRIMAL - -/datum/crafting_recipe/headpike - name = "Spike Head (Glass Spear)" - time = 65 - reqs = list(/obj/item/spear = 1, - /obj/item/bodypart/head = 1) - parts = list(/obj/item/bodypart/head = 1, - /obj/item/spear = 1) - blacklist = list(/obj/item/spear/explosive, /obj/item/spear/bonespear) - result = /obj/structure/headpike - category = CAT_PRIMAL - -/datum/crafting_recipe/legionpike - name = "Legion on a Spear" - time = 55 - reqs = list(/obj/item/spear = 1, - /obj/item/organ/regenerative_core = 1, - /obj/item/crusher_trophy/legion_skull = 2) - result = /obj/structure/legionpike - category = CAT_PRIMAL - -/datum/crafting_recipe/tribal_torch - name = "Tribal Torch" - result = /obj/item/candle/tribal_torch - time = 30 - reqs = list(/obj/item/stack/sheet/mineral/wood = 4) - category = CAT_PRIMAL - -/datum/crafting_recipe/headpikebone - name = "Spike Head (Bone Spear)" - time = 65 - reqs = list(/obj/item/spear/bonespear = 1, - /obj/item/bodypart/head = 1) - parts = list(/obj/item/bodypart/head = 1, - /obj/item/spear/bonespear = 1) - result = /obj/structure/headpike/bone - category = CAT_PRIMAL - -/datum/crafting_recipe/pressureplate - name = "Pressure Plate" - result = /obj/item/pressure_plate - time = 5 - reqs = list(/obj/item/stack/sheet/metal = 1, - /obj/item/stack/tile/plasteel = 1, - /obj/item/stack/cable_coil = 2, - /obj/item/assembly/igniter = 1) - category = CAT_MISC - - -/datum/crafting_recipe/rcl - name = "Makeshift Rapid Pipe Cleaner Layer" - result = /obj/item/rcl/ghetto - time = 40 - tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) - reqs = list(/obj/item/stack/sheet/metal = 15) - category = CAT_MISC - -/datum/crafting_recipe/mummy - name = "Mummification Bandages (Mask)" - result = /obj/item/clothing/mask/mummy - time = 10 - tools = list(/obj/item/nullrod/egyptian) - reqs = list(/obj/item/stack/sheet/cotton/cloth = 2) - category = CAT_CLOTHING - -/datum/crafting_recipe/mummy/body - name = "Mummification Bandages (Body)" - result = /obj/item/clothing/under/costume/mummy - reqs = list(/obj/item/stack/sheet/cotton/cloth = 5) - -/datum/crafting_recipe/chaplain_hood - name = "Follower Hoodie" - result = /obj/item/clothing/suit/hooded/chaplain_hoodie - time = 10 - tools = list(/obj/item/clothing/suit/hooded/chaplain_hoodie, /obj/item/storage/book/bible) - reqs = list(/obj/item/stack/sheet/cotton/cloth = 4) - category = CAT_CLOTHING - -/datum/crafting_recipe/guillotine - name = "Guillotine" - result = /obj/structure/guillotine - time = 150 // Building a functioning guillotine takes time - reqs = list(/obj/item/stack/sheet/plasteel = 3, - /obj/item/stack/sheet/mineral/wood = 20, - /obj/item/stack/cable_coil = 10) - tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) - category = CAT_MISC - -/datum/crafting_recipe/aitater - name = "intelliTater" - result = /obj/item/aicard/aitater - time = 30 - tools = list(TOOL_WIRECUTTER) - reqs = list(/obj/item/aicard = 1, - /obj/item/reagent_containers/food/snacks/grown/potato = 1, - /obj/item/stack/cable_coil = 5) - category = CAT_MISC - -/datum/crafting_recipe/aitater/check_requirements(mob/user, list/collected_requirements) - var/obj/item/aicard/aicard = collected_requirements[/obj/item/aicard][1] - if(!aicard.AI) - return TRUE - - to_chat(user, "You can't craft an intelliTater with an AI in the card!") - return FALSE - -/datum/crafting_recipe/aispook - name = "intelliLantern" - result = /obj/item/aicard/aispook - time = 30 - tools = list(TOOL_WIRECUTTER) - reqs = list(/obj/item/aicard = 1, - /obj/item/reagent_containers/food/snacks/grown/pumpkin = 1, - /obj/item/stack/cable_coil = 5) - category = CAT_MISC - -/datum/crafting_recipe/ghettojetpack - name = "Improvised Jetpack" - result = /obj/item/tank/jetpack/improvised - time = 30 - reqs = list(/obj/item/tank/internals/oxygen = 2, /obj/item/extinguisher = 1, /obj/item/pipe = 3, /obj/item/stack/cable_coil = MAXCOIL) - category = CAT_MISC - tools = list(TOOL_WRENCH, TOOL_WELDER, TOOL_WIRECUTTER) - -/datum/crafting_recipe/multiduct - name = "Multi-layer duct" - result = /obj/machinery/duct/multilayered - time = 5 - reqs = list(/obj/item/stack/ducts = 5) - category = CAT_MISC - tools = list(TOOL_WELDER) - -/datum/crafting_recipe/rib - name = "Collosal Rib" - always_availible = FALSE - reqs = list( - /obj/item/stack/sheet/bone = 10, - /datum/reagent/fuel/oil = 5) - result = /obj/structure/statue/bone/rib - subcategory = CAT_PRIMAL - -/datum/crafting_recipe/skull - name = "Skull Carving" - always_availible = FALSE - reqs = list( - /obj/item/stack/sheet/bone = 6, - /datum/reagent/fuel/oil = 5) - result = /obj/structure/statue/bone/skull - category = CAT_PRIMAL - -/datum/crafting_recipe/halfskull - name = "Cracked Skull Carving" - always_availible = FALSE - reqs = list( - /obj/item/stack/sheet/bone = 3, - /datum/reagent/fuel/oil = 5) - result = /obj/structure/statue/bone/skull/half - category = CAT_PRIMAL - -/datum/crafting_recipe/boneshovel - name = "Serrated Bone Shovel" - always_availible = FALSE - reqs = list( - /obj/item/stack/sheet/bone = 4, - /datum/reagent/fuel/oil = 5, - /obj/item/shovel/spade = 1) - result = /obj/item/shovel/serrated - category = CAT_PRIMAL - -/datum/crafting_recipe/lasso - name = "Bone Lasso" - reqs = list( - /obj/item/stack/sheet/bone = 1, - /obj/item/stack/sheet/sinew = 5) - result = /obj/item/key/lasso - category = CAT_PRIMAL - -/datum/crafting_recipe/gripperoffbrand - name = "Improvised Gripper Gloves" - reqs = list( - /obj/item/clothing/gloves/fingerless = 1, - /obj/item/stack/tape = 1) - result = /obj/item/clothing/gloves/tackler/offbrand - category = CAT_CLOTHING - -/*WS edit - Normal BoH -/datum/crafting_recipe/boh - name = "Bag of Holding" - reqs = list( - /obj/item/bag_of_holding_inert = 1, - /obj/item/assembly/signaler/anomaly/bluespace = 1) - result = /obj/item/storage/backpack/holding - category = CAT_CLOTHING -*/ - -/datum/crafting_recipe/ipickaxe - name = "Improvised Pickaxe" - reqs = list( - /obj/item/crowbar = 1, - /obj/item/kitchen/knife = 1, - /obj/item/stack/tape = 1) - result = /obj/item/pickaxe/improvised - category = CAT_MISC - -/datum/crafting_recipe/chem_scanner - name = "Reagent Scanner" - time = 30 - tools = list(TOOL_WIRECUTTER, TOOL_SCREWDRIVER) - reqs = list( - /obj/item/healthanalyzer = 1, - /obj/item/stack/cable_coil = 5, - /obj/item/stock_parts/scanning_module = 1) - result = /obj/item/reagent_scanner - category = CAT_MISC - -/datum/crafting_recipe/filter - name = "Seperatory Funnel" - time = 40 - tools = list(TOOL_WELDER, TOOL_WIRECUTTER) - reqs = list( - /obj/item/stack/cable_coil = 1, - /obj/item/reagent_containers/glass/beaker = 3) - result = /obj/item/reagent_containers/glass/filter - category = CAT_MISC - -/datum/crafting_recipe/dragonspear - name = "Dragonslayer's Spear" - result = /obj/item/spear/dragonspear - time = 45 - reqs = list(/obj/item/crusher_trophy/ash_spike = 1, - /obj/item/crusher_trophy/tail_spike = 2, - /obj/item/stack/sheet/bone = 5, - /obj/item/stack/sheet/sinew = 3) - category = CAT_PRIMAL - -/datum/crafting_recipe/splint - name = "Makeshift Splint" - reqs = list( - /obj/item/stack/rods = 2, - /obj/item/stack/sheet/cotton/cloth = 4) - result = /obj/item/stack/medical/splint/ghetto - category = CAT_MISC - -/datum/crafting_recipe/cwzippo - name = "Clockwork Zippo" - reqs = list( - /obj/item/lighter = 1, - /obj/item/stack/tile/bronze = 5) - result = /obj/item/lighter/clockwork - category = CAT_MISC - -/datum/crafting_recipe/pipebow - name = "Pipe Bow" - result = /obj/item/gun/ballistic/bow/pipe - reqs = list(/obj/item/pipe = 5, - /obj/item/stack/sheet/plastic = 15, - /obj/item/weaponcrafting/silkstring = 10) - time = 450 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/arrow - name = "Arrow" - result = /obj/item/ammo_casing/caseless/arrow/wood - time = 30 - reqs = list(/obj/item/stack/sheet/mineral/wood = 1, - /obj/item/stack/sheet/silk = 1, - /obj/item/stack/rods = 1) //1 metal sheet = 2 rods= 2 arrows - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/bone_arrow - name = "Bone Arrow" - result = /obj/item/ammo_casing/caseless/arrow/bone - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 1, - /obj/item/stack/sheet/sinew = 1, - /obj/item/ammo_casing/caseless/arrow/ash = 1) - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/ashen_arrow - name = "Fire hardened arrow" - result = /obj/item/ammo_casing/caseless/arrow/ash - tools = list(TOOL_WELDER) - time = 30 - reqs = list(/obj/item/ammo_casing/caseless/arrow/wood = 1) - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/bronze_arrow - name = "Bronze arrow" - result = /obj/item/ammo_casing/caseless/arrow/bronze - time = 30 - reqs = list(/obj/item/stack/sheet/mineral/wood = 1, - /obj/item/stack/tile/bronze = 1, - /obj/item/stack/sheet/silk = 1) - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/heavybonearmor - name = "Heavy Bone Armor" - result = /obj/item/clothing/suit/hooded/cloak/bone - time = 60 - reqs = list(/obj/item/stack/sheet/bone = 8, - /obj/item/stack/sheet/sinew = 3) - category = CAT_PRIMAL - -/datum/crafting_recipe/watcherbola - name = "Watcher Bola" - result = /obj/item/restraints/legcuffs/bola/watcher - time = 30 - reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide = 2, - /obj/item/restraints/handcuffs/cable/sinew = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/goliathshield - name = "Goliath shield" - result = /obj/item/shield/riot/goliath - time = 60 - reqs = list(/obj/item/stack/sheet/bone = 4, - /obj/item/stack/sheet/animalhide/goliath_hide = 3) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonesword - name = "Bone Sword" - result = /obj/item/claymore/bone - time = 40 - reqs = list(/obj/item/stack/sheet/bone = 3, - /obj/item/stack/sheet/sinew = 2) - category = CAT_PRIMAL - -/datum/crafting_recipe/hunterbelt - name = "Hunters Belt" - result = /obj/item/storage/belt/mining/primitive - time = 20 - reqs = list(/obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 2) - category = CAT_PRIMAL - -/datum/crafting_recipe/quiver - name = "Quiver" - result = /obj/item/storage/bag/quiver/empty - time = 80 - reqs = list(/obj/item/stack/sheet/leather = 3, - /obj/item/stack/sheet/sinew = 4) - category = CAT_PRIMAL - -/datum/crafting_recipe/bone_bow - name = "Bone Bow" - result = /obj/item/gun/ballistic/bow/ashen - time = 200 - reqs = list(/obj/item/stack/sheet/bone = 8, - /obj/item/stack/sheet/sinew = 4) - category = CAT_PRIMAL -/datum/crafting_recipe/boneclub - name = "Bone Club" - result = /obj/item/melee/baseball_bat/bone - time = 40 - reqs = list(/obj/item/stack/sheet/bone = 6) - category = CAT_PRIMAL -/datum/crafting_recipe/polarbearcloak - name = "Polar Cloak" - result = /obj/item/clothing/suit/hooded/cloak/goliath/polar - time = 50 - reqs = list(/obj/item/stack/sheet/leather = 2, - /obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 2) - blacklist = list(/obj/item/stack/sheet/animalhide/goliath_hide) - category = CAT_PRIMAL -/datum/crafting_recipe/portableseedextractor - name = "Portable seed extractor" - reqs = list( - /obj/item/storage/bag/plants = 1, - /obj/item/plant_analyzer = 1, - /obj/item/stock_parts/manipulator = 1, - /obj/item/stack/cable_coil = 2) - result = /obj/item/storage/bag/plants/portaseeder //this will probably mean that you can craft portable seed extractors into themselves, sending the other materials into the void, but we still don't have a solution for recipes involving radios stealing your headset, so this is officially not my problem. "no, Tills-The-Soil, adding more analyzers and micro-manipulators to your portable seed extractor does not make it make more seeds. in fact it does exactly nothing." - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - category = CAT_MISC - -/datum/crafting_recipe/zip_pistol - name = "Zip Pistol" - result = /obj/item/gun/ballistic/automatic/zip_pistol - reqs = list(/obj/item/stack/rods = 4, - /obj/item/pipe = 1, - /obj/item/stack/cable_coil = 15, - /obj/item/weaponcrafting/receiver = 1, - /obj/item/floor_painter = 1, - /obj/item/stack/packageWrap = 10) - tools = list(TOOL_SCREWDRIVER) - time = 100 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/scrap_armor - name = "Scrap Armor" - result = /obj/item/clothing/suit/armor/vest/scrap_armor - time = 60 - reqs = list( - /obj/item/stack/sheet/metal = 10, - /obj/item/stack/cable_coil = 20, - ) - category = CAT_CLOTHING - -/datum/crafting_recipe/umbrellared - name = "Red Drink Umbrella" - result = /obj/item/garnish/umbrellared - time = 1 SECONDS - tools = list(/obj/item/toy/crayon/spraycan) - reqs = list( - /obj/item/paper = 1, - /obj/item/stack/rods = 1) - category = CAT_DRINK - -/datum/crafting_recipe/umbrellablue - name = "Blue Drink Umbrella" - result = /obj/item/garnish/umbrellablue - time = 1 SECONDS - tools = list(/obj/item/toy/crayon/spraycan) - reqs = list( - /obj/item/paper = 1, - /obj/item/stack/rods = 1) - category = CAT_DRINK - -/datum/crafting_recipe/umbrellagreen - name = "Green Drink Umbrella" - result = /obj/item/garnish/umbrellagreen - time = 1 SECONDS - tools = list(/obj/item/toy/crayon/spraycan) - reqs = list( - /obj/item/paper = 1, - /obj/item/stack/rods = 1) - category = CAT_DRINK - -/datum/crafting_recipe/ash_garnish - name = "Ash Garnish" - result = /obj/item/garnish/ash - reqs = list(/datum/reagent/ash = 10) - time = 5 - category = CAT_DRINK - -/datum/crafting_recipe/salt_garnish - name = "Salt Garnish" - result = /obj/item/garnish/salt - reqs = list(/datum/reagent/consumable/sodiumchloride = 10) - time = 5 - category = CAT_DRINK - -/datum/crafting_recipe/crystalamulet - name = "Crystal Amulet" - result = /obj/item/clothing/neck/crystal_amulet - time = 4 SECONDS - reqs = list(/obj/item/strange_crystal = 3) - category = CAT_MISC - -/datum/crafting_recipe/crystalspear - name = "Crystal Spear" - result = /obj/item/spear/crystal - time = 4 SECONDS - reqs = list(/obj/item/strange_crystal = 2) - category = CAT_MISC - -/datum/crafting_recipe/freezer - name = "Freezer" - result = /obj/structure/closet/crate/freezer - time = 2 SECONDS - reqs = list(/datum/reagent/consumable/ice = 25, - /obj/item/stack/sheet/metal = 2) - category = CAT_MISC - -/datum/crafting_recipe/aquarium - name = "Aquarium" - result = /obj/structure/aquarium - time = 10 SECONDS - reqs = list(/obj/item/stack/sheet/metal = 15, - /obj/item/stack/sheet/glass = 10, - /obj/item/aquarium_kit = 1) - category = CAT_MISC - -/datum/crafting_recipe/mothplush - name = "Moth Plushie" - result = /obj/item/toy/plush/moth - reqs = list(/obj/item/stack/sheet/animalhide/mothroach = 1, - /obj/item/organ/heart = 1, - /obj/item/stack/sheet/cotton/cloth = 3) - category = CAT_MISC - -/datum/crafting_recipe/breakawayflask - name = "Breakaway Flask" - result = /obj/item/reagent_containers/food/drinks/breakawayflask - time = 5 SECONDS - reqs = list(/obj/item/stack/sheet/glass = 5, - /obj/item/stack/sheet/mineral/plasma = 1) - tools = list(TOOL_WELDER) - category = CAT_DRINK - -/datum/crafting_recipe/fermenting_barrel - name = "Wooden Barrel" - result = /obj/structure/fermenting_barrel - reqs = list(/obj/item/stack/sheet/mineral/wood = 8) - time = 50 - category = CAT_PRIMAL - -/datum/crafting_recipe/distiller - name = "Distiller" - result = /obj/structure/fermenting_barrel/distiller - reqs = list(/obj/item/stack/sheet/mineral/wood = 8, /obj/item/stack/sheet/metal = 5, /datum/reagent/srm_bacteria = 30) - time = 50 - category = CAT_PRIMAL diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/recipes/clothing.dm similarity index 69% rename from code/datums/components/crafting/tailoring.dm rename to code/datums/components/crafting/recipes/clothing.dm index 4caaa55ded29..95b37502bcaf 100644 --- a/code/datums/components/crafting/tailoring.dm +++ b/code/datums/components/crafting/recipes/clothing.dm @@ -73,14 +73,6 @@ ) category = CAT_CLOTHING -/datum/crafting_recipe/hudsunsecremoval - name = "Security HUD removal" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/security/sunglasses = 1) - category = CAT_CLOTHING - /datum/crafting_recipe/hudsunmed name = "Medical HUDsunglasses" result = /obj/item/clothing/glasses/hud/health/sunglasses @@ -93,14 +85,6 @@ ) category = CAT_CLOTHING -/datum/crafting_recipe/hudsunmedremoval - name = "Medical HUD removal" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/health/sunglasses = 1) - category = CAT_CLOTHING - /datum/crafting_recipe/hudsundiag name = "Diagnostic HUDsunglasses" result = /obj/item/clothing/glasses/hud/diagnostic/sunglasses @@ -113,14 +97,6 @@ ) category = CAT_CLOTHING -/datum/crafting_recipe/hudsundiagremoval - name = "Diagnostic HUD removal" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/diagnostic/sunglasses = 1) - category = CAT_CLOTHING - /datum/crafting_recipe/sciencesunglasses name = "Science Sunglasses" result = /obj/item/clothing/glasses/sunglasses/chemical @@ -133,14 +109,6 @@ ) category = CAT_CLOTHING -/datum/crafting_recipe/sciencesunglassesremoval - name = "Science Sunglasses Dissemble" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/sunglasses/reagent = 1) - category = CAT_CLOTHING - /datum/crafting_recipe/medhudglasses // The prescription HUD glasses. This long to have them... #Lianvee name = "MedicalHUD Prescription Glasses" result = /obj/item/clothing/glasses/hud/health/prescription @@ -153,14 +121,6 @@ ) category = CAT_CLOTHING -/datum/crafting_recipe/medhudglassesremoval - name = "MedicalHUD Prescription Glasses Disassembly" - result = /obj/item/clothing/glasses/regular - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/health/prescription = 1) - category = CAT_CLOTHING - /datum/crafting_recipe/sechudglasses name = "SecurityHUD Prescription Glasses" result = /obj/item/clothing/glasses/hud/security/prescription @@ -173,14 +133,6 @@ ) category = CAT_CLOTHING -/datum/crafting_recipe/sechudglassesremoval - name = "SecurityHUD Prescription Glasses Disassembly" - result = /obj/item/clothing/glasses/regular - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/security/prescription = 1) - category = CAT_CLOTHING - /datum/crafting_recipe/mesonglasses name = "Meson Prescription Glasses" result = /obj/item/clothing/glasses/meson/prescription @@ -193,14 +145,6 @@ ) category = CAT_CLOTHING -/datum/crafting_recipe/mesonglassesremoval - name = "Meson Prescription Glasses Disassembly" - result = /obj/item/clothing/glasses/regular - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/meson/prescription = 1) - category = CAT_CLOTHING - /datum/crafting_recipe/scienceglasses name = "Science Prescription Glasses" result = /obj/item/clothing/glasses/science/prescription @@ -213,14 +157,6 @@ ) category = CAT_CLOTHING -/datum/crafting_recipe/scienceglassesremoval - name = "Science Prescription Glasses Disassembly" - result = /obj/item/clothing/glasses/regular - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/science/prescription = 1) - category = CAT_CLOTHING - // Misc. /datum/crafting_recipe/ghostsheet name = "Ghost Sheet" @@ -236,3 +172,21 @@ reqs = list(/obj/item/stack/sheet/leather = 2) time = 45 category = CAT_CLOTHING + +/datum/crafting_recipe/gripperoffbrand + name = "Improvised Gripper Gloves" + reqs = list( + /obj/item/clothing/gloves/fingerless = 1, + /obj/item/stack/tape = 1) + result = /obj/item/clothing/gloves/tackler/offbrand + category = CAT_CLOTHING + +/datum/crafting_recipe/scrap_armor + name = "Scrap Armor" + result = /obj/item/clothing/suit/armor/vest/scrap_armor + time = 60 + reqs = list( + /obj/item/stack/sheet/metal = 10, + /obj/item/stack/cable_coil = 20, + ) + category = CAT_CLOTHING diff --git a/code/datums/components/crafting/recipes/drink.dm b/code/datums/components/crafting/recipes/drink.dm new file mode 100644 index 000000000000..5ca6d14814c1 --- /dev/null +++ b/code/datums/components/crafting/recipes/drink.dm @@ -0,0 +1,52 @@ +/datum/crafting_recipe/umbrellared + name = "Red Drink Umbrella" + result = /obj/item/garnish/umbrellared + time = 1 SECONDS + tools = list(/obj/item/toy/crayon/spraycan) + reqs = list( + /obj/item/paper = 1, + /obj/item/stack/rods = 1) + category = CAT_DRINK + +/datum/crafting_recipe/umbrellablue + name = "Blue Drink Umbrella" + result = /obj/item/garnish/umbrellablue + time = 1 SECONDS + tools = list(/obj/item/toy/crayon/spraycan) + reqs = list( + /obj/item/paper = 1, + /obj/item/stack/rods = 1) + category = CAT_DRINK + +/datum/crafting_recipe/umbrellagreen + name = "Green Drink Umbrella" + result = /obj/item/garnish/umbrellagreen + time = 1 SECONDS + tools = list(/obj/item/toy/crayon/spraycan) + reqs = list( + /obj/item/paper = 1, + /obj/item/stack/rods = 1) + category = CAT_DRINK + +/datum/crafting_recipe/ash_garnish + name = "Ash Garnish" + result = /obj/item/garnish/ash + reqs = list(/datum/reagent/ash = 10) + time = 5 + category = CAT_DRINK + +/datum/crafting_recipe/salt_garnish + name = "Salt Garnish" + result = /obj/item/garnish/salt + reqs = list(/datum/reagent/consumable/sodiumchloride = 10) + time = 5 + category = CAT_DRINK + +/datum/crafting_recipe/breakawayflask + name = "Breakaway Flask" + result = /obj/item/reagent_containers/food/drinks/breakawayflask + time = 5 SECONDS + reqs = list(/obj/item/stack/sheet/glass = 5, + /obj/item/stack/sheet/mineral/plasma = 1) + tools = list(TOOL_WELDER) + category = CAT_DRINK diff --git a/code/datums/components/crafting/recipes/misc.dm b/code/datums/components/crafting/recipes/misc.dm new file mode 100644 index 000000000000..0ed4acb5be78 --- /dev/null +++ b/code/datums/components/crafting/recipes/misc.dm @@ -0,0 +1,220 @@ +/datum/crafting_recipe/skateboard + name = "Skateboard" + result = /obj/vehicle/ridden/scooter/skateboard + time = 60 + reqs = list(/obj/item/stack/sheet/metal = 5, + /obj/item/stack/rods = 10) + category = CAT_MISC + +/datum/crafting_recipe/scooter + name = "Scooter" + result = /obj/vehicle/ridden/scooter + time = 65 + reqs = list(/obj/item/stack/sheet/metal = 5, + /obj/item/stack/rods = 12) + category = CAT_MISC + +/datum/crafting_recipe/wheelchair + name = "Wheelchair" + result = /obj/vehicle/ridden/wheelchair + reqs = list(/obj/item/stack/sheet/metal = 4, + /obj/item/stack/rods = 6) + time = 100 + category = CAT_MISC + +/datum/crafting_recipe/motorized_wheelchair + name = "Motorized Wheelchair" + result = /obj/vehicle/ridden/wheelchair/motorized + reqs = list(/obj/item/stack/sheet/metal = 10, + /obj/item/stack/rods = 8, + /obj/item/stock_parts/manipulator = 2, + /obj/item/stock_parts/capacitor = 1) + parts = list(/obj/item/stock_parts/manipulator = 2, + /obj/item/stock_parts/capacitor = 1) + tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) + time = 200 + category = CAT_MISC + +/datum/crafting_recipe/mousetrap + name = "Mouse Trap" + result = /obj/item/assembly/mousetrap + time = 10 + reqs = list(/obj/item/stack/sheet/cardboard = 1, + /obj/item/stack/rods = 1) + category = CAT_MISC + +/datum/crafting_recipe/papersack + name = "Paper Sack" + result = /obj/item/storage/box/papersack + time = 10 + reqs = list(/obj/item/paper = 5) + category = CAT_MISC + +/datum/crafting_recipe/flashlight_eyes + name = "Flashlight Eyes" + result = /obj/item/organ/eyes/robotic/flashlight + time = 10 + reqs = list( + /obj/item/flashlight = 2, + /obj/item/restraints/handcuffs/cable = 1 + ) + category = CAT_MISC + +/datum/crafting_recipe/paperframes + name = "Paper Frames" + result = /obj/item/stack/sheet/paperframes/five + time = 10 + reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/paper = 20) + category = CAT_MISC + +/datum/crafting_recipe/naturalpaper + name = "Hand-Pressed Paper" + time = 30 + reqs = list(/datum/reagent/water = 50, /obj/item/stack/sheet/mineral/wood = 1) + tools = list(/obj/item/hatchet) + result = /obj/item/paper_bin/bundlenatural + category = CAT_MISC + +/datum/crafting_recipe/curtain + name = "Curtains" + reqs = list(/obj/item/stack/sheet/cotton/cloth = 4, /obj/item/stack/rods = 1) + result = /obj/structure/curtain/cloth + category = CAT_MISC + +/datum/crafting_recipe/showercurtain + name = "Shower Curtains" + reqs = list(/obj/item/stack/sheet/cotton/cloth = 2, /obj/item/stack/sheet/plastic = 2, /obj/item/stack/rods = 1) + result = /obj/structure/curtain + category = CAT_MISC + +/datum/crafting_recipe/extendohand + name = "Extendo-Hand" + reqs = list(/obj/item/bodypart/r_arm/robot = 1, /obj/item/clothing/gloves/boxing = 1) + result = /obj/item/extendohand + category = CAT_MISC + +/datum/crafting_recipe/pressureplate + name = "Pressure Plate" + result = /obj/item/pressure_plate + time = 5 + reqs = list(/obj/item/stack/sheet/metal = 1, + /obj/item/stack/tile/plasteel = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/assembly/igniter = 1) + category = CAT_MISC + +/datum/crafting_recipe/rcl + name = "Makeshift Rapid Pipe Cleaner Layer" + result = /obj/item/rcl/ghetto + time = 40 + tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) + reqs = list(/obj/item/stack/sheet/metal = 15) + category = CAT_MISC + +/datum/crafting_recipe/guillotine + name = "Guillotine" + result = /obj/structure/guillotine + time = 150 // Building a functioning guillotine takes time + reqs = list(/obj/item/stack/sheet/plasteel = 3, + /obj/item/stack/sheet/mineral/wood = 20, + /obj/item/stack/cable_coil = 10) + tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) + category = CAT_MISC + +/datum/crafting_recipe/ghettojetpack + name = "Improvised Jetpack" + result = /obj/item/tank/jetpack/improvised + time = 30 + reqs = list(/obj/item/tank/internals/oxygen = 2, /obj/item/extinguisher = 1, /obj/item/pipe = 3, /obj/item/stack/cable_coil = MAXCOIL) + category = CAT_MISC + tools = list(TOOL_WRENCH, TOOL_WELDER, TOOL_WIRECUTTER) + +/datum/crafting_recipe/multiduct + name = "Multi-layer duct" + result = /obj/machinery/duct/multilayered + time = 5 + reqs = list(/obj/item/stack/ducts = 5) + category = CAT_MISC + tools = list(TOOL_WELDER) + +/datum/crafting_recipe/ipickaxe + name = "Improvised Pickaxe" + reqs = list( + /obj/item/crowbar = 1, + /obj/item/kitchen/knife = 1, + /obj/item/stack/tape = 1) + result = /obj/item/pickaxe/improvised + category = CAT_MISC + +/datum/crafting_recipe/chem_scanner + name = "Reagent Scanner" + time = 30 + tools = list(TOOL_WIRECUTTER, TOOL_SCREWDRIVER) + reqs = list( + /obj/item/healthanalyzer = 1, + /obj/item/stack/cable_coil = 5, + /obj/item/stock_parts/scanning_module = 1) + result = /obj/item/reagent_scanner + category = CAT_MISC + +/datum/crafting_recipe/filter + name = "Seperatory Funnel" + time = 40 + tools = list(TOOL_WELDER, TOOL_WIRECUTTER) + reqs = list( + /obj/item/stack/cable_coil = 1, + /obj/item/reagent_containers/glass/beaker = 3) + result = /obj/item/reagent_containers/glass/filter + category = CAT_MISC + +/datum/crafting_recipe/splint + name = "Makeshift Splint" + reqs = list( + /obj/item/stack/rods = 2, + /obj/item/stack/sheet/cotton/cloth = 4) + result = /obj/item/stack/medical/splint/ghetto + category = CAT_MISC + +/datum/crafting_recipe/portableseedextractor + name = "Portable seed extractor" + reqs = list( + /obj/item/storage/bag/plants = 1, + /obj/item/plant_analyzer = 1, + /obj/item/stock_parts/manipulator = 1, + /obj/item/stack/cable_coil = 2) + result = /obj/item/storage/bag/plants/portaseeder //this will probably mean that you can craft portable seed extractors into themselves, sending the other materials into the void, but we still don't have a solution for recipes involving radios stealing your headset, so this is officially not my problem. "no, Tills-The-Soil, adding more analyzers and micro-manipulators to your portable seed extractor does not make it make more seeds. in fact it does exactly nothing." + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + category = CAT_MISC + +/datum/crafting_recipe/freezer + name = "Freezer" + result = /obj/structure/closet/crate/freezer + time = 2 SECONDS + reqs = list(/datum/reagent/consumable/ice = 25, + /obj/item/stack/sheet/metal = 2) + category = CAT_MISC + +/datum/crafting_recipe/aquarium + name = "Aquarium" + result = /obj/structure/aquarium + time = 10 SECONDS + reqs = list(/obj/item/stack/sheet/metal = 15, + /obj/item/stack/sheet/glass = 10, + /obj/item/aquarium_kit = 1) + category = CAT_MISC + +/datum/crafting_recipe/mothplush + name = "Moth Plushie" + result = /obj/item/toy/plush/moth + reqs = list(/obj/item/stack/sheet/animalhide/mothroach = 1, + /obj/item/organ/heart = 1, + /obj/item/stack/sheet/cotton/cloth = 3) + category = CAT_MISC + +/datum/crafting_recipe/candorupgrade + name = "Candor Upgrade" + result = /obj/item/gun/ballistic/automatic/pistol/candor/phenex + reqs = list(/obj/item/stack/sheet/mineral/hidden = 4, + /obj/item/gun/ballistic/automatic/pistol/candor = 1) + category = CAT_MISC diff --git a/code/datums/components/crafting/recipes/robot.dm b/code/datums/components/crafting/recipes/robot.dm new file mode 100644 index 000000000000..a5558682e86b --- /dev/null +++ b/code/datums/components/crafting/recipes/robot.dm @@ -0,0 +1,86 @@ +/datum/crafting_recipe/ed209 + name = "ED209" + result = /mob/living/simple_animal/bot/secbot/ed209 + reqs = list(/obj/item/robot_suit = 1, + /obj/item/clothing/head/helmet = 1, + /obj/item/clothing/suit/armor/vest = 1, + /obj/item/bodypart/leg/left/robot = 1, + /obj/item/bodypart/leg/right/robot = 1, + /obj/item/stack/sheet/metal = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/gun/energy/disabler = 1, + /obj/item/assembly/prox_sensor = 1) + tools = list(TOOL_WELDER, TOOL_SCREWDRIVER) + time = 60 + category = CAT_ROBOT + +/datum/crafting_recipe/secbot + name = "Secbot" + result = /mob/living/simple_animal/bot/secbot + reqs = list(/obj/item/assembly/signaler = 1, + /obj/item/clothing/head/helmet/sec = 1, + /obj/item/melee/baton = 1, + /obj/item/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + tools = list(TOOL_WELDER) + time = 60 + category = CAT_ROBOT + +/datum/crafting_recipe/cleanbot + name = "Cleanbot" + result = /mob/living/simple_animal/bot/cleanbot + reqs = list(/obj/item/reagent_containers/glass/bucket = 1, + /obj/item/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + time = 40 + category = CAT_ROBOT + +/datum/crafting_recipe/floorbot + name = "Floorbot" + result = /mob/living/simple_animal/bot/floorbot + reqs = list(/obj/item/storage/toolbox = 1, + /obj/item/stack/tile/plasteel = 10, + /obj/item/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + time = 40 + category = CAT_ROBOT + +/datum/crafting_recipe/medbot + name = "Medbot" + result = /mob/living/simple_animal/bot/medbot + reqs = list(/obj/item/healthanalyzer = 1, + /obj/item/storage/firstaid = 1, + /obj/item/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + time = 40 + category = CAT_ROBOT + +/datum/crafting_recipe/honkbot + name = "Honkbot" + result = /mob/living/simple_animal/bot/honkbot + reqs = list(/obj/item/storage/box/clown = 1, + /obj/item/bodypart/r_arm/robot = 1, + /obj/item/assembly/prox_sensor = 1, + /obj/item/bikehorn/ = 1) + time = 40 + category = CAT_ROBOT + +/datum/crafting_recipe/Firebot + name = "Firebot" + result = /mob/living/simple_animal/bot/firebot + reqs = list(/obj/item/extinguisher = 1, + /obj/item/bodypart/r_arm/robot = 1, + /obj/item/assembly/prox_sensor = 1, + /obj/item/clothing/head/hardhat/red = 1) + time = 40 + category = CAT_ROBOT + +/datum/crafting_recipe/Vibebot + name = "Vibebot" + result = /mob/living/simple_animal/bot/vibebot + reqs = list(/obj/item/light/bulb = 2, + /obj/item/bodypart/head/robot = 1, + /obj/item/assembly/prox_sensor = 1, + /obj/item/toy/crayon = 1) + time = 40 + category = CAT_ROBOT diff --git a/code/datums/components/crafting/recipes/tribal.dm b/code/datums/components/crafting/recipes/tribal.dm new file mode 100644 index 000000000000..83e5c03722bc --- /dev/null +++ b/code/datums/components/crafting/recipes/tribal.dm @@ -0,0 +1,236 @@ +/datum/crafting_recipe/bonetalisman + name = "Bone Talisman" + result = /obj/item/clothing/accessory/talisman + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonenecklace + name = "Hunter's Necklace" + result = /obj/item/clothing/accessory/wolftalisman + time = 35 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 3, + /obj/item/mob_trophy/wolf_ear = 2, + /obj/item/mob_trophy/fang = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonecodpiece + name = "Skull Codpiece" + result = /obj/item/clothing/accessory/skullcodpiece + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/mob_trophy/legion_skull = 1, + /obj/item/stack/sheet/animalhide/goliath_hide = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/skilt + name = "Sinew Kilt" + result = /obj/item/clothing/accessory/skilt + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/bracers + name = "Bone Bracers" + result = /obj/item/clothing/gloves/bracer + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/goliathcloak + name = "Goliath Cloak" + result = /obj/item/clothing/suit/hooded/cloak/goliath + time = 50 + reqs = list(/obj/item/stack/sheet/leather = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 2) //it takes 4 goliaths to make 1 cloak if the plates are skinned + category = CAT_PRIMAL + +/datum/crafting_recipe/drakecloak + name = "Ash Drake Armour" + result = /obj/item/clothing/suit/hooded/cloak/drake + time = 60 + reqs = list(/obj/item/stack/sheet/bone = 10, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/ashdrake = 5) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonespear + name = "Bone Spear" + result = /obj/item/spear/bonespear + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 4, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/boneaxe + name = "Bone Axe" + result = /obj/item/fireaxe/boneaxe + time = 50 + reqs = list(/obj/item/stack/sheet/bone = 6, + /obj/item/stack/sheet/sinew = 3) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonfire + name = "Bonfire" + time = 60 + reqs = list(/obj/item/grown/log = 5) + parts = list(/obj/item/grown/log = 5) + blacklist = list(/obj/item/grown/log/steel) + result = /obj/structure/bonfire + category = CAT_PRIMAL + +/datum/crafting_recipe/headpike + name = "Spike Head (Glass Spear)" + time = 65 + reqs = list(/obj/item/spear = 1, + /obj/item/bodypart/head = 1) + parts = list(/obj/item/bodypart/head = 1, + /obj/item/spear = 1) + blacklist = list(/obj/item/spear/explosive, /obj/item/spear/bonespear) + result = /obj/structure/headpike + category = CAT_PRIMAL + +/datum/crafting_recipe/headpikebone + name = "Spike Head (Bone Spear)" + time = 65 + reqs = list(/obj/item/spear/bonespear = 1, + /obj/item/bodypart/head = 1) + parts = list(/obj/item/bodypart/head = 1, + /obj/item/spear/bonespear = 1) + result = /obj/structure/headpike/bone + category = CAT_PRIMAL + +/datum/crafting_recipe/lasso + name = "Bone Lasso" + reqs = list( + /obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 5) + result = /obj/item/key/lasso + category = CAT_PRIMAL + +/datum/crafting_recipe/heavybonearmor + name = "Heavy Bone Armor" + result = /obj/item/clothing/suit/hooded/cloak/bone + time = 60 + reqs = list(/obj/item/stack/sheet/bone = 8, + /obj/item/stack/sheet/sinew = 3) + category = CAT_PRIMAL + +/datum/crafting_recipe/watcherbola + name = "Watcher Bola" + result = /obj/item/restraints/legcuffs/bola/watcher + time = 30 + reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide = 2, + /obj/item/restraints/handcuffs/cable/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/goliathshield + name = "Goliath shield" + result = /obj/item/shield/riot/goliath + time = 60 + reqs = list(/obj/item/stack/sheet/bone = 4, + /obj/item/stack/sheet/animalhide/goliath_hide = 3) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonesword + name = "Bone Sword" + result = /obj/item/claymore/bone + time = 40 + reqs = list(/obj/item/stack/sheet/bone = 3, + /obj/item/stack/sheet/sinew = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/hunterbelt + name = "Hunters Belt" + result = /obj/item/storage/belt/mining/primitive + time = 20 + reqs = list(/obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/quiver + name = "Quiver" + result = /obj/item/storage/bag/quiver/empty + time = 80 + reqs = list(/obj/item/stack/sheet/leather = 3, + /obj/item/stack/sheet/sinew = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_bow + name = "Bone Bow" + result = /obj/item/gun/ballistic/bow/ashen + time = 200 + reqs = list(/obj/item/stack/sheet/bone = 8, + /obj/item/stack/sheet/sinew = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/polarbearcloak + name = "Polar Cloak" + result = /obj/item/clothing/suit/hooded/cloak/goliath/polar + time = 50 + reqs = list(/obj/item/stack/sheet/leather = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 2) + blacklist = list(/obj/item/stack/sheet/animalhide/goliath_hide) + category = CAT_PRIMAL + +/datum/crafting_recipe/distiller + name = "Distiller" + result = /obj/structure/fermenting_barrel/distiller + reqs = list(/obj/item/stack/sheet/mineral/wood = 8, /obj/item/stack/sheet/metal = 5, /datum/reagent/srm_bacteria = 30) + time = 50 + category = CAT_PRIMAL + +/datum/crafting_recipe/crystalamulet + name = "Crystal Amulet" + result = /obj/item/clothing/neck/crystal_amulet + time = 4 SECONDS + reqs = list(/obj/item/strange_crystal = 3) + category = CAT_PRIMAL + +/datum/crafting_recipe/crystalspear + name = "Crystal Spear" + result = /obj/item/spear/crystal + time = 4 SECONDS + reqs = list(/obj/item/strange_crystal = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/mushroom_bowl + name = "Mushroom Bowl" + result = /obj/item/reagent_containers/glass/bowl/mushroom_bowl + reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5) + time = 30 + category = CAT_PRIMAL + +/datum/crafting_recipe/charcoal_stylus + name = "Charcoal Stylus" + result = /obj/item/pen/charcoal + reqs = list(/obj/item/stack/sheet/mineral/wood = 1, /datum/reagent/ash = 30) + time = 30 + category = CAT_PRIMAL + +/datum/crafting_recipe/mushroom_mortar + name = "Mushroom Mortar" + result = /obj/item/reagent_containers/glass/mortar/mushroom + reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5) + time = 30 + category = CAT_PRIMAL + +/datum/crafting_recipe/oar + name = "Goliath Bone Oar" + result = /obj/item/oar + reqs = list(/obj/item/stack/sheet/bone = 2) + time = 15 + category = CAT_PRIMAL + +/datum/crafting_recipe/boat + name = "Goliath Hide Boat" + result = /obj/vehicle/ridden/lavaboat + reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide = 3) + time = 50 + category = CAT_PRIMAL diff --git a/code/datums/components/crafting/recipes/weapon.dm b/code/datums/components/crafting/recipes/weapon.dm new file mode 100644 index 000000000000..10f63bede5ce --- /dev/null +++ b/code/datums/components/crafting/recipes/weapon.dm @@ -0,0 +1,310 @@ +/datum/crafting_recipe/IED + name = "IED" + result = /obj/item/grenade/iedcasing + reqs = list(/datum/reagent/fuel = 50, + /obj/item/stack/cable_coil = 1, + /obj/item/assembly/igniter = 1, + /obj/item/reagent_containers/food/drinks/soda_cans = 1) + parts = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1) + time = 15 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/lance + name = "Explosive Lance (Grenade)" + result = /obj/item/spear/explosive + reqs = list(/obj/item/spear = 1, + /obj/item/grenade = 1) + blacklist = list(/obj/item/spear/bonespear) + parts = list(/obj/item/spear = 1, + /obj/item/grenade = 1) + time = 15 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/strobeshield + name = "Strobe Shield" + result = /obj/item/shield/riot/flash + reqs = list(/obj/item/wallframe/flasher = 1, + /obj/item/assembly/flash/handheld = 1, + /obj/item/shield/riot = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/strobeshield/New() + ..() + blacklist |= subtypesof(/obj/item/shield/riot/) + +/datum/crafting_recipe/molotov + name = "Molotov" + result = /obj/item/reagent_containers/food/drinks/bottle/molotov + reqs = list(/obj/item/reagent_containers/glass/rag = 1, + /obj/item/reagent_containers/food/drinks/bottle = 1) + parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/stunprod + name = "Stunprod" + result = /obj/item/melee/baton/cattleprod + reqs = list(/obj/item/restraints/handcuffs/cable = 1, + /obj/item/stack/rods = 1, + /obj/item/assembly/igniter = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/teleprod + name = "Teleprod" + result = /obj/item/melee/baton/cattleprod/teleprod + reqs = list(/obj/item/restraints/handcuffs/cable = 1, + /obj/item/stack/rods = 1, + /obj/item/assembly/igniter = 1, + /obj/item/stack/ore/bluespace_crystal = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/bola + name = "Bola" + result = /obj/item/restraints/legcuffs/bola + reqs = list(/obj/item/restraints/handcuffs/cable = 1, + /obj/item/stack/sheet/metal = 6) + time = 20//15 faster than crafting them by hand! + category= CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/gonbola + name = "Gonbola" + result = /obj/item/restraints/legcuffs/bola/gonbola + reqs = list(/obj/item/restraints/handcuffs/cable = 1, + /obj/item/stack/sheet/metal = 6, + /obj/item/stack/sheet/animalhide/gondola = 1) + time = 40 + category= CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but + name = "Pneumatic Cannon" + result = /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 = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/flamethrower + name = "Flamethrower" + result = /obj/item/flamethrower + reqs = list(/obj/item/weldingtool = 1, + /obj/item/assembly/igniter = 1, + /obj/item/stack/rods = 1) + parts = list(/obj/item/assembly/igniter = 1, + /obj/item/weldingtool = 1) + tools = list(TOOL_SCREWDRIVER) + time = 10 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/meteorslug + name = "Meteorslug Shell" + result = /obj/item/ammo_casing/shotgun/meteorslug + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /obj/item/rcd_ammo = 1, + /obj/item/stock_parts/manipulator = 2) + tools = list(TOOL_SCREWDRIVER) + time = 5 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/pulseslug + name = "Pulse Slug Shell" + result = /obj/item/ammo_casing/shotgun/pulseslug + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /obj/item/stock_parts/capacitor/adv = 2, + /obj/item/stock_parts/micro_laser/ultra = 1) + tools = list(TOOL_SCREWDRIVER) + time = 5 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/dragonsbreath + name = "Dragonsbreath Shell" + result = /obj/item/ammo_casing/shotgun/dragonsbreath + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, /datum/reagent/phosphorus = 5) + tools = list(TOOL_SCREWDRIVER) + time = 5 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/frag12 + name = "FRAG-12 Shell" + result = /obj/item/ammo_casing/shotgun/frag12 + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /datum/reagent/glycerol = 5, + /datum/reagent/toxin/acid = 5, + /datum/reagent/toxin/acid/fluacid = 5) + tools = list(TOOL_SCREWDRIVER) + time = 5 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/ionslug + name = "Ion Scatter Shell" + result = /obj/item/ammo_casing/shotgun/ion + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /obj/item/stock_parts/micro_laser/ultra = 1, + /obj/item/stock_parts/subspace/crystal = 1) + tools = list(TOOL_SCREWDRIVER) + time = 5 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/improvisedslug + name = "Improvised Shotgun Shell" + result = /obj/item/ammo_casing/shotgun/improvised + reqs = list(/obj/item/stack/sheet/metal = 2, + /obj/item/stack/cable_coil = 1, + /datum/reagent/fuel = 10) + tools = list(TOOL_SCREWDRIVER) + time = 12 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/laserscatter + name = "Scatter Laser Shell" + result = /obj/item/ammo_casing/shotgun/laserscatter + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /obj/item/stock_parts/capacitor/adv = 1, + /obj/item/stock_parts/micro_laser/high = 1) + tools = list(TOOL_SCREWDRIVER) + time = 5 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/ishotgun + name = "Improvised Shotgun" + result = /obj/item/gun/ballistic/shotgun/doublebarrel/improvised + reqs = list(/obj/item/weaponcrafting/receiver = 1, + /obj/item/pipe = 1, + /obj/item/weaponcrafting/stock = 1, + /obj/item/stack/packageWrap = 5) + tools = list(TOOL_SCREWDRIVER) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/chainsaw + name = "Chainsaw" + result = /obj/item/chainsaw + reqs = list(/obj/item/circular_saw = 1, + /obj/item/stack/cable_coil = 3, + /obj/item/stack/sheet/plasteel = 5) + tools = list(TOOL_WELDER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/spear + name = "Spear" + result = /obj/item/spear + reqs = list(/obj/item/restraints/handcuffs/cable = 1, + /obj/item/shard = 1, + /obj/item/stack/rods = 1) + parts = list(/obj/item/shard = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/chemical_payload + name = "Chemical Payload (C4)" + result = /obj/item/bombcore/chemical + reqs = list( + /obj/item/stock_parts/matter_bin = 1, + /obj/item/grenade/c4 = 1, + /obj/item/grenade/chem_grenade = 2 + ) + parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) + time = 30 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/chemical_payload2 + name = "Chemical Payload (Gibtonite)" + result = /obj/item/bombcore/chemical + reqs = list( + /obj/item/stock_parts/matter_bin = 1, + /obj/item/gibtonite = 1, + /obj/item/grenade/chem_grenade = 2 + ) + parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/pipebow + name = "Pipe Bow" + result = /obj/item/gun/ballistic/bow/pipe + reqs = list(/obj/item/pipe = 5, + /obj/item/stack/sheet/plastic = 15, + /obj/item/weaponcrafting/silkstring = 10) + time = 450 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/arrow + name = "Arrow" + result = /obj/item/ammo_casing/caseless/arrow/wood + time = 30 + reqs = list(/obj/item/stack/sheet/mineral/wood = 1, + /obj/item/stack/sheet/silk = 1, + /obj/item/stack/rods = 1) //1 metal sheet = 2 rods= 2 arrows + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/bone_arrow + name = "Bone Arrow" + result = /obj/item/ammo_casing/caseless/arrow/bone + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 1, + /obj/item/ammo_casing/caseless/arrow/ash = 1) + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/ashen_arrow + name = "Fire hardened arrow" + result = /obj/item/ammo_casing/caseless/arrow/ash + tools = list(TOOL_WELDER) + time = 30 + reqs = list(/obj/item/ammo_casing/caseless/arrow/wood = 1) + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/bronze_arrow + name = "Bronze arrow" + result = /obj/item/ammo_casing/caseless/arrow/bronze + time = 30 + reqs = list(/obj/item/stack/sheet/mineral/wood = 1, + /obj/item/stack/tile/bronze = 1, + /obj/item/stack/sheet/silk = 1) + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/zip_pistol + name = "Zip Pistol" + result = /obj/item/gun/ballistic/automatic/zip_pistol + reqs = list(/obj/item/stack/rods = 4, + /obj/item/pipe = 1, + /obj/item/stack/cable_coil = 15, + /obj/item/weaponcrafting/receiver = 1, + /obj/item/floor_painter = 1, + /obj/item/stack/packageWrap = 10) + tools = list(TOOL_SCREWDRIVER) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON diff --git a/code/datums/components/edible.dm b/code/datums/components/edible.dm index 3a047d082868..cf0199d05e18 100644 --- a/code/datums/components/edible.dm +++ b/code/datums/components/edible.dm @@ -115,7 +115,7 @@ Behavior that's still missing from this component that original food items had t . = COMPONENT_ITEM_NO_ATTACK //Point of no return I suppose if(eater == feeder)//If you're eating it yourself. - if(!do_mob(feeder, eater, eat_time)) //Gotta pass the minimal eat time + if(!do_after(feeder, eat_time, eater)) //Gotta pass the minimal eat time return var/eatverb = pick(eatverbs) if(junkiness && eater.satiety < -150 && eater.nutrition > NUTRITION_LEVEL_STARVING + 50 && !HAS_TRAIT(eater, TRAIT_VORACIOUS)) @@ -143,7 +143,7 @@ Behavior that's still missing from this component that original food items had t eater.visible_message("[feeder] cannot force any more of [parent] down [eater]'s throat!", \ "[feeder] cannot force any more of [parent] down your throat!") return - if(!do_mob(feeder, eater)) //Wait 3 seconds before you can feed + if(!do_after(feeder, target = eater)) //Wait 3 seconds before you can feed return log_combat(feeder, eater, "fed", owner.reagents.log_list()) diff --git a/code/datums/components/forensics.dm b/code/datums/components/forensics.dm index 3c006073304c..6f2a34e50ea5 100644 --- a/code/datums/components/forensics.dm +++ b/code/datums/components/forensics.dm @@ -192,4 +192,4 @@ return if(isitem(parent)) var/obj/item/I = parent - I.AddElement(/datum/element/decal/blood, initial(I.icon) || I.icon, initial(I.icon_state) || I.icon_state, _color = get_blood_dna_color(blood_DNA)) + I.AddElement(/datum/element/decal/blood, I.icon, I.icon_state, _color = get_blood_dna_color(blood_DNA)) diff --git a/code/datums/components/movable_physics.dm b/code/datums/components/movable_physics.dm new file mode 100644 index 000000000000..114cac29f24b --- /dev/null +++ b/code/datums/components/movable_physics.dm @@ -0,0 +1,151 @@ +#define PHYSICS_GRAV_STANDARD 9.80665 + +///Remove the component as soon as there's zero velocity, useful for movables that will no longer move after being initially moved (blood splatters) +#define QDEL_WHEN_NO_MOVEMENT (1<<0) + +///Stores information related to the movable's physics and keeping track of relevant signals to trigger movement +/datum/component/movable_physics + ///Modifies the pixel_x/pixel_y of an object every process() + var/horizontal_velocity + ///Modifies the pixel_z of an object every process(), movables aren't Move()'d into another turf if pixel_z exceeds 16, so try not to supply a super high vertical value if you don't want the movable to clip through multiple turfs + var/vertical_velocity + ///The horizontal_velocity is reduced by this every process(), this doesn't take into account the object being in the air vs gravity pushing it against the ground + var/horizontal_friction + ///The vertical_velocity is reduced by this every process() + var/z_gravity + ///The pixel_z that the object will no longer be influenced by gravity for a 32x32 turf, keep this value between -16 to 0 so it's visuals matches up with it physically being in the turf + var/z_floor + ///The angle of the path the object takes on the x/y plane + var/angle_of_movement + ///Flags for turning on certain physic properties, see the top of the file for more information on flags + var/physic_flags + ///The cached animate_movement of the parent; any kind of gliding when doing Move() makes the physics look derpy, so we'll just make Move() be instant + var/cached_animate_movement + ///The sound effect to play when bouncing off of something + var/bounce_sound + + var/numbounce = 1 + +/datum/component/movable_physics/Initialize(_horizontal_velocity = 0, _vertical_velocity = 0, _horizontal_friction = 0, _z_gravity = 0, _z_floor = 0, _angle_of_movement = 0, _physic_flags = 0, _bounce_sound) + . = ..() + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(throw_impact_ricochet), override = TRUE) + horizontal_velocity = _horizontal_velocity + vertical_velocity = _vertical_velocity + horizontal_friction = _horizontal_friction + z_gravity = _z_gravity + z_floor = _z_floor + angle_of_movement = _angle_of_movement + physic_flags = _physic_flags + bounce_sound = _bounce_sound + if(vertical_velocity || horizontal_velocity) + start_movement() + +///Let's get moving +/datum/component/movable_physics/proc/start_movement() + var/atom/movable/moving_atom = parent + cached_animate_movement = moving_atom.animate_movement + moving_atom.animate_movement = NO_STEPS + START_PROCESSING(SSmovablephysics, src) + moving_atom.SpinAnimation(speed = 1 SECONDS, loops = 1) + +///Alright it's time to stop +/datum/component/movable_physics/proc/stop_movement() + var/atom/movable/moving_atom = parent + moving_atom.animate_movement = cached_animate_movement + STOP_PROCESSING(SSmovablephysics, src) + if(physic_flags & QDEL_WHEN_NO_MOVEMENT) + qdel(src) + +/datum/component/movable_physics/UnregisterFromParent() + UnregisterSignal(parent, COMSIG_MOVABLE_IMPACT) + +/datum/component/movable_physics/proc/throw_impact_ricochet(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) + SIGNAL_HANDLER + var/atom/movable/atom_source = source + ricochet(atom_source, Get_Angle(atom_source, throwingdatum.target_turf)) + +/datum/component/movable_physics/proc/z_floor_bounce(atom/movable/moving_atom) + angle_of_movement += rand(-3000, 3000) / 100 + var/turf/a_turf = get_turf(moving_atom) + if(istype(moving_atom, /obj/item/ammo_casing) && !bounce_sound) + playsound(moving_atom, a_turf.bullet_bounce_sound, 50, TRUE) + else + playsound(moving_atom, bounce_sound, 50, TRUE) + moving_atom.SpinAnimation(speed = 1 SECONDS / numbounce, loops = 1) + moving_atom.pixel_z = z_floor + horizontal_velocity = max(0, horizontal_velocity + (vertical_velocity * -0.8)) + vertical_velocity = max(0, ((vertical_velocity * -0.8) - 0.2)) + numbounce += 0.5 + +/datum/component/movable_physics/proc/ricochet(atom/movable/moving_atom, bounce_angle) + angle_of_movement = ((180 - bounce_angle) - angle_of_movement) + if(angle_of_movement < 0) + angle_of_movement += 360 + //var/turf/a_turf = get_turf(moving_atom) + //playsound(src, a_turf.bullet_bounce_sound, 50, TRUE) + +/datum/component/movable_physics/proc/fix_angle(angle, atom/moving_atom)//fixes an angle below 0 or above 360 + if(!(angle_of_movement > 360) && !(angle_of_movement < 0)) + return angle //early return if it doesn't need to change + var/new_angle + if(angle_of_movement > 360) + new_angle = angle_of_movement - 360 + if(angle_of_movement < 0) + new_angle = angle_of_movement + 360 + return new_angle + +/datum/component/movable_physics/process(delta_time) + var/atom/movable/moving_atom = parent + var/turf/location = get_turf(moving_atom) + + angle_of_movement = fix_angle(angle_of_movement, moving_atom) + if(horizontal_velocity <= 0 && moving_atom.pixel_z == 0) + horizontal_velocity = 0 + stop_movement() + return + + moving_atom.pixel_x += (horizontal_velocity * (sin(angle_of_movement))) + moving_atom.pixel_y += (horizontal_velocity * (cos(angle_of_movement))) + + horizontal_velocity = max(0, horizontal_velocity - horizontal_friction) + + moving_atom.pixel_z = max(z_floor, moving_atom.pixel_z + vertical_velocity) + if(moving_atom.pixel_z > z_floor) + vertical_velocity -= (z_gravity * 0.05) + + if(moving_atom.pixel_z <= z_floor && (vertical_velocity != 0) && moving_atom.has_gravity(location)) //z bounce + z_floor_bounce(moving_atom) + + if(moving_atom.pixel_x > 16) + if(moving_atom.Move(get_step(moving_atom, EAST))) + moving_atom.pixel_x = -16 + else + moving_atom.pixel_x = 16 + ricochet(moving_atom, 0) + return + + if(moving_atom.pixel_x < -16) + if(moving_atom.Move(get_step(moving_atom, WEST))) + moving_atom.pixel_x = 16 + else + moving_atom.pixel_x = -16 + ricochet(moving_atom, 0) + return + + if(moving_atom.pixel_y > 16) + if(moving_atom.Move(get_step(moving_atom, NORTH))) + moving_atom.pixel_y = -16 + else + moving_atom.pixel_y = 16 + ricochet(moving_atom, 180) + return + + if(moving_atom.pixel_y < -16) + if(moving_atom.Move(get_step(moving_atom, SOUTH))) + moving_atom.pixel_y = 16 + else + moving_atom.pixel_y = -16 + ricochet(moving_atom, 180) + diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm index de61c13ae295..2f3aa79749b2 100644 --- a/code/datums/components/remote_materials.dm +++ b/code/datums/components/remote_materials.dm @@ -52,7 +52,7 @@ handles linking back and forth. /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, - /datum/material/bananium, + /datum/material/hellstone, /datum/material/titanium, /datum/material/bluespace, /datum/material/plastic, diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm index c0a9bd162209..160b72fa9566 100644 --- a/code/datums/components/storage/concrete/_concrete.dm +++ b/code/datums/components/storage/concrete/_concrete.dm @@ -57,7 +57,7 @@ _contents_limbo = null if(_user_limbo) for(var/i in _user_limbo) - show_to(i) + ui_show(i) _user_limbo = null /datum/component/storage/concrete/_insert_physical_item(obj/item/I, override = FALSE) diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index bd0a59f85f42..ce224d44e4e5 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -83,10 +83,16 @@ /datum/component/storage/concrete/pockets/helmet/Initialize() . = ..() set_holdable(list( - /obj/item/reagent_containers/food/drinks/bottle/vodka, - /obj/item/reagent_containers/food/drinks/bottle/molotov, - /obj/item/reagent_containers/food/drinks/drinkingglass, - /obj/item/ammo_box/magazine/illestren_a850r + /obj/item/clothing/glasses/cold, + /obj/item/clothing/glasses/heat, + /obj/item/clothing/glasses/welding, + /obj/item/clothing/glasses/thermal, + /obj/item/clothing/glasses/night, + /obj/item/clothing/glasses/hud/health/night, + /obj/item/clothing/glasses/hud/security/night, + /obj/item/clothing/glasses/hud/security/sunglasses/inteq, + /obj/item/ammo_casing, + /obj/item/ammo_box/magazine/illestren_a850r, )) /datum/component/storage/concrete/pockets/holster diff --git a/code/datums/components/storage/concrete/rped.dm b/code/datums/components/storage/concrete/rped.dm index 455eb985f090..58a520d3a7bd 100644 --- a/code/datums/components/storage/concrete/rped.dm +++ b/code/datums/components/storage/concrete/rped.dm @@ -6,6 +6,7 @@ max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 100 max_items = 50 + storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT display_numerical_stacking = TRUE /datum/component/storage/concrete/rped/can_be_inserted(obj/item/I, stop_messages, mob/M) diff --git a/code/datums/components/storage/concrete/stack.dm b/code/datums/components/storage/concrete/stack.dm index 319d1d4b3d41..19ea4fa58584 100644 --- a/code/datums/components/storage/concrete/stack.dm +++ b/code/datums/components/storage/concrete/stack.dm @@ -1,6 +1,7 @@ //Stack-only storage. /datum/component/storage/concrete/stack display_numerical_stacking = TRUE + storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT var/max_combined_stack_amount = 300 max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = WEIGHT_CLASS_NORMAL * 14 diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index bb79bbd282fa..5724d4327bee 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -26,9 +26,16 @@ var/locked = FALSE //when locked nothing can see inside or use it. var/locked_flavor = "locked" //prevents tochat messages related to locked from sending - var/max_w_class = WEIGHT_CLASS_SMALL //max size of objects that will fit. - var/max_combined_w_class = 14 //max combined sizes of objects that will fit. - var/max_items = 7 //max number of objects that will fit. + /// Storage flags, including what kinds of limiters we use for how many items we can hold + var/storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT + /// Max w_class we can hold. Applies to [STORAGE_LIMIT_COMBINED_W_CLASS] and [STORAGE_LIMIT_VOLUME] + var/max_w_class = WEIGHT_CLASS_SMALL + /// Max combined w_class. Applies to [STORAGE_LIMIT_COMBINED_W_CLASS] + var/max_combined_w_class = WEIGHT_CLASS_SMALL * 7 + /// Max items we can hold. Applies to [STORAGE_LIMIT_MAX_ITEMS] + var/max_items = 7 + /// Max volume we can hold. Applies to [STORAGE_LIMIT_VOLUME]. Auto scaled on New() if unset. + var/max_volume var/emp_shielded = FALSE @@ -44,8 +51,8 @@ var/display_numerical_stacking = FALSE //stack things of the same type and show as a single object with a number. - var/atom/movable/screen/storage/boxes //storage display object - var/atom/movable/screen/close/closer //close button object + /// Ui objects by person. mob = list(objects) + var/list/ui_by_mob = list() var/allow_big_nesting = FALSE //allow storage objects of the same or greater size. @@ -58,19 +65,20 @@ var/screen_max_columns = 7 //These two determine maximum screen sizes. var/screen_max_rows = INFINITY var/screen_pixel_x = 16 //These two are pixel values for screen loc of boxes and closer - var/screen_pixel_y = 16 + var/screen_pixel_y = 25 var/screen_start_x = 4 //These two are where the storage starts being rendered, screen_loc wise. var/screen_start_y = 2 //End + var/limited_random_access = FALSE //Quick if statement in accessible_items to determine if we care at all about what people can access at once. + var/limited_random_access_stack_position = 0 //If >0, can only access top items + var/limited_random_access_stack_bottom_up = FALSE + /datum/component/storage/Initialize(datum/component/storage/concrete/master) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE if(master) change_master(master) - boxes = new(null, src) - closer = new(null, src) - orient2hud() RegisterSignal(parent, COMSIG_CONTAINS_STORAGE, PROC_REF(on_check)) RegisterSignal(parent, COMSIG_IS_STORAGE_LOCKED, PROC_REF(check_locked)) @@ -113,11 +121,16 @@ /datum/component/storage/Destroy() close_all() - QDEL_NULL(boxes) - QDEL_NULL(closer) + wipe_ui_objects() LAZYCLEARLIST(is_using) return ..() +/datum/component/storage/proc/wipe_ui_objects() + for(var/i in ui_by_mob) + var/list/objects = ui_by_mob[i] + QDEL_LIST(objects) + ui_by_mob.Cut() + /datum/component/storage/PreTransfer() update_actions() @@ -171,6 +184,19 @@ var/datum/component/storage/concrete/master = master() return master? master.real_location() : null +//What players can access +//this proc can probably eat a refactor at some point. +/datum/component/storage/proc/accessible_items(random_access = TRUE) + var/list/contents = contents() + if(contents) + if(limited_random_access && random_access) + if(limited_random_access_stack_position && (length(contents) > limited_random_access_stack_position)) + if(limited_random_access_stack_bottom_up) + contents.Cut(1, limited_random_access_stack_position + 1) + else + contents.Cut(1, length(contents) - limited_random_access_stack_position + 1) + return contents + /datum/component/storage/proc/canreach_react(datum/source, list/next) SIGNAL_HANDLER @@ -189,7 +215,7 @@ var/atom/A = parent for(var/mob/living/L in can_see_contents()) if(!L.CanReach(A)) - hide_from(L) + ui_hide(L) /datum/component/storage/proc/attack_self(datum/source, mob/M) SIGNAL_HANDLER @@ -290,7 +316,7 @@ var/turf/T = get_turf(A) var/list/things = contents() var/datum/progressbar/progress = new(M, length(things), T) - while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, PROC_REF(mass_remove_from_storage), T, things, progress))) + while (do_after(M, 1 SECONDS, T, NONE, FALSE, CALLBACK(src, PROC_REF(mass_remove_from_storage), T, things, progress))) stoplag(1) progress.end_progress() @@ -315,7 +341,7 @@ if(!_target) _target = get_turf(parent) if(usr) - hide_from(usr) + ui_hide(usr) var/list/contents = contents() var/atom/real_location = real_location() for(var/obj/item/I in contents) @@ -331,109 +357,12 @@ if(locked) close_all() -/datum/component/storage/proc/_process_numerical_display() - . = list() - var/atom/real_location = real_location() - for(var/obj/item/I in real_location.contents) - if(QDELETED(I)) - continue - if(!.["[I.type]-[I.name]"]) - .["[I.type]-[I.name]"] = new /datum/numbered_display(I, 1) - else - var/datum/numbered_display/ND = .["[I.type]-[I.name]"] - ND.number++ - -//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. -/datum/component/storage/proc/orient2hud() - var/atom/real_location = real_location() - var/adjusted_contents = real_location.contents.len - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_numerical_stacking) - numbered_contents = _process_numerical_display() - adjusted_contents = numbered_contents.len - - var/columns = clamp(max_items, 1, screen_max_columns) - var/rows = clamp(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) - standard_orient_objs(rows, columns, numbered_contents) - -//This proc draws out the inventory and places the items on it. It uses the standard position. -/datum/component/storage/proc/standard_orient_objs(rows, cols, list/obj/item/numerical_display_contents) - boxes.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+cols-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" - var/cx = screen_start_x - var/cy = screen_start_y - if(islist(numerical_display_contents)) - for(var/type in numerical_display_contents) - var/datum/numbered_display/ND = numerical_display_contents[type] - ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE - ND.sample_object.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" - ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" - ND.sample_object.layer = ABOVE_HUD_LAYER - ND.sample_object.plane = ABOVE_HUD_PLANE - cx++ - if(cx - screen_start_x >= cols) - cx = screen_start_x - cy++ - if(cy - screen_start_y >= rows) - break - else - var/atom/real_location = real_location() - for(var/obj/O in real_location) - if(QDELETED(O)) - continue - O.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" - O.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" - O.maptext = "" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx - screen_start_x >= cols) - cx = screen_start_x - cy++ - if(cy - screen_start_y >= rows) - break - closer.screen_loc = "[screen_start_x + cols]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" - -/datum/component/storage/proc/show_to(mob/M) - if(!M.client) - return FALSE - var/atom/real_location = real_location() - if(M.active_storage != src && (M.stat == CONSCIOUS)) - for(var/obj/item/I in real_location) - if(I.on_found(M)) - return FALSE - if(M.active_storage) - M.active_storage.hide_from(M) - orient2hud() - M.client.screen |= boxes - M.client.screen |= closer - M.client.screen |= real_location.contents - M.set_active_storage(src) - LAZYOR(is_using, M) - RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(mob_deleted)) - return TRUE - /datum/component/storage/proc/mob_deleted(datum/source) SIGNAL_HANDLER - hide_from(source) - -/datum/component/storage/proc/hide_from(mob/M) - if(M.active_storage == src) - M.set_active_storage(null) - LAZYREMOVE(is_using, M) - - UnregisterSignal(M, COMSIG_PARENT_QDELETING) - if(!M.client) - return TRUE - var/atom/real_location = real_location() - M.client.screen -= boxes - M.client.screen -= closer - M.client.screen -= real_location.contents - return TRUE + ui_hide(source) /datum/component/storage/proc/close(mob/M) - hide_from(M) + ui_hide(M) /datum/component/storage/proc/close_all() SIGNAL_HANDLER @@ -451,25 +380,6 @@ var/datum/component/storage/concrete/master = master() master.emp_act(source, severity) -//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. -//The numbers are calculated from the bottom-left The bottom-left slot being 1,1. -/datum/component/storage/proc/orient_objs(tx, ty, mx, my) - var/atom/real_location = real_location() - var/cx = tx - var/cy = ty - boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" - for(var/obj/O in real_location) - if(QDELETED(O)) - continue - O.screen_loc = "[cx],[cy]" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx > mx) - cx = tx - cy-- - closer.screen_loc = "[mx+1],[my]" - //Resets something that is being removed from storage. /datum/component/storage/proc/_removal_reset(atom/movable/thing) if(!istype(thing)) @@ -480,9 +390,7 @@ return master._removal_reset(thing) /datum/component/storage/proc/_remove_and_refresh(datum/source, atom/movable/thing) - SIGNAL_HANDLER - - _removal_reset(thing) + _removal_reset(thing) // THIS NEEDS TO HAPPEN AFTER SO LAYERING DOESN'T BREAK! refresh_mob_views() //Call this proc to handle the removal of an item from the storage item. The item will be moved to the new_location target, if that is null it's being deleted @@ -499,7 +407,7 @@ var/list/seeing = can_see_contents() for(var/i in seeing) - show_to(i) + ui_show(i) return TRUE /datum/component/storage/proc/can_see_contents() @@ -618,7 +526,7 @@ if(force || M.CanReach(parent, view_only = TRUE)) if(use_sound && !silent) playsound(A, use_sound, 50, TRUE, -5) - show_to(M) + ui_show(M) /datum/component/storage/proc/mousedrop_receive(datum/source, atom/movable/O, mob/M) SIGNAL_HANDLER @@ -647,10 +555,6 @@ host.add_fingerprint(M) to_chat(M, "[host] seems to be [locked_flavor]!") return FALSE - if(real_location.contents.len >= max_items) - if(!stop_messages) - to_chat(M, "[host] is full, make some space!") - return FALSE //Storage item is full if(length(can_hold)) if(!is_type_in_typecache(I, can_hold)) if(!stop_messages) @@ -660,22 +564,34 @@ if(!stop_messages) to_chat(M, "[host] cannot hold [I]!") return FALSE - if(I.w_class > max_w_class && !is_type_in_typecache(I, exception_hold)) - if(!stop_messages) - to_chat(M, "[I] is too big for [host]!") - return FALSE - var/datum/component/storage/biggerfish = real_location.loc.GetComponent(/datum/component/storage) - if(biggerfish && biggerfish.max_w_class < max_w_class)//return false if we are inside of another container, and that container has a smaller max_w_class than us (like if we're a bag in a box) - if(!stop_messages) - to_chat(M, "[I] can't fit in [host] while [real_location.loc] is in the way!") - return FALSE - var/sum_w_class = I.w_class - for(var/obj/item/_I in real_location) - sum_w_class += _I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. - if(sum_w_class > max_combined_w_class) - if(!stop_messages) - to_chat(M, "[I] won't fit in [host], make some space!") - return FALSE + // STORAGE LIMITS + if(storage_flags & STORAGE_LIMIT_MAX_ITEMS) + if(real_location.contents.len >= max_items) + if(!stop_messages) + to_chat(M, "[host] has too much junk in it, make some space!") + return FALSE //Storage item is full + if(storage_flags & STORAGE_LIMIT_MAX_W_CLASS) + if(I.w_class > max_w_class) + if(!stop_messages) + to_chat(M, "[I] is much too long for [host]!") + return FALSE + if(storage_flags & STORAGE_LIMIT_COMBINED_W_CLASS) + var/sum_w_class = I.w_class + for(var/obj/item/_I in real_location) + sum_w_class += _I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. + if(sum_w_class > max_combined_w_class) + if(!stop_messages) + to_chat(M, "[I] won't fit in [host], make some space!") + return FALSE + if(storage_flags & STORAGE_LIMIT_VOLUME) + var/sum_volume = I.get_w_volume() + for(var/obj/item/_I in real_location) + sum_volume += _I.get_w_volume() + if(sum_volume > get_max_volume()) + if(!stop_messages) + to_chat(M, "[I] is too large to fit in [host], make some space!") + return FALSE + ///////////////// if(isitem(host)) var/obj/item/IP = host var/datum/component/storage/STR_I = I.GetComponent(/datum/component/storage) @@ -825,7 +741,7 @@ if(locked) to_chat(user, "[parent] seems to be [locked_flavor]!") else - show_to(user) + ui_show(user) if(use_sound) playsound(A, use_sound, 50, TRUE, -5) @@ -851,7 +767,7 @@ /datum/component/storage/proc/signal_hide_attempt(datum/source, mob/target) SIGNAL_HANDLER - return hide_from(target) + return ui_hide(target) /datum/component/storage/proc/on_alt_click(datum/source, mob/user) SIGNAL_HANDLER @@ -896,3 +812,7 @@ to_chat(user, "[parent] now picks up all items in a tile at once.") if(COLLECT_ONE) to_chat(user, "[parent] now picks up one item at a time.") + +//Gets our max volume +/datum/component/storage/proc/get_max_volume() + return max_volume || AUTO_SCALE_STORAGE_VOLUME(max_w_class, max_combined_w_class) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm new file mode 100644 index 000000000000..e3e4c126d730 --- /dev/null +++ b/code/datums/components/storage/ui.dm @@ -0,0 +1,253 @@ +// Generates a list of numbered_display datums for the numerical display system. +/datum/component/storage/proc/_process_numerical_display() + . = list() + for(var/obj/item/I in accessible_items()) + if(QDELETED(I)) + continue + if(!.[I.type]) + .[I.type] = new /datum/numbered_display(I, 1, src) + else + var/datum/numbered_display/ND = .[I.type] + ND.number++ + +// Orients all objects in legacy mode, and returns the objects to show to the user. +/datum/component/storage/proc/orient2hud_legacy(mob/user, maxcolumns) + . = list() + var/list/accessible_contents = accessible_items() + var/adjusted_contents = length(accessible_contents) + var/atom/movable/screen/storage/close/ui_close + var/atom/movable/screen/storage/boxes/ui_boxes + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_numerical_stacking) + numbered_contents = _process_numerical_display() + adjusted_contents = numbered_contents.len + + var/columns = limited_random_access_stack_position == 0 ? clamp(max_items, 1, maxcolumns ? maxcolumns : screen_max_columns) : clamp(limited_random_access_stack_position, 1, maxcolumns ? maxcolumns : screen_max_columns) + var/rows = clamp(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) + + // First, boxes. + ui_boxes = get_ui_boxes() + ui_boxes.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+columns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" + . += ui_boxes + // Then, closer. + ui_close = get_ui_close() + ui_close.screen_loc = "[screen_start_x + columns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" + . += ui_close + // Then orient the actual items. + var/cx = screen_start_x + var/cy = screen_start_y + if(islist(numbered_contents)) + for(var/type in numbered_contents) + var/datum/numbered_display/ND = numbered_contents[type] + ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE + ND.sample_object.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" + ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" + ND.sample_object.layer = ABOVE_HUD_LAYER + ND.sample_object.plane = ABOVE_HUD_PLANE + . += ND.sample_object + cx++ + if(cx - screen_start_x >= columns) + cx = screen_start_x + cy++ + if(cy - screen_start_y >= rows) + break + else + for(var/obj/O in accessible_items()) + if(QDELETED(O)) + continue + var/atom/movable/screen/storage/item_holder/D = new(null, src, O) + D.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" + D.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" + O.maptext = "" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + . += D + cx++ + if(cx - screen_start_x >= columns) + cx = screen_start_x + cy++ + if(cy - screen_start_y >= rows) + break + +// Orients all objects in .. volumetric mode. Does not support numerical display! +/datum/component/storage/proc/orient2hud_volumetric(mob/user, maxcolumns) + . = list() + var/atom/movable/screen/storage/left/ui_left + var/atom/movable/screen/storage/continuous/ui_continuous + var/atom/movable/screen/storage/close/ui_close + + // Generate ui_item_blocks for missing ones and render+orient. + var/list/atom/contents = accessible_items() + // our volume + var/our_volume = get_max_volume() + var/horizontal_pixels = (maxcolumns * world.icon_size) - (VOLUMETRIC_STORAGE_EDGE_PADDING * 2) + var/max_horizontal_pixels = horizontal_pixels * screen_max_rows + // sigh loopmania time + var/used = 0 + // define outside for performance + var/volume + var/list/volume_by_item = list() + var/list/percentage_by_item = list() + for(var/obj/item/I in contents) + if(QDELETED(I)) + continue + volume = I.get_w_volume() + used += volume + volume_by_item[I] = volume + percentage_by_item[I] = volume / get_max_volume() + var/padding_pixels = ((length(percentage_by_item) - 1) * VOLUMETRIC_STORAGE_ITEM_PADDING) + VOLUMETRIC_STORAGE_EDGE_PADDING * 2 + var/min_pixels = (MINIMUM_PIXELS_PER_ITEM * length(percentage_by_item)) + padding_pixels + // do the check for fallback for when someone has too much gamer gear + if((min_pixels) > (max_horizontal_pixels + 4)) // 4 pixel grace zone + to_chat(user, "[parent] was showed to you in legacy mode due to your items overrunning the three row limit! Consider not carrying too much or bugging a maintainer to raise this limit!") + return orient2hud_legacy(user, maxcolumns) + // after this point we are sure we can somehow fit all items into our max number of rows. + + // determine rows + var/rows = clamp(CEILING(min_pixels / horizontal_pixels, 1), 1, screen_max_rows) + + var/overrun = FALSE + if(used > our_volume) + // congratulations we are now in overrun mode. everything will be crammed to minimum storage pixels. + to_chat(user, "[parent] rendered in overrun mode due to more items inside than the maximum volume supports.") + overrun = TRUE + + // how much we are using + var/using_horizontal_pixels = horizontal_pixels * rows + + // item padding + using_horizontal_pixels -= padding_pixels + + // define outside for marginal performance boost + var/obj/item/I + // start at this pixel from screen_start_x. + var/current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING + var/first = TRUE + var/row = 1 + + for(var/i in percentage_by_item) + I = i + var/percent = percentage_by_item[I] + var/atom/movable/screen/storage/volumetric_box/center/B = new /atom/movable/screen/storage/volumetric_box/center(null, src, I) + // SNOWFLAKE: force it to icon until we unfuck storage/click passing + I.mouse_opacity = MOUSE_OPACITY_ICON + var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(using_horizontal_pixels * percent, MINIMUM_PIXELS_PER_ITEM) + var/addrow = FALSE + if(CEILING(pixels_to_use, 1) >= FLOOR(horizontal_pixels - current_pixel - VOLUMETRIC_STORAGE_EDGE_PADDING, 1)) + pixels_to_use = horizontal_pixels - current_pixel - VOLUMETRIC_STORAGE_EDGE_PADDING + addrow = TRUE + + // now that we have pixels_to_use, place our thing and add it to the returned list. + B.screen_loc = "[screen_start_x]:[round(current_pixel + (pixels_to_use * 0.5) + (first? 0 : VOLUMETRIC_STORAGE_ITEM_PADDING), 1)],[screen_start_y+row-1]:[screen_pixel_y]" + // add the used pixels to pixel after we place the object + current_pixel += pixels_to_use + (first? 0 : VOLUMETRIC_STORAGE_ITEM_PADDING) + first = FALSE //apply padding to everything after this + + // set various things + B.set_pixel_size(pixels_to_use) + B.name = I.name + + // finally add our things. + . += B.on_screen_objects() + + // go up a row if needed + if(addrow) + row++ + first = TRUE //first in the row, don't apply between-item padding. + current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING + + // Then, continuous section. + ui_continuous = get_ui_continuous() + ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" + . += ui_continuous + // Then, left. + ui_left = get_ui_left() + ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x]:[screen_pixel_x - 2],[screen_start_y+rows-1]:[screen_pixel_y]" + . += ui_left + // Then, closer, which is also our right element. + ui_close = get_ui_close() + ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y + row - 1]:[screen_pixel_y]" + . += ui_close + + +// Shows our UI to a mob. +/datum/component/storage/proc/ui_show(mob/M) + if(!M.client) + return FALSE + if(ui_by_mob[M] || LAZYFIND(is_using, M)) + // something went horribly wrong + // hide first + ui_hide(M) + var/list/cview = getviewsize(M.client.view) + // in tiles + var/maxallowedscreensize = cview[1]-8 + // we got screen size, register signal + RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(on_logout), override = TRUE) + if(M.active_storage != src) + if(M.active_storage) + M.active_storage.ui_hide(M) + M.active_storage = src + LAZYOR(is_using, M) + if(volumetric_ui()) + //new volumetric ui bay-style + var/list/objects = orient2hud_volumetric(M, maxallowedscreensize) + M.client.screen |= objects + ui_by_mob[M] = objects + else + //old ui + var/list/objects = orient2hud_legacy(M, maxallowedscreensize) + M.client.screen |= objects + ui_by_mob[M] = objects + return TRUE + +// VV hooked to ensure no lingering screen objects. +/datum/component/storage/vv_edit_var(var_name, var_value) + var/list/old + if(var_name == NAMEOF(src, storage_flags)) + old = is_using.Copy() + for(var/i in is_using) + ui_hide(i) + . = ..() + if(old) + for(var/i in old) + ui_show(i) + +// Proc triggered by signal to ensure logging out clients don't linger. +/datum/component/storage/proc/on_logout(datum/source, client/C) + ui_hide(source) + +// Hides our UI from a mob +/datum/component/storage/proc/ui_hide(mob/M) + if(!M.client) + return TRUE + UnregisterSignal(M, list(COMSIG_PARENT_QDELETING)) + M.client.screen -= ui_by_mob[M] + var/list/objects = ui_by_mob[M] + QDEL_LIST(objects) + if(M.active_storage == src) + M.active_storage = null + LAZYREMOVE(is_using, M) + return TRUE + +// Returns TRUE if we are using volumetric UI instead of box UI +/datum/component/storage/proc/volumetric_ui() + var/atom/real_location = real_location() + return (storage_flags & STORAGE_LIMIT_VOLUME) && (length(real_location.contents) <= MAXIMUM_VOLUMETRIC_ITEMS) && !display_numerical_stacking + +// Gets our ui_boxes, making it if it doesn't exist. +/datum/component/storage/proc/get_ui_boxes() + return new /atom/movable/screen/storage/boxes(null, src) + +// Gets our ui_left, making it if it doesn't exist. +/datum/component/storage/proc/get_ui_left() + return new /atom/movable/screen/storage/left(null, src) + +// Gets our ui_close, making it if it doesn't exist. +/datum/component/storage/proc/get_ui_close() + return new /atom/movable/screen/storage/close(null, src) + +// Gets our ui_continuous, making it if it doesn't exist. +/datum/component/storage/proc/get_ui_continuous() + return new /atom/movable/screen/storage/continuous(null, src) diff --git a/code/datums/diseases/advance/presets.dm b/code/datums/diseases/advance/presets.dm index da8ad0d69a59..1924d92428e4 100644 --- a/code/datums/diseases/advance/presets.dm +++ b/code/datums/diseases/advance/presets.dm @@ -16,14 +16,6 @@ symptoms = list(new/datum/symptom/cough) ..() -/datum/disease/advance/necropolis - copy_type = /datum/disease/advance - -/datum/disease/advance/necropolis/New() - name = "Necropolis Seed" - symptoms = list(new/datum/symptom/necroseed) - ..() - //Randomly generated Disease, for virus crates and events /datum/disease/advance/random name = "Experimental Disease" diff --git a/code/datums/diseases/advance/symptoms/necropolis.dm b/code/datums/diseases/advance/symptoms/necropolis.dm deleted file mode 100644 index 9626b944124d..000000000000 --- a/code/datums/diseases/advance/symptoms/necropolis.dm +++ /dev/null @@ -1,113 +0,0 @@ -/datum/symptom/necroseed - name = "Necropolis Seed" - desc = "An infantile form of the root of Lavaland's tendrils. Forms a symbiotic bond with the host, making them stronger and hardier, at the cost of speed. Should the disease be cured, the host will be severely weakened." - stealth = 0 - resistance = 3 - stage_speed = -10 - transmittable = -3 - level = 9 - base_message_chance = 3 - severity = 0 - symptom_delay_min = 1 - symptom_delay_max = 1 - var/color = "#302f20" - var/tendrils = FALSE - var/chest = FALSE - var/fireproof = FALSE - threshold_descs = list( - "Resistance 15" = "The area near the host roils with paralyzing tendrils.", - "Resistance 20" = "Host becomes immune to heat, ash, and lava. Removes movespeed debuff. Hail to the necropolis!", - ) - var/list/cached_tentacle_turfs - var/turf/last_location - var/tentacle_recheck_cooldown = 100 - -/datum/symptom/necroseed/Start(datum/disease/advance/A) - . = ..() - if(!.) - return - if(A.totalResistance() >= 15) - tendrils = TRUE - if(A.totalResistance() >= 20) - fireproof = TRUE - -/datum/symptom/necroseed/Activate(datum/disease/advance/A) - . = ..() - if(!.) - return - var/mob/living/carbon/M = A.affected_mob - switch(A.stage) - if(1, 2) - if(tendrils) - tendril(A) - if(prob(base_message_chance)) - to_chat(M, "Your skin feels scaly.") - if(3, 4) - if(tendrils) - tendril(A) - if(prob(base_message_chance)) - to_chat(M, "[pick("Your skin is hard.", "You feel stronger.", "You feel powerful.", "You feel your muscles growing stiff.", "You feel warm.")]") - if(5) - if(tendrils) - tendril(A) - M.dna.species.punchdamagelow = 15 - M.dna.species.punchdamagehigh = 20 - M.dna.species.punchstunthreshold = 18 - M.dna.species.brutemod = 0.6 - M.dna.species.burnmod = 0.6 - M.dna.species.heatmod = 0.6 - M.add_atom_colour(color, FIXED_COLOUR_PRIORITY) - M.add_movespeed_modifier(/datum/movespeed_modifier/necropolis, update=TRUE) - ADD_TRAIT(M, TRAIT_PIERCEIMMUNE, DISEASE_TRAIT) - if(fireproof) - to_chat(M, "[pick("You taste primordial ash.", "The necropolis whispers sweet nothings to you.", "You feel like a god.")]") - ADD_TRAIT(M, TRAIT_RESISTHEAT, DISEASE_TRAIT) - ADD_TRAIT(M, TRAIT_RESISTHIGHPRESSURE, DISEASE_TRAIT) - M.weather_immunities |= "ash" - M.weather_immunities |= "lava" - M.remove_movespeed_modifier(/datum/movespeed_modifier/necropolis) - else - if(prob(base_message_chance)) - to_chat(M, "[pick("Your skin has become a hardened carapace.", "Your strength is superhuman.", "You feel invincible.")]") - if(tendrils) - tendril(A) - return - -/datum/symptom/necroseed/proc/tendril(datum/disease/advance/A) - . = A.affected_mob - var/mob/living/loc = A.affected_mob.loc - if(isturf(loc)) - if(!LAZYLEN(cached_tentacle_turfs) || loc != last_location || tentacle_recheck_cooldown <= world.time) - LAZYCLEARLIST(cached_tentacle_turfs) - last_location = loc - tentacle_recheck_cooldown = world.time + initial(tentacle_recheck_cooldown) - for(var/turf/open/T in orange(4, loc)) - LAZYADD(cached_tentacle_turfs, T) - for(var/t in cached_tentacle_turfs) - if(isopenturf(t)) - if(prob(10)) - new /obj/effect/temp_visual/goliath_tentacle(t, .) - else - cached_tentacle_turfs -= t - -/datum/symptom/necroseed/End(datum/disease/advance/A) - . = ..() - if(!.) - return - var/mob/living/carbon/M = A.affected_mob - to_chat(M, "You feel weakened as the necropolis' blessing leaves your body.") - M.remove_movespeed_modifier(/datum/movespeed_modifier/necropolis) - M.dna.species.punchdamagelow = initial(M.dna.species.punchdamagelow) - M.dna.species.punchdamagehigh = initial(M.dna.species.punchdamagehigh) - M.dna.species.punchstunthreshold = initial(M.dna.species.punchstunthreshold) - M.remove_atom_colour(color, FIXED_COLOUR_PRIORITY) - M.dna.species.brutemod /= 0.6 - M.dna.species.burnmod /= 0.6 - M.dna.species.heatmod /= 0.6 - REMOVE_TRAIT(M, TRAIT_PIERCEIMMUNE, DISEASE_TRAIT) - if(fireproof) - REMOVE_TRAIT(M, TRAIT_RESISTHIGHPRESSURE, DISEASE_TRAIT) - REMOVE_TRAIT(M, TRAIT_RESISTHEAT, DISEASE_TRAIT) - M.weather_immunities -= "ash" - M.weather_immunities -= "lava" - diff --git a/code/datums/elements/decals/blood.dm b/code/datums/elements/decals/blood.dm index 85f75bef2416..0a3ca8ce59a3 100644 --- a/code/datums/elements/decals/blood.dm +++ b/code/datums/elements/decals/blood.dm @@ -6,9 +6,11 @@ . = ..() RegisterSignal(target, COMSIG_ATOM_GET_EXAMINE_NAME, PROC_REF(get_examine_name), TRUE) + RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), PROC_REF(redraw), TRUE) /datum/element/decal/blood/Detach(atom/source, force) UnregisterSignal(source, COMSIG_ATOM_GET_EXAMINE_NAME) + UnregisterSignal(source, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) return ..() /datum/element/decal/blood/generate_appearance(_icon, _icon_state, _dir, _layer, _color, _alpha, source) @@ -30,3 +32,11 @@ override[EXAMINE_POSITION_ARTICLE] = A.gender == PLURAL? "some" : "a" override[EXAMINE_POSITION_BEFORE] = " blood-stained " return COMPONENT_EXNAME_CHANGED + +///this is probably quite bad, let me know if you have a better solution for this -S +/datum/element/decal/blood/proc/redraw(datum/source, mob/user) + SIGNAL_HANDLER + + var/atom/bloodsource = source + Detach(source) + bloodsource.AddElement(/datum/element/decal/blood, bloodsource.icon, bloodsource.icon_state, _color = get_blood_dna_color(bloodsource.return_blood_DNA())) diff --git a/code/datums/elements/world_icon.dm b/code/datums/elements/world_icon.dm new file mode 100644 index 000000000000..bcb0129c6c68 --- /dev/null +++ b/code/datums/elements/world_icon.dm @@ -0,0 +1,121 @@ +///////////////////////////////////////////////////////////// +////////// WORLD ICON ELEMENT DIRECTORY ////////// +///////////////////////////////////////////////////////////// +//PORTED FROM MOJAVE SUN// + +// Slap onto something to give it a world icon that differs from the inventory one (allows for realistically sized objects and all that) // +// To fix 25/06/2021 : Blood Decals, Mutable Overlays and other baked in bitch ass overlays that need to be remade when the icon changes // +// Fixed 07/05/2022: Now you can deal with the above by handling everything with attached_proc instead +// Fixed 12/04/2023: Icon states, Needs major tuning up by someone who can properly make it work + +/datum/element/world_icon + id_arg_index = 2 + element_flags = ELEMENT_BESPOKE | ELEMENT_DETACH + //If we want COMPLEX world icon behavior, this proc will handle icon updating when the item is NOT in the inventory. + //I just assumed that the default update_icon is for inventory sprites because ss13 basically focuses on how the sprites + //look on your hand, not how they realistically look in the world. + var/attached_proc + /// Only used if attached_proc doesn't exist, simply changes the icon of target to this when it's in the inventory + var/inventory_icon + /// Only used if attached_proc doesn't exist, simply changes the icon of target to this when it's NOT in the inventory + var/world_icon + /// Only used when inventory state icon is different from original + var/inventory_icon_state + /// Only used when world state icon is different from original, pretty much just the original "icon_state" but if you for some reason need to flip the standard icon states for this element around you can use this + var/world_icon_state + +/datum/element/world_icon/Attach(obj/item/target, attached_proc, world_icon, inventory_icon, world_icon_state, inventory_icon_state) + . = ..() + if(!istype(target)) + return ELEMENT_INCOMPATIBLE + + src.attached_proc = attached_proc + src.world_icon = world_icon + src.world_icon_state = world_icon_state + src.inventory_icon = inventory_icon + src.inventory_icon_state = inventory_icon_state + RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON, PROC_REF(update_icon)) + RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(update_icon_state)) + RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_STORAGE_ENTERED, COMSIG_ITEM_DROPPED, COMSIG_STORAGE_EXITED), PROC_REF(inventory_updated)) + target.update_appearance(UPDATE_ICON) + target.update_appearance(UPDATE_ICON_STATE) + +/datum/element/world_icon/Detach(obj/item/source) + . = ..() + UnregisterSignal(source, COMSIG_ATOM_UPDATE_ICON) + UnregisterSignal(source, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(update_icon_state)) + UnregisterSignal(source, list(COMSIG_ITEM_EQUIPPED, COMSIG_STORAGE_ENTERED, COMSIG_ITEM_DROPPED, COMSIG_STORAGE_EXITED)) + source.update_appearance(UPDATE_ICON) + source.update_appearance(UPDATE_ICON_STATE) + +/datum/element/world_icon/proc/update_icon(obj/item/source, updates) + SIGNAL_HANDLER + + if((source.item_flags & IN_INVENTORY) || (source.loc && SEND_SIGNAL(source.loc, COMSIG_CONTAINS_STORAGE))) + if(attached_proc) + return + return default_inventory_icon(source) + + if(attached_proc) + return call(source, attached_proc)(updates) + else + return default_world_icon(source) + +/datum/element/world_icon/proc/update_icon_state(obj/item/source, updates) + SIGNAL_HANDLER + + if((source.item_flags & IN_INVENTORY) || (source.loc && SEND_SIGNAL(source.loc, COMSIG_CONTAINS_STORAGE))) + if(attached_proc) + return + return default_inventory_icon_state(source) + + if(attached_proc) + return call(source, attached_proc)(updates) + else + return default_world_icon_state(source) + +/datum/element/world_icon/proc/inventory_updated(obj/item/source) + SIGNAL_HANDLER + + source.update_appearance(UPDATE_ICON) + source.update_appearance(UPDATE_ICON_STATE) + +/datum/element/world_icon/proc/default_inventory_icon(obj/item/source) + SIGNAL_HANDLER + + source.icon = inventory_icon + +/datum/element/world_icon/proc/default_world_icon(obj/item/source) + SIGNAL_HANDLER + + source.icon = world_icon + +/datum/element/world_icon/proc/default_inventory_icon_state(obj/item/source) + SIGNAL_HANDLER + + if(!inventory_icon_state) + source.icon_state = source.icon_state + return + + INVOKE_ASYNC(src, PROC_REF(check_inventory_state), source) + +/datum/element/world_icon/proc/default_world_icon_state(obj/item/source) + SIGNAL_HANDLER + + if(!world_icon_state) + source.icon_state = source.icon_state + return + + INVOKE_ASYNC(src, PROC_REF(check_world_icon_state), source) + +/datum/element/world_icon/proc/check_inventory_state(obj/item/source) + SIGNAL_HANDLER + + inventory_icon_state = source.inventory_state + source.icon_state = inventory_icon_state + +/datum/element/world_icon/proc/check_world_icon_state(obj/item/source) + SIGNAL_HANDLER + + world_icon_state = source.world_state + source.icon_state = world_icon_state diff --git a/code/datums/mapgen/planetary/AsteroidGenerator.dm b/code/datums/mapgen/planetary/AsteroidGenerator.dm index c2f7a5340097..737194b5ee28 100644 --- a/code/datums/mapgen/planetary/AsteroidGenerator.dm +++ b/code/datums/mapgen/planetary/AsteroidGenerator.dm @@ -114,7 +114,10 @@ /obj/structure/geyser/random = 1, /obj/structure/spawner/mining/goliath = 1, /obj/structure/spawner/mining = 1, - /obj/structure/spawner/mining/hivelord = 1 + /obj/structure/spawner/mining/hivelord = 1, + /obj/structure/vein/asteroid = 5, + /obj/structure/vein/classtwo/asteroid = 10, + /obj/structure/vein/classthree/asteroid = 5 ) mob_spawn_list = list( @@ -157,8 +160,11 @@ ) feature_spawn_list = list( - /obj/structure/geyser/random = 1, - /obj/structure/spawner/mining/carp = 1 + /obj/structure/geyser/random = 5, + /obj/structure/spawner/mining/carp = 5, + /obj/structure/vein/asteroid = 10, + /obj/structure/vein/classtwo/asteroid = 15, + /obj/structure/vein/classthree/asteroid = 12 ) mob_spawn_list = list( diff --git a/code/datums/mapgen/planetary/SandGenerator.dm b/code/datums/mapgen/planetary/SandGenerator.dm index 442daa0c7705..91fad1430a47 100644 --- a/code/datums/mapgen/planetary/SandGenerator.dm +++ b/code/datums/mapgen/planetary/SandGenerator.dm @@ -103,7 +103,7 @@ /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50, /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40, /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30, - /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random = 25, + /mob/living/simple_animal/hostile/human/hermit/survivor/random = 25, ) /datum/biome/sand/wasteland @@ -135,7 +135,7 @@ ) mob_spawn_chance = 1 mob_spawn_list = list( - /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random = 1, + /mob/living/simple_animal/hostile/human/hermit/survivor/random = 1, ) /datum/biome/sand/grass/dead @@ -169,7 +169,7 @@ /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 40, /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 30, /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 20, - /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random = 40, + /mob/living/simple_animal/hostile/human/hermit/survivor/random = 40, ) /datum/biome/sand/acid //plains diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index 98db1541c953..ed8dd509ec3b 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -127,30 +127,6 @@ Unless you know what you're doing, only use the first three numbers. They're in ore_type = /obj/item/stack/ore/bluespace_crystal value_per_unit = 0.15 -///Honks and slips -/datum/material/bananium - name = "bananium" - id = "bananium" - desc = "Material with hilarious properties" - color = "#ffff00" //obnoxiously bright yellow - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) - sheet_type = /obj/item/stack/sheet/mineral/bananium - ore_type = /obj/item/stack/ore/bananium - value_per_unit = 0.5 - beauty_modifier = 0.5 - armor_modifiers = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) //Clowns cant be blown away. - -/datum/material/bananium/on_applied(atom/source, amount, material_flags) - . = ..() - source.LoadComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50, falloff_exponent = 20) - source.AddComponent(/datum/component/slippery, min(amount / 10, 80)) - - -/datum/material/bananium/on_removed(atom/source, amount, material_flags) - . = ..() - qdel(source.GetComponent(/datum/component/slippery)) - qdel(source.GetComponent(/datum/component/squeak)) - ///Mediocre force increase /datum/material/titanium @@ -166,18 +142,6 @@ Unless you know what you're doing, only use the first three numbers. They're in beauty_modifier = 0.05 armor_modifiers = list("melee" = 1.35, "bullet" = 1.3, "laser" = 1.3, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1) -/datum/material/runite - name = "runite" - id = "runite" - desc = "Runite" - color = "#3F9995" - strength_modifier = 1.3 - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) - sheet_type = /obj/item/stack/sheet/mineral/runite - value_per_unit = 0.3 - beauty_modifier = 0.5 - armor_modifiers = list("melee" = 1.35, "bullet" = 2, "laser" = 0.5, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 1.4, "acid" = 1) //rune is weak against magic lasers but strong against bullets. This is the combat triangle. - ///Force decrease /datum/material/plastic name = "plastic" @@ -224,42 +188,20 @@ Unless you know what you're doing, only use the first three numbers. They're in var/obj/wooden = source wooden.resistance_flags &= ~FLAMMABLE -///Stronk force increase -/datum/material/adamantine - name = "adamantine" - id = "adamantine" - desc = "A powerful material made out of magic, I mean science!" - color = "#6d7e8e" +//Remember when the theme used to be "Eerie" before 1.3? Good times. +/datum/material/hellstone + name = "hellstone" + id = "hellstone" + desc = "A colloquialism given to millenia-old slag, heat-treated through the eons in deep magma." + color = "#ffaf5e" strength_modifier = 1.5 categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) - sheet_type = /obj/item/stack/sheet/mineral/adamantine + sheet_type = /obj/item/stack/sheet/mineral/hidden/hellstone + ore_type = /obj/item/stack/ore/hellstone value_per_unit = 0.25 beauty_modifier = 0.4 armor_modifiers = list("melee" = 1.5, "bullet" = 1.5, "laser" = 1.3, "energy" = 1.3, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 2.5, "acid" = 1) -///RPG Magic. -/datum/material/mythril - name = "mythril" - id = "mythril" - desc = "How this even exists is byond me" - color = "#f2d5d7" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) - sheet_type = /obj/item/stack/sheet/mineral/mythril - value_per_unit = 0.75 - strength_modifier = 1.2 - armor_modifiers = list("melee" = 1.5, "bullet" = 1.5, "laser" = 1.5, "energy" = 1.5, "bomb" = 1.5, "bio" = 1.5, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) - beauty_modifier = 0.5 - -/datum/material/mythril/on_applied_obj(atom/source, amount, material_flags) - . = ..() - if(istype(source, /obj/item)) - source.AddComponent(/datum/component/fantasy) - -/datum/material/mythril/on_removed_obj(atom/source, material_flags) - . = ..() - if(istype(source, /obj/item)) - qdel(source.GetComponent(/datum/component/fantasy)) - //formed when freon react with o2, emits a lot of plasma when heated /datum/material/hot_ice name = "hot ice" @@ -323,18 +265,6 @@ Unless you know what you're doing, only use the first three numbers. They're in turf_sound_override = FOOTSTEP_SAND texture_layer_icon_state = "sand" -/datum/material/runedmetal - name = "runed metal" - id = "runed metal" - desc = "Mir'ntrath barhah Nar'sie." - color = "#3C3434" - categories = list(MAT_CATEGORY_RIGID = TRUE) - sheet_type = /obj/item/stack/sheet/runed_metal - value_per_unit = 0.75 - armor_modifiers = list("melee" = 1.2, "bullet" = 1.2, "laser" = 1, "energy" = 1, "bomb" = 1.2, "bio" = 1.2, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) - beauty_modifier = -0.15 - texture_layer_icon_state = "runed" - /datum/material/bronze name = "bronze" id = "bronze" diff --git a/code/datums/mood_events/drug_events.dm b/code/datums/mood_events/drug_events.dm index 6af401e8b009..028973c5c839 100644 --- a/code/datums/mood_events/drug_events.dm +++ b/code/datums/mood_events/drug_events.dm @@ -4,12 +4,12 @@ /datum/mood_event/smoked description = "I have had a smoke recently.\n" - mood_change = 2 + mood_change = 1 timeout = 6 MINUTES /datum/mood_event/wrong_brand - description = "I hate that brand of cigarettes.\n" - mood_change = -2 + description = "That brand of cigarette just doesn't hit right.\n" + mood_change = -1 timeout = 6 MINUTES /datum/mood_event/overdose diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 84fca0443ca0..f5e51d1d59f4 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -292,3 +292,13 @@ description = "I was forced to eat cement...\n" mood_change = -6 timeout = 4 MINUTES + +/datum/mood_event/joywire_emp + description = span_boldwarning("IT'S GONE!! IT'S GONE!!\n") + mood_change = -30 + timeout = 5 MINUTES + +/datum/mood_event/mindscrew + description = span_boldwarning("It isn't ending... it isn't ending, come on...\n") + mood_change = -18 + timeout = 3 MINUTES diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index dbaac99c4296..f9e339c3c081 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -105,14 +105,6 @@ description = "My family heirloom is safe with me.\n" mood_change = 1 -/datum/mood_event/fan_clown_pin - description = "I love showing off my clown pin!\n" - mood_change = 1 - -/datum/mood_event/fan_mime_pin - description = "I love showing off my mime pin!\n" - mood_change = 1 - /datum/mood_event/rilena_fan description = "I love my RILENA merch!\n" mood_change = 1 @@ -239,3 +231,13 @@ description = "Fishing is relaxing" mood_change = 5 timeout = 3 MINUTES + +/datum/mood_event/joywire + description = span_boldnicegreen("I feel so joyous! Oh, so joyous!\n") + mood_change = 8 + timeout = 10 SECONDS + +/datum/mood_event/root + description = span_nicegreen("I rooted recently, it feels good to charge naturally.\n") + mood_change = 5 + timeout = 5 MINUTES diff --git a/code/datums/numbered_display.dm b/code/datums/numbered_display.dm index 9aa880aa75d9..b714be23fbbe 100644 --- a/code/datums/numbered_display.dm +++ b/code/datums/numbered_display.dm @@ -3,8 +3,8 @@ var/obj/item/sample_object var/number -/datum/numbered_display/New(obj/item/sample, _number = 1) +/datum/numbered_display/New(obj/item/sample, _number = 1, datum/component/storage/parent) if(!istype(sample)) qdel(src) - sample_object = sample + sample_object = new /atom/movable/screen/storage/item_holder(null, parent, sample) number = _number diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 964c269b5f43..34771af91ed2 100644 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -104,6 +104,9 @@ /// Set to FALSE if your outfit requires runtime parameters var/can_be_admin_equipped = TRUE + // Used to determine if it should be ignored in unit tests due to being to dynamic to always spawn backpack contents right + var/random = FALSE + /** * extra types for chameleon outfit changes, mostly guns * diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 5416ead36d8c..bb4bcf74b31c 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -4,15 +4,11 @@ prefix = "_maps/RandomRuins/LavaRuins/" ruin_type = RUINTYPE_LAVA -/datum/map_template/ruin/lavaland/biodome - cost = 5 - allow_duplicates = FALSE - /datum/map_template/ruin/lavaland/biodome/winter - name = "Biodome Winter" + name = "Solarian Winter Biodome" id = "biodome-winter" - description = "For those getaways where you want to get back to nature, but you don't want to leave the fortified military compound where you spend your days. \ - Includes a unique(*) laser pistol display case, and the recently introduced I.C.E(tm)." + description = "A Solarian frontier research facility created by the Pionierskompanien \ + This one seems to simulate the wintery climate of the northern provinces, including a sauna!" suffix = "lavaland_surface_biodome_winter.dmm" /datum/map_template/ruin/lavaland/sin diff --git a/code/datums/ruins/rockplanet.dm b/code/datums/ruins/rockplanet.dm index 0d47dd51d7da..966694c400f7 100644 --- a/code/datums/ruins/rockplanet.dm +++ b/code/datums/ruins/rockplanet.dm @@ -73,8 +73,16 @@ id = "rockplanet_budgetcuts" suffix = "rockplanet_budgetcuts.dmm" + +/datum/map_template/ruin/rockplanet/shippingdock + name = "Abandoned Shipping Dock" + description = "An abandoned shipping dock used by small cargo freighters and smugglers alike. Some malicious group seems to have trapped the place to eliminate scavengers." + id = "rockplanet_shippingdock" + suffix = "rockplanet_shippingdock.dmm" + /datum/map_template/ruin/rockplanet/nomadcrash name = "Nomad Crash" description = "A Crashed Arrow & Axe Interceptor. A long forgotten Crew. They tried their best to survive..." id = "rockplanet_nomadcrash" suffix = "rockplanet_nomadcrash.dmm" + diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 7872ba58a3a4..fefb250a1208 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -39,13 +39,6 @@ description = "In the darkest times, we will find our way home." */ -/datum/map_template/ruin/space/djstation - id = "djstation" - suffix = "djstation.dmm" - name = "DJ Station" - description = "Until very recently this pirate radio station was used to harangue local space stations over a variety of perceived \"ethics violations\". \ - It seems like someone finally got sick of it, but the equipment still works." - /datum/map_template/ruin/space/crashedship id = "crashedship" suffix = "crashedship.dmm" diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 84e21fd0633b..d7b60476d977 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -21,7 +21,8 @@ var/prefix = "ISV" /// The full name of the ship's faction. var/faction_name = "Independent" - var/unique_ship_access = FALSE + /// Whether or not players from other ships can open airlocks. + var/unique_ship_access = TRUE /// Set by config JSON. If true, the template's ships' "default" spawn location (when bought by a player or loaded at roundstart) /// will be in the middle of space, instead of at an outpost. var/space_spawn = FALSE @@ -400,3 +401,8 @@ file_name = "pgf_nail" name = "Nail-class Boarding Vessel" prefix = "PGF" + +/datum/map_template/shuttle/subshuttles/brawler + file_name = "frontiersmen_brawler" + name = "Brawler-class Dropship" + prefix = "SV" diff --git a/code/datums/status_effects/gas.dm b/code/datums/status_effects/gas.dm index 11037374b9b3..cc6a91b2f267 100644 --- a/code/datums/status_effects/gas.dm +++ b/code/datums/status_effects/gas.dm @@ -38,7 +38,7 @@ /datum/status_effect/freon/proc/do_resist() to_chat(owner, "You start breaking out of the ice cube...") - if(do_mob(owner, owner, 40)) + if(do_after(owner, 40)) if(!QDELETED(src)) to_chat(owner, "You break out of the ice cube!") owner.remove_status_effect(/datum/status_effect/freon) diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 76a33319631f..c7765ff772ac 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -275,3 +275,29 @@ /atom/movable/screen/alert/status_effect/surrender/Click(location, control, params) . = ..() owner.emote("surrender") + +/datum/status_effect/rooted + id = "rooted" + alert_type = /atom/movable/screen/alert/status_effect/rooted + +/datum/status_effect/rooted/on_apply() + . = ..() + ADD_TRAIT(owner,TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id)) + ADD_TRAIT(owner,TRAIT_PUSHIMMUNE, TRAIT_STATUS_EFFECT(id)) + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "root", /datum/mood_event/root) + +/datum/status_effect/rooted/on_remove() + . = ..() + REMOVE_TRAIT(owner,TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id)) + REMOVE_TRAIT(owner,TRAIT_PUSHIMMUNE, TRAIT_STATUS_EFFECT(id)) + +/atom/movable/screen/alert/status_effect/rooted + name = "Rooted" + desc = "You're currently rooted into the ground and can't move. Click here to start digging yourself out." + icon_state = "dig_out" + +/atom/movable/screen/alert/status_effect/rooted/Click(location, control, params) + . = ..() + to_chat(owner, span_notice("You begin digging yourself free.")) + SEND_SIGNAL(owner,COMSIG_DIGOUT) + diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 52ee20e23c27..574c35f60beb 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -62,26 +62,6 @@ lose_text = "You feel isolated from others." medical_record_text = "Patient is highly perceptive of and sensitive to social cues, or may possibly have ESP. Further testing needed." -/datum/quirk/fan_clown - name = "Clown Fan" - desc = "You enjoy clown antics and get a mood boost from wearing your clown pin." - value = 1 - mob_traits = list(TRAIT_FAN_CLOWN) - gain_text = "You are a big fan of clowns." - lose_text = "The clown doesn't seem so great." - medical_record_text = "Patient reports being a big fan of clowns." - -/datum/quirk/fan_clown/on_spawn() - var/mob/living/carbon/human/H = quirk_holder - var/obj/item/clothing/accessory/fan_clown_pin/B = new(get_turf(H)) - var/list/slots = list ( - "backpack" = ITEM_SLOT_BACKPACK, - "hands" = ITEM_SLOT_HANDS, - ) - H.equip_in_one_of_slots(B, slots , qdel_on_fail = TRUE) - var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] - fan.add_hud_to(H) - /datum/quirk/fan_rilena name = "RILENA Super Fan" desc = "You are a major fan of the popular webseries RILENA: LMR. You get a mood boost from plushies of your favorite characters, and wearing your Xader pin." @@ -102,26 +82,6 @@ var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] fan.add_hud_to(H) -/datum/quirk/fan_mime - name = "Mime Fan" - desc = "You enjoy mime antics and get a mood boost from wearing your mime pin." - value = 1 - mob_traits = list(TRAIT_FAN_MIME) - gain_text = "You are a big fan of the Mime." - lose_text = "The mime doesn't seem so great." - medical_record_text = "Patient reports being a big fan of mimes." - -/datum/quirk/fan_mime/on_spawn() - var/mob/living/carbon/human/H = quirk_holder - var/obj/item/clothing/accessory/fan_mime_pin/B = new(get_turf(H)) - var/list/slots = list ( - "backpack" = ITEM_SLOT_BACKPACK, - "hands" = ITEM_SLOT_HANDS, - ) - H.equip_in_one_of_slots(B, slots , qdel_on_fail = TRUE) - var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] - fan.add_hud_to(H) - /datum/quirk/freerunning name = "Freerunning" desc = "You're great at quick moves! You can climb tables more quickly." diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 4b0afce14b47..d1a8fd6acaa5 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -430,11 +430,6 @@ /datum/quirk/insanity/proc/madness() quirk_holder.hallucination += rand(10, 25) -/datum/quirk/insanity/post_add() //I don't /think/ we'll need this but for newbies who think "roleplay as insane" = "license to kill" it's probably a good thing to have - if(!quirk_holder.mind || quirk_holder.mind.special_role) - return - to_chat(quirk_holder, "Please note that your dissociation syndrome does NOT give you the right to attack people or otherwise cause any interference to \ - the round. You are not an antagonist, and the rules will treat you the same as other crewmembers.") /datum/quirk/social_anxiety name = "Social Anxiety" @@ -589,24 +584,57 @@ reagent_type = /datum/reagent/drug/nicotine accessory_type = /obj/item/lighter/greyscale +//I fucking hate prefscode + /datum/quirk/junkie/smoker/on_spawn() - drug_container_type = pick(/obj/item/storage/fancy/cigarettes, - /obj/item/storage/fancy/cigarettes/cigpack_midori, - /obj/item/storage/fancy/cigarettes/cigpack_uplift, - /obj/item/storage/fancy/cigarettes/cigpack_robust, - /obj/item/storage/fancy/cigarettes/cigpack_robustgold, - /obj/item/storage/fancy/cigarettes/cigpack_carp) + var/mob/living/carbon/human/H = quirk_holder + switch (H.client?.prefs.preferred_smoke_brand) + if (PREF_CIG_SPACE) + drug_container_type = /obj/item/storage/fancy/cigarettes + if (PREF_CIG_DROMEDARY) + drug_container_type = /obj/item/storage/fancy/cigarettes/dromedaryco + if (PREF_CIG_UPLIFT) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_uplift + if (PREF_CIG_ROBUST) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_robust + if (PREF_CIG_ROBUSTGOLD) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_robustgold + if (PREF_CIG_CARP) + drug_container_type= /obj/item/storage/fancy/cigarettes/cigpack_carp + if (PREF_CIG_MIDORI) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigpack_midori + if (PREF_CIGAR) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigars + accessory_type = /obj/item/storage/box/matches + if (PREF_CIGAR_SOLAR) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigars/havana + accessory_type = /obj/item/storage/box/matches + if (PREF_CIGAR_COHIBA) + drug_container_type = /obj/item/storage/fancy/cigarettes/cigars/cohiba + accessory_type = /obj/item/storage/box/matches + if (PREF_VAPE) + drug_container_type = /obj/item/clothing/mask/vape + accessory_type = null + if (PREF_PIPE) + drug_container_type = /obj/item/clothing/mask/cigarette/pipe + accessory_type = /obj/item/storage/box/matches + else + CRASH("Someone had an improper cigarette pref on loading") . = ..() /datum/quirk/junkie/smoker/announce_drugs() - to_chat(quirk_holder, "There is a [initial(drug_container_type.name)] [where_drug], and a lighter [where_accessory]. Make sure you get your favorite brand when you run out.") - + if(accessory_type == null) + to_chat(quirk_holder, "There is a [initial(drug_container_type.name)] [where_drug], Make sure you get a refill soon.") + return + to_chat(quirk_holder, "There is a [initial(drug_container_type.name)] [where_drug], and a [initial(accessory_type.name)] [where_accessory]. Make sure you get your favorite brand when you run out.") /datum/quirk/junkie/smoker/on_process() . = ..() var/mob/living/carbon/human/H = quirk_holder var/obj/item/I = H.get_item_by_slot(ITEM_SLOT_MASK) if (istype(I, /obj/item/clothing/mask/cigarette)) + if(I == drug_container_type) + return var/obj/item/storage/fancy/cigarettes/C = drug_container_type if(istype(I, initial(C.spawn_type))) SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "wrong_cigs") diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index 48aac7584c8f..c4d3f75f8fb7 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -5,10 +5,26 @@ /area/ruin/powered/beach icon_state = "dk_yellow" -// Snow Biodome +// Winter Biodome -/area/ruin/powered/snow_biodome - icon_state = "dk_yellow" +/area/ruin/unpowered/winter_biodome + icon_state = "bluenew" + name = "Biodome Main Area" + +/area/ruin/unpowered/winter_biodome/entrance + name = "Biodome Entrance" + +/area/ruin/unpowered/winter_biodome/living_quarters + name = "Biodome Living Quarters" + +/area/ruin/unpowered/winter_biodome/cabin + name = "Biodome Cabin" + +/area/ruin/unpowered/winter_biodome/engineering + name = "Biodome Engineering" + +/area/ruin/unpowered/winter_biodome/sauna + name = "Biodome Sauna" //Gluttony diff --git a/code/game/area/areas/ruins/rockplanet.dm b/code/game/area/areas/ruins/rockplanet.dm index a89969566196..ddbe80529771 100644 --- a/code/game/area/areas/ruins/rockplanet.dm +++ b/code/game/area/areas/ruins/rockplanet.dm @@ -1,4 +1,6 @@ /**********************Rock Planet Areas**************************/ +/area/ruin/rockplanet + icon_state = "red" //syndicate /area/ruin/rockplanet/syndicate @@ -9,7 +11,26 @@ /area/ruin/rockplanet/nanotrasen name = "Abandoned Research Facility" always_unpowered = FALSE - icon_state = "green" + +//shippingdock +/area/ruin/rockplanet/shippingdockoffice + name = "Employee Office" + icon_state = "crew_quarters" + +/area/ruin/rockplanet/shippingdockcustoms + name = "Cargo Checkpoint" + icon_state = "security" + +/area/ruin/rockplanet/shippingdockwarehouse + name = "Warehouse" + icon_state = "storage" + +/area/ruin/rockplanet/shippingdocksecure + name = "Warehouse Secure Storage" + icon_state = "armory" + +/area/ruin/rockplanet/shippingdock + name = "Abandoned Shipping Dock" //nomad /area/ruin/rockplanet/nomad diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index e6034e412198..de546d164c96 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -167,18 +167,6 @@ name = "Derelict Atmospherics" icon_state = "red" -//DJSTATION - -/area/ruin/space/djstation - name = "Ruskie DJ Station" - icon_state = "DJ" - has_gravity = STANDARD_GRAVITY - -/area/ruin/space/djstation/solars - name = "DJ Station Solars" - icon_state = "DJ" - has_gravity = STANDARD_GRAVITY - //OLD AI SAT /area/tcommsat/oldaisat diff --git a/code/game/atoms.dm b/code/game/atoms.dm index b539e421508d..7ffa3255ada1 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -84,9 +84,6 @@ var/list/alternate_appearances - ///Mobs that are currently do_after'ing this atom, to be cleared from on Destroy() - var/list/targeted_by - /// Last appearance of the atom for demo saving purposes var/image/demo_last_appearance @@ -310,11 +307,6 @@ LAZYCLEARLIST(overlays) LAZYCLEARLIST(managed_overlays) - for(var/i in targeted_by) - var/mob/M = i - LAZYREMOVE(M.do_afters, src) - - targeted_by = null QDEL_NULL(light) if(smoothing_flags & SMOOTH_QUEUED) @@ -976,15 +968,12 @@ var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) var/datum/component/storage/STR = GetComponent(/datum/component/storage) - while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, TYPE_PROC_REF(/datum/component/storage, handle_mass_item_insertion), things, src_object, user, progress))) + while (do_after(user, 1 SECONDS, src, NONE, FALSE, CALLBACK(STR, TYPE_PROC_REF(/datum/component/storage, handle_mass_item_insertion), things, src_object, user, progress))) stoplag(1) progress.end_progress() to_chat(user, "You dump as much of [src_object.parent]'s contents [STR.insert_preposition]to [src] as you can.") - STR.orient2hud(user) - src_object.orient2hud(user) if(user.active_storage) //refresh the HUD to show the transfered contents - user.active_storage.close(user) - user.active_storage.show_to(user) + user.active_storage.ui_show(user) return TRUE ///Get the best place to dump the items contained in the source storage item? diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 989db20efd1f..beb7cef2718f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -624,7 +624,7 @@ SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, A) . = ..() if(!QDELETED(throwing)) - throwing.hit_atom(A) + throwing.finalize(hit = TRUE, target = A) . = TRUE if(QDELETED(A)) return @@ -821,7 +821,9 @@ var/impact_signal = SEND_SIGNAL(src, COMSIG_MOVABLE_IMPACT, hit_atom, throwingdatum) if(impact_signal & COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH) hitpush = FALSE // hacky, tie this to something else or a proper workaround later - + if(isturf(loc)) + var/turf/T = loc + T.Entered(src) if(impact_signal & ~COMPONENT_MOVABLE_IMPACT_NEVERMIND) // in case a signal interceptor broke or deleted the thing before we could process our hit return hit_atom.hitby(src, throwingdatum=throwingdatum, hitpush=hitpush) @@ -883,7 +885,7 @@ else target_zone = thrower.zone_selected - var/datum/thrownthing/TT = new(src, target, get_turf(target), get_dir(src, target), range, speed, thrower, diagonals_first, force, gentle, callback, target_zone) + var/datum/thrownthing/TT = new(src, target, get_dir(src, target), range, speed, thrower, diagonals_first, force, gentle, callback, target_zone) var/dist_x = abs(target.x - src.x) var/dist_y = abs(target.y - src.y) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 1dee49da7f54..4020895f29bd 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -216,24 +216,6 @@ Medical HUD! Basic mode needs suit sensors on. holder.icon_state = "hudhealthy" -/*********************************************** -FAN HUDs! For identifying other fans on-sight. -************************************************/ - -//HOOKS - -/mob/living/carbon/human/proc/fan_hud_set_fandom() - var/image/holder = hud_list[FAN_HUD] - var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size - holder.icon_state = "hudfan_no" - var/obj/item/clothing/under/U = get_item_by_slot(ITEM_SLOT_ICLOTHING) - if(U) - if(istype(U.attached_accessory, /obj/item/clothing/accessory/fan_mime_pin)) - holder.icon_state = "fan_mime_pin" - else if(istype(U.attached_accessory, /obj/item/clothing/accessory/fan_clown_pin)) - holder.icon_state = "fan_clown_pin" - /*********************************************** Security HUDs! Basic mode shows only the job. ************************************************/ diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index fe95ea3c5988..3064a52a48ad 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -40,14 +40,14 @@ /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/Initialize() . = ..() var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - bananium.insert_amount_mat(max_recharge, /datum/material/bananium) + bananium.insert_amount_mat(max_recharge, /datum/material/hellstone) START_PROCESSING(SSobj, src) /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/process() var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - var/bananium_amount = bananium.get_material_amount(/datum/material/bananium) + var/bananium_amount = bananium.get_material_amount(/datum/material/hellstone) if(bananium_amount < max_recharge) - bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/bananium) + bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/hellstone) /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/attack_self(mob/user) ui_action_click(user) diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index e9906a6a0089..b423b28ce4d2 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -5,6 +5,8 @@ icon_state = "pdapainter" base_icon_state = "pdapainter" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL max_integrity = 200 var/obj/item/pda/storedpda = null var/list/colorlist = list() diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index f0a1c403cfa4..3d4d05336c3c 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -11,6 +11,8 @@ icon_state = "sleeper" base_icon_state = "sleeper" density = FALSE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW state_open = TRUE circuit = /obj/item/circuitboard/machine/sleeper clicksound = 'sound/machines/pda_button1.ogg' @@ -100,7 +102,7 @@ playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, frequency = rand(5120, 8800)) target.apply_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) target.ExtinguishMob() - use_power = ACTIVE_POWER_USE + set_active_power() /obj/machinery/sleeper/proc/thaw_them(mob/living/target) if(IS_IN_STASIS(target)) @@ -109,7 +111,8 @@ /obj/machinery/sleeper/process() if(!occupant || !isliving(occupant)) - use_power = IDLE_POWER_USE + if(use_static_power != IDLE_POWER_USE) + set_idle_power() return var/mob/living/L_occupant = occupant if(stasis_running()) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index a17b9c705dc1..4cddf93b2478 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -21,7 +21,7 @@ Class Variables: power_channel (num) What channel to draw from when drawing power for power mode Possible Values: - AREA_USAGE_EQUIP:0 -- Equipment Channel + AREA_USAGE_EQUIP:1 -- Equipment Channel AREA_USAGE_LIGHT:2 -- Lighting Channel AREA_USAGE_ENVIRON:3 -- Environment Channel @@ -44,7 +44,7 @@ Class Procs: auto_use_power() 'game/machinery/machine.dm' This proc determines how power mode power is deducted by the machine. 'auto_use_power()' is called by the 'master_controller' game_controller every - tick. + tick. (not anymore) Return Value: return:1 -- if object is powered @@ -102,6 +102,7 @@ Class Procs: //0 = dont run the auto //1 = run auto, use idle //2 = run auto, use active + var/use_static_power = NO_POWER_USE var/idle_power_usage = 0 var/active_power_usage = 0 var/power_channel = AREA_USAGE_EQUIP @@ -151,7 +152,11 @@ Class Procs: if(occupant_typecache) occupant_typecache = typecacheof(occupant_typecache) - + switch(use_power) + if(IDLE_POWER_USE) + set_idle_power() + if(ACTIVE_POWER_USE) + set_active_power() return INITIALIZE_HINT_LATELOAD /// Helper proc for telling a machine to start processing with the subsystem type that is located in its `subsystem_type` var. @@ -168,7 +173,16 @@ Class Procs: . = ..() power_change() become_area_sensitive(ROUNDSTART_TRAIT) - RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(power_change)) + RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(enter_area)) + RegisterSignal(src, COMSIG_EXIT_AREA, PROC_REF(exit_area)) + +/obj/machinery/proc/enter_area(datum/source, area/A) + SIGNAL_HANDLER + power_change(A) + +/obj/machinery/proc/exit_area(datum/source, area/A) + SIGNAL_HANDLER + set_no_power(A) /obj/machinery/Destroy() GLOB.machines.Remove(src) @@ -177,6 +191,7 @@ Class Procs: lose_area_sensitivity(ROUNDSTART_TRAIT) QDEL_NULL(circuit) QDEL_LIST(component_parts) + set_no_power() return ..() /obj/machinery/proc/locate_machinery() @@ -273,8 +288,8 @@ Class Procs: target.forceMove(src) updateUsrDialog() update_appearance() - -/obj/machinery/proc/auto_use_power() +/* +/obj/machinery/proc/auto_use_power() //obsolete, tick controller doesn't call this anymore because machines use addStaticPower now. if(!powered(power_channel)) return 0 if(use_power == 1) @@ -282,7 +297,7 @@ Class Procs: else if(use_power >= 2) use_power(active_power_usage,power_channel) return 1 - +*/ ///Called when we want to change the value of the `is_operational` variable. Boolean. /obj/machinery/proc/set_is_operational(new_value) @@ -618,6 +633,7 @@ Class Procs: //called on deconstruction before the final deletion /obj/machinery/proc/on_deconstruction() + set_no_power() return /obj/machinery/proc/can_be_overridden() diff --git a/code/game/machinery/airlock_cycle_control.dm b/code/game/machinery/airlock_cycle_control.dm index 76094e803cd3..7ba391fae782 100644 --- a/code/game/machinery/airlock_cycle_control.dm +++ b/code/game/machinery/airlock_cycle_control.dm @@ -67,8 +67,8 @@ icon = 'icons/obj/monitors.dmi' icon_state = "aac" use_power = IDLE_POWER_USE - idle_power_usage = 4 - active_power_usage = 8 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL power_channel = AREA_USAGE_ENVIRON req_access = list(ACCESS_ATMOSPHERICS) max_integrity = 250 diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index f275d234fca7..d4057603957d 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -12,8 +12,8 @@ GLOBAL_LIST_EMPTY(announcement_systems) verb_ask = "queries" verb_exclaim = "alarms" - idle_power_usage = 20 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/announcement_system diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index d83831f2c634..e63b3f75fb2b 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -9,8 +9,9 @@ icon_state = "autolathe" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_HIGH + power_channel = AREA_USAGE_EQUIP circuit = /obj/item/circuitboard/machine/autolathe layer = BELOW_OBJ_LAYER @@ -50,7 +51,7 @@ ) /obj/machinery/autolathe/Initialize() - AddComponent(/datum/component/material_container,list(/datum/material/iron, /datum/material/glass, /datum/material/plastic, /datum/material/silver, /datum/material/gold, /datum/material/plasma, /datum/material/uranium, /datum/material/titanium), 0, TRUE, null, null, CALLBACK(src, PROC_REF(AfterMaterialInsert))) + AddComponent(/datum/component/material_container,list(/datum/material/iron, /datum/material/glass, /datum/material/plastic, /datum/material/silver, /datum/material/gold, /datum/material/plasma, /datum/material/uranium, /datum/material/titanium, /datum/material/hellstone), 0, TRUE, null, null, CALLBACK(src, PROC_REF(AfterMaterialInsert))) . = ..() wires = new /datum/wires/autolathe(src) @@ -223,7 +224,7 @@ for(var/MAT in being_built.materials) total_amount += being_built.materials[MAT] - var/power = max(active_power_usage, (total_amount)*multiplier/5) //Change this to use all materials + var/power = max(active_power_usage, total_amount) //Change this to use all materials var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) @@ -252,6 +253,7 @@ use_power(power) icon_state = "autolathe_n" var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8 + set_active_power() addtimer(CALLBACK(src, PROC_REF(make_item), power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time) . = TRUE else @@ -326,12 +328,13 @@ else flick("autolathe_o", src) //plays metal insertion animation - use_power(min(1000, amount_inserted / 100)) + use_power(min(active_power_usage, amount_inserted)) /obj/machinery/autolathe/proc/make_item(power, list/materials_used, list/picked_materials, multiplier, coeff, is_stack, mob/user) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) var/atom/A = drop_location() use_power(power) + set_idle_power() materials.use_materials(materials_used) diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm index 2e93cd179ed5..83f3e366e8a3 100644 --- a/code/game/machinery/bank_machine.dm +++ b/code/game/machinery/bank_machine.dm @@ -3,7 +3,7 @@ desc = "A machine used to deposit and withdraw funds." icon_screen = "vault" icon_keyboard = "security_key" - idle_power_usage = 100 + idle_power_usage = IDLE_DRAW_LOW var/siphoning = FALSE var/next_warning = 0 diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 1a89a2b011cc..f6c004ddca71 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -12,7 +12,7 @@ var/initialized_button = 0 armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 70) use_power = IDLE_POWER_USE - idle_power_usage = 2 + idle_power_usage = IDLE_DRAW_MINIMAL resistance_flags = LAVA_PROOF | FIRE_PROOF /obj/machinery/button/indestructible @@ -68,34 +68,40 @@ default_deconstruction_screwdriver(user, "button-open", "[skin]",W) update_appearance() else - to_chat(user, "Maintenance Access Denied.") + to_chat(user, span_alert("Maintenance Access Denied.")) flick("[skin]-denied", src) return if(panel_open) if(!device && istype(W, /obj/item/assembly)) if(!user.transferItemToLoc(W, src)) - to_chat(user, "\The [W] is stuck to you!") + to_chat(user, span_warning("\The [W] is stuck to you!")) return device = W - to_chat(user, "You add [W] to the button.") + to_chat(user, span_notice("You add [W] to the button.")) if(!board && istype(W, /obj/item/electronics/airlock)) if(!user.transferItemToLoc(W, src)) - to_chat(user, "\The [W] is stuck to you!") + to_chat(user, span_warning("\The [W] is stuck to you!")) return board = W if(board.one_access) req_one_access = board.accesses else req_access = board.accesses - to_chat(user, "You add [W] to the button.") + to_chat(user, span_notice("You add [W] to the button.")) + + if(device && W.tool_behaviour == TOOL_MULTITOOL) + var/obj/item/multitool/multi = W + if(istype(device, /obj/item/assembly/control)) + multi.buffer = device + to_chat(user, span_notice("You copy the [device] to your multitool's buffer.")) if(!device && !board && W.tool_behaviour == TOOL_WRENCH) - to_chat(user, "You start unsecuring the button frame...") + to_chat(user, span_notice("You start unsecuring the button frame...")) W.play_tool_sound(src) if(W.use_tool(src, user, 40)) - to_chat(user, "You unsecure the button frame.") + to_chat(user, span_notice("You unsecure the button frame.")) transfer_fingerprints_to(new /obj/item/wallframe/button(get_turf(src))) playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE) qdel(src) @@ -153,14 +159,14 @@ req_one_access = list() board = null update_appearance() - to_chat(user, "You remove electronics from the button frame.") + to_chat(user, span_notice("You remove electronics from the button frame.")) else if(skin == "doorctrl") skin = "launcher" else skin = "doorctrl" - to_chat(user, "You change the button frame's front panel.") + to_chat(user, span_notice("You change the button frame's front panel.")) return if((machine_stat & (NOPOWER|BROKEN))) @@ -170,7 +176,7 @@ return if(!allowed(user)) - to_chat(user, "Access Denied.") + to_chat(user, span_alert("Access Denied.")) flick("[skin]-denied", src) return diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index c1cca432efd4..fda41eab7789 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -9,8 +9,8 @@ icon_state = "camera" //mapping icon to represent upgrade states. if you want a different base icon, update default_camera_icon as well as this. light_color = "#CDDDFF" use_power = ACTIVE_POWER_USE - idle_power_usage = 5 - active_power_usage = 10 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = IDLE_DRAW_MINIMAL*2 layer = WALL_OBJ_LAYER resistance_flags = FIRE_PROOF damage_deflection = 12 diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index 8f57ad09203a..d5f7e618c637 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -56,18 +56,11 @@ /obj/machinery/camera/autoname/LateInitialize() . = ..() - number = 1 - var/area/A = get_area(src) - if(A) - for(var/obj/machinery/camera/autoname/C in GLOB.machines) - if(C == src) - continue - var/area/CA = get_area(C) - if(CA.type == A.type) - if(C.number) - number = max(number, C.number+1) - c_tag = "[A.name] #[number]" - + var/static/list/autonames_in_areas = list() + var/area/camera_area = get_area(src) + number = autonames_in_areas[camera_area] + 1 + autonames_in_areas[camera_area] = number + c_tag = "[format_text(camera_area.name)] #[number]" // UPGRADE PROCS diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index e1be8d8e4453..85d2d5651203 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/power.dmi' icon_state = "ccharger" use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 60 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW power_channel = AREA_USAGE_EQUIP circuit = /obj/item/circuitboard/machine/cell_charger pass_flags = PASSTABLE diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index c71e94a0948a..ad4cd3834f06 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -16,6 +16,8 @@ density = TRUE icon = 'icons/obj/machines/cloning.dmi' icon_state = "pod_0" + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW req_access = list(ACCESS_CLONING) //FOR PREMATURE UNLOCKING. verb_say = "states" circuit = /obj/item/circuitboard/machine/clonepod diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index bdbadf79a943..3a36603c5070 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -4,8 +4,8 @@ icon_state = "computer" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 300 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_LOW max_integrity = 200 integrity_failure = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 20) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index b665a36bcf32..d7f80fc45680 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -867,7 +867,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( say("WEEWOO! WEEWOO! Spaceport security en route!") playsound(src, 'sound/items/weeoo1.ogg', 100, FALSE) for(var/i, i<=3, i++) - var/mob/living/simple_animal/hostile/syndicate/ranged/smg/orion/O = new/mob/living/simple_animal/hostile/syndicate/ranged/smg/orion(get_turf(src)) + var/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/orion/O = new/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/orion(get_turf(src)) O.target = usr @@ -1242,7 +1242,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( newgame() obj_flags |= EMAGGED -/mob/living/simple_animal/hostile/syndicate/ranged/smg/orion +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/orion name = "spaceport security" desc = "Premier corporate security forces for all spaceports found along the Orion Trail." faction = list("orion") diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index f875defd6044..c1a1171e57cc 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -6,8 +6,8 @@ icon_screen = "crew" icon_keyboard = "med_key" use_power = IDLE_POWER_USE - idle_power_usage = 250 - active_power_usage = 500 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/computer/crew light_color = LIGHT_COLOR_BLUE diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index ffeabbdc4e0a..815e2496d41b 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -43,8 +43,8 @@ circuit = /obj/item/circuitboard/computer/scan_consolenew use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 400 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_MEDIUM light_color = LIGHT_COLOR_BLUE /// Link to the techweb's stored research. Used to retrieve stored mutations diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 20c3d66e8585..8419ee80ce1e 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -5,6 +5,8 @@ icon_state = "jukebox-" verb_say = "states" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL var/active = FALSE var/list/rangers = list() var/stop = 0 diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm index f3fa616032d3..645e8eee762f 100644 --- a/code/game/machinery/defibrillator_mount.dm +++ b/code/game/machinery/defibrillator_mount.dm @@ -165,7 +165,7 @@ name = "PENLITE defibrillator mount" desc = "Holds defibrillators. You can grab the paddles if one is mounted. This PENLITE variant also allows for slow, passive recharging of the defibrillator." icon_state = "penlite_mount" - idle_power_usage = 1 + idle_power_usage = 0 wallframe_type = /obj/item/wallframe/defib_mount/charging diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index baf3d6ae2cc1..740ea5c935fa 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -5,8 +5,8 @@ Or you can just drop your plates on the floor, like civilized folk." icon = 'icons/obj/kitchen.dmi' icon_state = "synthesizer" - idle_power_usage = 8 //5 with default parts - active_power_usage = 13 //10 with default parts + idle_power_usage = IDLE_DRAW_MINIMAL //lower + active_power_usage = ACTIVE_DRAW_MINIMAL //lower ingame because stockparts density = FALSE circuit = /obj/item/circuitboard/machine/dish_drive pass_flags = PASSTABLE diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index 7f61dde6ef79..a45aaa474438 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -6,8 +6,8 @@ base_icon_state = "scanner" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 50 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM occupant_typecache = list(/mob/living, /obj/item/bodypart/head, /obj/item/organ/brain) circuit = /obj/item/circuitboard/machine/dnascanner var/locked = FALSE diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 6bb5a4bab561..121c93a07353 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -958,7 +958,7 @@ to_chat(user, "You need at least 2 metal sheets to reinforce [src].") return to_chat(user, "You start reinforcing [src].") - if(do_after(user, 20, TRUE, src)) + if(do_after(user, 20, src)) if(!panel_open || !S.use(2)) return user.visible_message("[user] reinforces \the [src] with metal.", @@ -972,7 +972,7 @@ to_chat(user, "You need at least 2 plasteel sheets to reinforce [src].") return to_chat(user, "You start reinforcing [src].") - if(do_after(user, 20, TRUE, src)) + if(do_after(user, 20, src)) if(!panel_open || !S.use(2)) return user.visible_message("[user] reinforces \the [src] with plasteel.", @@ -1226,7 +1226,7 @@ var/time_to_open = 50 playsound(src, pry_sound, 100, TRUE, mono_adj = TRUE) //is it aliens or just the CE being a dick? prying_so_hard = TRUE - if(do_after(user, time_to_open, TRUE, src)) + if(do_after(user, time_to_open, src)) open(2) if(density && !open(2)) to_chat(user, "Despite your attempts, [src] refuses to open.") @@ -1414,7 +1414,7 @@ playsound(src, 'sound/machines/creaking.ogg', 100, TRUE, mono_adj = TRUE) - if(do_after(user, time_to_open, TRUE, src)) + if(do_after(user, time_to_open, src)) if(density && !open(2)) //The airlock is still closed, but something prevented it opening. (Another player noticed and bolted/welded the airlock in time!) to_chat(user, "Despite your efforts, [src] managed to resist your attempts to open it!") diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 8e0ed982b501..492ce30f6ac4 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -264,17 +264,7 @@ opacity = FALSE glass = TRUE -/obj/machinery/door/airlock/bananium - name = "bananium airlock" - desc = "Honkhonkhonk" - icon = 'icons/obj/doors/airlocks/station/bananium.dmi' - assemblytype = /obj/structure/door_assembly/door_assembly_bananium - doorOpen = 'sound/items/bikehorn.ogg' - has_hatch = FALSE -/obj/machinery/door/airlock/bananium/glass - opacity = FALSE - glass = TRUE /obj/machinery/door/airlock/sandstone name = "sandstone airlock" diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 4e846c26f14a..7e3febcc482c 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -23,26 +23,32 @@ /obj/machinery/door/poddoor/attackby(obj/item/W, mob/user, params) . = ..() if((resistance_flags & INDESTRUCTIBLE) && W.tool_behaviour == TOOL_SCREWDRIVER) // This makes it so ERT members cannot cheese by opening their blast doors. - to_chat(user, "You can't find the panel!") + to_chat(user, span_warning("You can't find the panel!")) return if(W.tool_behaviour == TOOL_SCREWDRIVER) if(density) - to_chat(user, "You need to open [src] to access the maintenance panel!") + to_chat(user, span_warning("You need to open [src] to access the maintenance panel")) return else if(default_deconstruction_screwdriver(user, icon_state, icon_state, W)) - to_chat(user, "You [panel_open ? "open" : "close"] the maintenance hatch of [src].") + to_chat(user, span_notice("You [panel_open ? "open" : "close"] the maintenance hatch of [src].")) return TRUE if(panel_open && !density) if(W.tool_behaviour == TOOL_MULTITOOL) - var/change_id = input("Set [src]'s ID. It must be a number between 1 and 100.", "ID", id) as num|null - if(change_id) - id = clamp(round(change_id, 1), 1, 100) - to_chat(user, "You change the ID to [id].") + var/obj/item/multitool/multi = W + if (istype(multi.buffer,/obj/item/assembly/control)) + var/obj/item/assembly/control/controller = multi.buffer + id = controller.id + to_chat(user, span_notice("You copy the ID in your multitool's buffer into the [src].")) + else + var/change_id = input("Set [src]'s ID. It must be a number between 1 and 100.", "ID", id) as num|null + if(change_id) + id = clamp(round(change_id, 1), 1, 100) + to_chat(user, span_notice("You change the ID to [id].")) if(W.tool_behaviour == TOOL_CROWBAR) - to_chat(user, "You start to remove the airlock electronics.") + to_chat(user, span_notice("You start to remove the airlock electronics.")) if(!(machine_stat & NOPOWER)) do_sparks(5, TRUE, src) electrocute_mob(user, get_area(src), src, 1, TRUE) //fuck this fella @@ -52,9 +58,9 @@ /obj/machinery/door/poddoor/examine(mob/user) . = ..() - . += "The maintenance panel is [panel_open ? "opened" : "closed"]." + . += span_notice("The maintenance panel is [panel_open ? "opened" : "closed"].") if(panel_open) - . += "The airlock electronics are exposed and could be pried out." + . += span_notice("The airlock electronics are exposed and could be pried out.") /obj/machinery/door/poddoor/deconstruct(disassembled = TRUE, mob/user) if(!(flags_1 & NODECONSTRUCT_1)) @@ -142,18 +148,18 @@ /obj/machinery/door/poddoor/attack_alien(mob/living/carbon/alien/humanoid/user) if(density & !(resistance_flags & INDESTRUCTIBLE)) add_fingerprint(user) - user.visible_message("[user] begins prying open [src].",\ - "You begin digging your claws into [src] with all your might!",\ - "You hear groaning metal...") + user.visible_message(span_warning("[user] begins prying open [src]."),\ + span_noticealien("You begin digging your claws into [src] with all your might"),\ + span_warning("You hear groaning metal...")) playsound(src, 'sound/machines/creaking.ogg', 100, TRUE) var/time_to_open = 5 SECONDS if(hasPower()) time_to_open = 15 SECONDS - if(do_after(user, time_to_open, TRUE, src)) + if(do_after(user, time_to_open, src)) if(density && !open(TRUE)) //The airlock is still closed, but something prevented it opening. (Another player noticed and bolted/welded the airlock in time!) - to_chat(user, "Despite your efforts, [src] managed to resist your attempts to open it!") + to_chat(user, span_warning("Despite your efforts, [src] managed to resist your attempts to open it!")) else return ..() diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index aa3e4ece65e9..25da902ea3f5 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -6,6 +6,8 @@ icon = 'icons/obj/machines/research.dmi' base_icon_state = "tdoppler" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW verb_say = "states coldly" var/cooldown = 10 var/next_announce = 0 diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm index dbf055d98079..4603044ab285 100644 --- a/code/game/machinery/droneDispenser.dm +++ b/code/game/machinery/droneDispenser.dm @@ -9,6 +9,8 @@ icon = 'icons/obj/machines/droneDispenser.dmi' icon_state = "on" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW max_integrity = 250 integrity_failure = 0.33 diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index 9d190b2e1369..34d4bb320c46 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -7,8 +7,8 @@ /obj/machinery/doorButtons power_channel = AREA_USAGE_ENVIRON use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 4 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/idSelf diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index faceb46419d5..6cbd6eaed278 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -23,8 +23,8 @@ integrity_failure = 0.4 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL power_channel = AREA_USAGE_ENVIRON resistance_flags = FIRE_PROOF diff --git a/code/game/machinery/gulag_item_reclaimer.dm b/code/game/machinery/gulag_item_reclaimer.dm index 8833a20d90c4..81c422ea31fa 100644 --- a/code/game/machinery/gulag_item_reclaimer.dm +++ b/code/game/machinery/gulag_item_reclaimer.dm @@ -6,8 +6,8 @@ req_access = list(ACCESS_SECURITY) //REQACCESS TO ACCESS ALL STORED ITEMS density = FALSE use_power = IDLE_POWER_USE - idle_power_usage = 100 - active_power_usage = 2500 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = IDLE_DRAW_MEDIUM var/list/stored_items = list() var/obj/machinery/gulag_teleporter/linked_teleporter = null diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm index e147e24717ca..3632c204f36b 100644 --- a/code/game/machinery/gulag_teleporter.dm +++ b/code/game/machinery/gulag_teleporter.dm @@ -15,8 +15,8 @@ The console is located at computer/gulag_teleporter.dm state_open = FALSE density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 200 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_EXTREME circuit = /obj/item/circuitboard/machine/gulag_teleporter var/locked = FALSE var/message_cooldown diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 9cf4470cab5c..1b0093458e49 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -2,12 +2,14 @@ name = "organ harvester" desc = "An advanced machine used for harvesting organs and limbs from the deceased." density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW icon = 'icons/obj/machines/harvester.dmi' icon_state = "harvester" base_icon_state = "harvester" verb_say = "states" state_open = FALSE - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/harvester light_color = LIGHT_COLOR_BLUE var/interval = 20 diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 4a31d650f9a1..60ded054842a 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -36,8 +36,8 @@ Possible to do for anyone motivated enough: plane = FLOOR_PLANE req_access = list(ACCESS_KEYCARD_AUTH) //Used to allow for forced connecting to other (not secure) holopads. Anyone can make a call, though. use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM max_integrity = 300 armor = list("melee" = 50, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) circuit = /obj/item/circuitboard/machine/holopad @@ -78,6 +78,8 @@ Possible to do for anyone motivated enough: var/secure = FALSE /// If we are currently calling another holopad var/calling = FALSE + /// The last holopad that called this one. + var/caller_history /obj/machinery/holopad/Initialize() . = ..() @@ -178,7 +180,9 @@ Possible to do for anyone motivated enough: /obj/machinery/holopad/examine(mob/user) . = ..() if(in_range(user, src) || isobserver(user)) - . += "The status display reads: Current projection range: [holo_range] units." + . += span_notice("The status display reads: Current projection range: [holo_range] units.") + if(caller_history) + . += span_notice("The caller history displays the last recieved call to be from: [caller_history].") /obj/machinery/holopad/attackby(obj/item/P, mob/user, params) if(default_deconstruction_screwdriver(user, "holopad_open", "holopad0", P)) @@ -195,11 +199,11 @@ Possible to do for anyone motivated enough: if(istype(P,/obj/item/disk/holodisk)) if(disk) - to_chat(user,"There's already a disk inside [src]!") + to_chat(user,span_warning("There's already a disk inside [src]!")) return if (!user.transferItemToLoc(P,src)) return - to_chat(user,"You insert [P] into [src].") + to_chat(user,span_notice("You insert [P] into [src].")) disk = P return @@ -249,15 +253,15 @@ Possible to do for anyone motivated enough: if("AIrequest") if(last_request + 200 < world.time) last_request = world.time - to_chat(usr, "You requested an AI's presence.") + to_chat(usr, span_info("You requested an AI's presence.")) var/area/area = get_area(src) for(var/mob/living/silicon/ai/AI in GLOB.silicon_mobs) if(!AI.client) continue - to_chat(AI, "Your presence is requested at \the [area].") + to_chat(AI, span_info("Your presence is requested at \the [area].")) return TRUE else - to_chat(usr, "A request for AI presence was already sent recently.") + to_chat(usr, span_info("A request for AI presence was already sent recently.")) return if("holocall") if(outgoing_call) @@ -280,7 +284,7 @@ Possible to do for anyone motivated enough: calling = TRUE return TRUE else - to_chat(usr, "You must stand on the holopad to make a call!") + to_chat(usr, span_warning("You must stand on the holopad to make a call!")) if("connectcall") var/datum/holocall/call_to_connect = locate(params["holopad"]) in holo_calls if(!QDELETED(call_to_connect)) @@ -374,6 +378,7 @@ Possible to do for anyone motivated enough: for(var/I in holo_calls) var/datum/holocall/HC = I if(HC.connected_holopad != src) + caller_history = get_area_name(HC.calling_holopad) if(force_answer_call && world.time > (HC.call_start_time + (HOLOPAD_MAX_DIAL_TIME / 2))) HC.Answer(src) break @@ -392,7 +397,7 @@ Possible to do for anyone motivated enough: if(is_operational && (!AI || AI.eyeobj.loc == loc))//If the projector has power and client eye is on it if (AI && istype(AI.current, /obj/machinery/holopad)) - to_chat(user, "ERROR: \black Image feed in progress.") + to_chat(user, span_danger("ERROR: \black Image feed in progress.")) return var/obj/effect/overlay/holo_pad_hologram/Hologram = new(loc)//Spawn a blank effect at the location. @@ -415,11 +420,11 @@ Possible to do for anyone motivated enough: move_hologram(user, loc) set_holo(user, Hologram) - visible_message("A holographic image of [user] flickers to life before your eyes!") + visible_message(span_notice("A holographic image of [user] flickers to life before your eyes!")) return Hologram else - to_chat(user, "ERROR: Unable to project hologram.") + to_chat(user, span_danger("ERROR:Unable to project hologram.")) /*This is the proc for special two-way communication between AI and holopad/people talking near holopad. For the other part of the code, check silicon say.dm. Particularly robot talk.*/ @@ -446,8 +451,11 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ /obj/machinery/holopad/proc/SetLightsAndPower() var/total_users = LAZYLEN(masters) + LAZYLEN(holo_calls) - use_power = total_users > 0 ? ACTIVE_POWER_USE : IDLE_POWER_USE - active_power_usage = HOLOPAD_PASSIVE_POWER_USAGE + (HOLOGRAM_POWER_USAGE * total_users) + if(total_users > 0) + set_active_power() + else + set_idle_power() + active_power_usage = initial(active_power_usage) * total_users if(total_users || replay_mode) set_light(2) else @@ -580,7 +588,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ Hologram.set_anchored(TRUE)//So space wind cannot drag it. Hologram.name = "[record.caller_name] (Hologram)"//If someone decides to right click. Hologram.set_light(2) //hologram lighting - visible_message("A holographic image of [record.caller_name] flickers to life before your eyes!") + visible_message(span_notice("A holographic image of [record.caller_name] flickers to life before your eyes!")) return Hologram /obj/machinery/holopad/proc/replay_start() diff --git a/code/game/machinery/hypnochair.dm b/code/game/machinery/hypnochair.dm index b31dd9925375..e14756815bb2 100644 --- a/code/game/machinery/hypnochair.dm +++ b/code/game/machinery/hypnochair.dm @@ -6,6 +6,8 @@ base_icon_state = "hypnochair" circuit = /obj/item/circuitboard/machine/hypnochair density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW opacity = FALSE var/mob/living/carbon/victim = null ///Keeps track of the victim to apply effects if it teleports away diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 8117ad2c251a..c82d67a9df62 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -6,8 +6,8 @@ base_icon_state = "igniter" plane = FLOOR_PLANE use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 4 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW max_integrity = 300 armor = list("melee" = 50, "bullet" = 30, "laser" = 70, "energy" = 50, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) resistance_flags = FIRE_PROOF diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index c7752a8cbfaa..c3e6bead671a 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -3,9 +3,9 @@ desc = "A bluespace pad able to thrust matter through bluespace, teleporting it to or from nearby locations." icon = 'icons/obj/telescience.dmi' icon_state = "lpad-idle" - use_power = TRUE - idle_power_usage = 200 - active_power_usage = 2500 + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_EXTREME hud_possible = list(DIAG_LAUNCHPAD_HUD) circuit = /obj/item/circuitboard/machine/launchpad var/icon_teleport = "lpad-beam" @@ -149,7 +149,7 @@ teleporting = FALSE // use a lot of power - use_power(1000) + use_power(active_power_usage) var/turf/source = target var/list/log_msg = list() diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 40f405ad4a16..c0f296c1ffcf 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -7,8 +7,8 @@ icon_state = "limbgrower_idleoff" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW circuit = /obj/item/circuitboard/machine/limbgrower /// The category of limbs we're browing in our UI. diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 4f91bea3ab7a..7316e5b42422 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/stationobjs.dmi' icon_state = "mass_driver" use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM var/power = 1 var/code = 1 var/id = 1 diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm index d7be7fea98ee..52933a5aba74 100644 --- a/code/game/machinery/medical_kiosk.dm +++ b/code/game/machinery/medical_kiosk.dm @@ -18,6 +18,8 @@ base_icon_state = "kiosk" layer = ABOVE_MOB_LAYER density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/medical_kiosk var/obj/item/scanner_wand /// Emag mode diff --git a/code/game/machinery/medipen_refiller.dm b/code/game/machinery/medipen_refiller.dm index e104257b5493..ceb0ed389c17 100644 --- a/code/game/machinery/medipen_refiller.dm +++ b/code/game/machinery/medipen_refiller.dm @@ -5,7 +5,7 @@ icon_state = "medipen_refiller" density = TRUE circuit = /obj/item/circuitboard/machine/medipen_refiller - idle_power_usage = 100 + idle_power_usage = IDLE_DRAW_LOW /// list of medipen subtypes it can refill var/list/allowed = list( /obj/item/reagent_containers/hypospray/medipen = /datum/reagent/medicine/epinephrine, diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 75498600b007..5891898ef6dc 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -33,8 +33,8 @@ DEFINE_BITFIELD(turret_flags, list( density = TRUE desc = "A covered turret that shoots at its enemies." use_power = IDLE_POWER_USE //this turret uses and requires power - idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power - active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power + idle_power_usage = IDLE_DRAW_MINIMAL //when inactive, this turret takes up constant 50 Equipment power + active_power_usage = ACTIVE_DRAW_LOW //when active, this turret takes up constant 300 Equipment power req_access = list(ACCESS_SECURITY) /// Only people with Security access power_channel = AREA_USAGE_EQUIP //drains power from the EQUIPMENT channel max_integrity = 160 //the turret's health @@ -795,7 +795,7 @@ DEFINE_BITFIELD(turret_flags, list( max_integrity = 300 always_up = 1 use_power = ACTIVE_POWER_USE - active_power_usage = 300 + active_power_usage = ACTIVE_DRAW_MINIMAL has_cover = 0 scan_range = 9 stun_projectile = /obj/projectile/beam/disabler diff --git a/code/game/machinery/prisonlabor.dm b/code/game/machinery/prisonlabor.dm index 6fe329ed4a71..76612018d87a 100644 --- a/code/game/machinery/prisonlabor.dm +++ b/code/game/machinery/prisonlabor.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/machines/prison.dmi' icon_state = "offline" use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW var/obj/item/stack/license_plates/empty/current_plate var/pressing = FALSE diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index cc9f8f6d3d59..7d0455ab82f0 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/telescience.dmi' icon_state = "qpad-idle" use_power = IDLE_POWER_USE - idle_power_usage = 200 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_EXTREME obj_flags = CAN_BE_HIT | UNIQUE_RENAME circuit = /obj/item/circuitboard/machine/quantumpad var/teleport_cooldown = 400 //30 seconds base due to base parts diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index c604b3eeccf6..2720443d2424 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -5,8 +5,8 @@ base_icon_state = "recharger" desc = "A charging dock for energy based weaponry." use_power = IDLE_POWER_USE - idle_power_usage = 4 - active_power_usage = 250 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW circuit = /obj/item/circuitboard/machine/recharger pass_flags = PASSTABLE var/obj/item/charging = null @@ -50,11 +50,11 @@ if (new_charging) START_PROCESSING(SSmachines, src) finished_recharging = FALSE - use_power = ACTIVE_POWER_USE + set_active_power() using_power = TRUE update_appearance() else - use_power = IDLE_POWER_USE + set_idle_power() using_power = FALSE update_appearance() diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 14e253298070..cedf6c0a56ff 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -5,8 +5,8 @@ icon_state = "borgcharger0" density = FALSE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 1000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM req_access = list(ACCESS_ROBOTICS) state_open = TRUE circuit = /obj/item/circuitboard/machine/cyborgrecharger @@ -90,12 +90,12 @@ /obj/machinery/recharge_station/open_machine() . = ..() - use_power = IDLE_POWER_USE + set_idle_power() /obj/machinery/recharge_station/close_machine() . = ..() if(occupant) - use_power = ACTIVE_POWER_USE //It always tries to charge, even if it can't. + set_active_power() //It always tries to charge, even if it can't. add_fingerprint(occupant) /obj/machinery/recharge_station/update_icon_state() diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index b548ecf73125..82265e244448 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -7,6 +7,8 @@ icon_state = "grinder-o0" layer = ABOVE_ALL_MOB_LAYER // Overhead density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/recycler var/safety_mode = FALSE // Temporarily stops machine if it detects a mob var/icon_name = "grinder-o" @@ -19,7 +21,7 @@ /obj/machinery/recycler/Initialize() AddComponent(/datum/component/butchering/recycler, 1, amount_produced,amount_produced/5) - AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/plasma, /datum/material/gold, /datum/material/diamond, /datum/material/plastic, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, FALSE, null, null, null, TRUE) + AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/plasma, /datum/material/gold, /datum/material/diamond, /datum/material/plastic, /datum/material/uranium, /datum/material/hellstone, /datum/material/titanium, /datum/material/bluespace), INFINITY, FALSE, null, null, null, TRUE) . = ..() update_appearance() req_one_access = get_all_accesses() + get_all_centcom_access() diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm index c9e1d108c1e5..351f1c42ae5e 100644 --- a/code/game/machinery/roulette_machine.dm +++ b/code/game/machinery/roulette_machine.dm @@ -26,8 +26,8 @@ density = TRUE use_power = IDLE_POWER_USE anchored = FALSE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL max_integrity = 500 armor = list("melee" = 45, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 10, "bio" = 30, "rad" = 30, "fire" = 30, "acid" = 30) var/static/list/numbers = list("0" = "green", "1" = "red", "3" = "red", "5" = "red", "7" = "red", "9" = "red", "12" = "red", "14" = "red", "16" = "red",\ diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scan_gate.dm index 1ffb03200183..cf83233598aa 100644 --- a/code/game/machinery/scan_gate.dm +++ b/code/game/machinery/scan_gate.dm @@ -27,7 +27,7 @@ icon = 'icons/obj/machines/scangate.dmi' icon_state = "scangate" use_power = IDLE_POWER_USE - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/scanner_gate var/scanline_timer diff --git a/code/game/machinery/sheetifier.dm b/code/game/machinery/sheetifier.dm index 569bfa4b6f9e..ec9f0f5ff5a3 100644 --- a/code/game/machinery/sheetifier.dm +++ b/code/game/machinery/sheetifier.dm @@ -5,8 +5,8 @@ icon_state = "base_machine" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW circuit = /obj/item/circuitboard/machine/sheetifier layer = BELOW_OBJ_LAYER var/busy_processing = FALSE diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index bc578a856300..df865aee82e5 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -122,25 +122,23 @@ if(.) return if(locked && !issilicon(user)) - to_chat(user, "The machine is locked, you are unable to use it!") + to_chat(user, span_notice("The machine is locked, you are unable to use it!")) return if(panel_open) - to_chat(user, "The panel must be closed before operating this machine!") + to_chat(user, span_warning("The panel must be closed before operating this machine!")) return if (active) - user.visible_message("[user] deactivated \the [src].", \ - "You deactivate \the [src].", \ - "You hear heavy droning fade out.") + user.visible_message(span_notice("[user] deactivated \the [src]."), span_notice("You deactivate \the [src]."), span_hear("You hear heavy droning fade out")) shields_down() else if(anchored) - user.visible_message("[user] activated \the [src].", \ - "You activate \the [src].", \ - "You hear heavy droning.") + user.visible_message(span_notice("[user] activated \the [src]."), \ + span_notice("You activate \the [src]."), \ + span_hear("You hear heavy droning.")) shields_up() else - to_chat(user, "The device must first be secured to the floor!") + to_chat(user, span_warning("The device must first be secured to the floor!")) return /obj/machinery/shieldgen/attackby(obj/item/W, mob/user, params) @@ -148,60 +146,60 @@ W.play_tool_sound(src, 100) panel_open = !panel_open if(panel_open) - to_chat(user, "You open the panel and expose the wiring.") + to_chat(user, span_notice("You open the panel and expose the wiring.")) else - to_chat(user, "You close the panel.") + to_chat(user, span_notice("You close the panel.")) else if(istype(W, /obj/item/stack/cable_coil) && (machine_stat & BROKEN) && panel_open) var/obj/item/stack/cable_coil/coil = W if (coil.get_amount() < 1) - to_chat(user, "You need one length of cable to repair [src]!") + to_chat(user, span_warning("You need one length of cable to repair [src]!")) return - to_chat(user, "You begin to replace the wires...") + to_chat(user, span_notice("You begin to replace the wires...")) if(do_after(user, 30, target = src)) if(coil.get_amount() < 1) return coil.use(1) obj_integrity = max_integrity set_machine_stat(machine_stat & ~BROKEN) - to_chat(user, "You repair \the [src].") + to_chat(user, span_notice("You repair \the [src].")) update_appearance() else if(W.tool_behaviour == TOOL_WRENCH) if(locked) - to_chat(user, "The bolts are covered! Unlocking this would retract the covers.") + to_chat(user, span_warning("The bolts are covered! Unlocking this would retract the covers.")) return if(!anchored && !isinspace()) W.play_tool_sound(src, 100) - to_chat(user, "You secure \the [src] to the floor!") + to_chat(user, span_notice("You secure \the [src] to the floor!")) set_anchored(TRUE) else if(anchored) W.play_tool_sound(src, 100) - to_chat(user, "You unsecure \the [src] from the floor!") + to_chat(user, span_notice("You unsecure \the [src] from the floor!")) if(active) - to_chat(user, "\The [src] shuts off!") + to_chat(user, span_notice("\The [src] shuts off!")) shields_down() set_anchored(FALSE) else if(W.GetID()) if(allowed(user) && !(obj_flags & EMAGGED)) locked = !locked - to_chat(user, "You [locked ? "lock" : "unlock"] the controls.") + to_chat(user, span_notice("You [locked ? "lock" : "unlock"] the controls.")) else if(obj_flags & EMAGGED) - to_chat(user, "Error, access controller damaged!") + to_chat(user, span_danger("Error, access controller damaged!")) else - to_chat(user, "Access denied.") + to_chat(user, span_danger("Access denied.")) else return ..() /obj/machinery/shieldgen/emag_act(mob/user) if(obj_flags & EMAGGED) - to_chat(user, "The access controller is damaged!") + to_chat(user, span_warning("The access controller is damaged!")) return obj_flags |= EMAGGED locked = FALSE playsound(src, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - to_chat(user, "You short out the access controller.") + to_chat(user, span_warning("You short out the access controller.")) /obj/machinery/shieldgen/update_icon_state() icon_state = "shield[active ? "on" : "off"][(machine_stat & BROKEN) ? "br" : null]" @@ -219,8 +217,8 @@ req_access = list(ACCESS_TELEPORTER) flags_1 = CONDUCT_1 use_power = NO_POWER_USE - idle_power_usage = 10 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH circuit = /obj/item/circuitboard/machine/shieldwallgen max_integrity = 300 var/active = FALSE @@ -275,9 +273,7 @@ if(!active_power_usage || surplus() >= active_power_usage) add_load(active_power_usage) else - visible_message("The [src.name] shuts down due to lack of power!", \ - "If this message is ever seen, something is wrong.", - "You hear heavy droning fade out.") + visible_message(span_danger("The [src.name] shuts down due to lack of power!"), "If this message is ever seen, something is wrong.",span_hear("You hear heavy droning fade out.Turn off the shield generator first!") + to_chat(user, span_warning("Turn off the shield generator first!")) return FAILED_UNFASTEN return ..() @@ -388,11 +384,11 @@ if(item.GetID()) if(allowed(user) && !(obj_flags & EMAGGED)) locked = !locked - to_chat(user, "You [src.locked ? "lock" : "unlock"] the controls.") + to_chat(user, span_notice("You [src.locked ? "lock" : "unlock"] the controls.")) else if(obj_flags & EMAGGED) - to_chat(user, "Error, access controller damaged!") + to_chat(user, span_danger("Error, access controller damaged!")) else - to_chat(user, "Access denied.") + to_chat(user, span_danger("Access denied.")) else add_fingerprint(user) @@ -406,25 +402,23 @@ shock(user,50) return if(!anchored) - to_chat(user, "\The [src] needs to be firmly secured to the floor first!") + to_chat(user, span_warning("\The [src] needs to be firmly secured to the floor first!")) return if(locked && !issilicon(user)) - to_chat(user, "The controls are locked!") + to_chat(user, span_warning("The controls are locked!")) return if(!powernet) - to_chat(user, "\The [src] needs to be powered by a wire!") + to_chat(user, span_warning("\The [src] needs to be powered by a wire!")) return if(active) - user.visible_message("[user] turned \the [src] off.", \ - "You turn off \the [src].", \ - "You hear heavy droning fade out.") + user.visible_message(span_notice("[user] turned \the [src] off."), \ + span_notice("You turn off \the [src]."), \ + span_hear("You hear heavy droning fade out.")) active = FALSE log_game("[src] was deactivated by [key_name(user)] at [AREACOORD(src)]") else - user.visible_message("[user] turned \the [src] on.", \ - "You turn on \the [src].", \ - "You hear heavy droning.") + user.visible_message(span_notice("[user] turned \the [src] on."), span_notice("ou turn on \the [src]."), span_hear("ou hear heavy droning.")) active = ACTIVE_SETUPFIELDS log_game("[src] was activated by [key_name(user)] at [AREACOORD(src)]") add_fingerprint(user) @@ -435,28 +429,28 @@ if(!powernet) return if(active) - visible_message("The [src.name] hums as it powers down.", \ + visible_message(span_notice("The [src.name] hums as it powers down."), \ "If this message is ever seen, something is wrong.", \ - "You hear heavy droning fade out.") + span_notice("You hear heavy droning fade out.")) playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = 6120) active = FALSE log_game("[src] was deactivated by wire pulse at [AREACOORD(src)]") else - visible_message("The [src.name] beeps as it powers up.", \ + visible_message(span_notice("The [src.name] beeps as it powers up."), \ "If this message is ever seen, something is wrong.", \ - "You hear heavy droning.") + span_notice("You hear heavy droning.")) playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, frequency = 6120) active = ACTIVE_SETUPFIELDS log_game("[src] was activated by wire pulse at [AREACOORD(src)]") /obj/machinery/power/shieldwallgen/emag_act(mob/user) if(obj_flags & EMAGGED) - to_chat(user, "The access controller is damaged!") + to_chat(user, span_warning("The access controller is damaged!")) return obj_flags |= EMAGGED locked = FALSE playsound(src, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - to_chat(user, "You short out the access controller.") + to_chat(user, span_warning("You short out the access controller.")) /obj/machinery/power/shieldwallgen/proc/shock(mob/user, prb) if(machine_stat & (BROKEN|NOPOWER)) // unpowered, no shock @@ -511,10 +505,31 @@ /obj/machinery/power/shieldwallgen/atmos/proc/can_be_rotated(mob/user, rotation_type) if (anchored) - to_chat(user, "It is fastened to the floor!") + to_chat(user, span_warning("It is fastened to the floor!")) return FALSE return TRUE +/obj/machinery/power/shieldwallgen/atmos/attacked_by(obj/item/I, mob/living/user) + if(I.tool_behaviour == TOOL_MULTITOOL) + var/obj/item/multitool/multi = I + if(!panel_open && !locked) + if(istype(multi.buffer,/obj/item/assembly/control/shieldwallgen)) + var/obj/item/assembly/control/shieldwallgen/controller = multi.buffer + to_chat(user, span_notice("You copy the ID in your multitool's buffer to the [src].")) + id = controller.id + return TRUE + + else + to_chat(user, span_warning("The controls are locked!")) + return + + return ..() + +/obj/machinery/power/shieldwallgen/atmos/multitool_act(mob/living/user, obj/item/I) + . = ..() + + + /// Same as in the normal shieldwallgen, but with the shieldwalls replaced with atmos shieldwalls /obj/machinery/power/shieldwallgen/atmos/setup_field(direction) if(!direction) @@ -586,7 +601,7 @@ setDir(get_dir(gen_primary, gen_secondary)) if(hardshield == TRUE) for(var/mob/living/victim in get_turf(src)) - visible_message("\The [src] is suddenly occupying the same space as \the [victim]!") + visible_message(span_danger("\The [src] is suddenly occupying the same space as \the [victim]!")) victim.gib() /obj/machinery/shieldwall/Destroy() diff --git a/code/game/machinery/shuttle/ship_gravity.dm b/code/game/machinery/shuttle/ship_gravity.dm index bfcf937f341a..4f63c60d7824 100644 --- a/code/game/machinery/shuttle/ship_gravity.dm +++ b/code/game/machinery/shuttle/ship_gravity.dm @@ -9,8 +9,8 @@ icon_state = "shipgrav" base_icon_state = "shipgrav" density = TRUE - idle_power_usage = 10 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_EXTREME circuit = /obj/item/circuitboard/machine/ship_gravity var/charging = FALSE var/active = FALSE diff --git a/code/game/machinery/shuttle/shuttle_engine_types.dm b/code/game/machinery/shuttle/shuttle_engine_types.dm index e5e3d812c098..de9992e106d1 100644 --- a/code/game/machinery/shuttle/shuttle_engine_types.dm +++ b/code/game/machinery/shuttle/shuttle_engine_types.dm @@ -29,7 +29,7 @@ if(heat_creation) heat_engine() var/to_use = fuel_use * (percentage / 100) * deltatime - return resolved_heater.consume_fuel(to_use, fuel_type) / to_use * thrust //This proc returns how much was actually burned, so let's use that and multiply it by the thrust to get all the thrust we CAN give. + return resolved_heater.consume_fuel(to_use, fuel_type) / to_use * percentage / 100 * thrust //This proc returns how much was actually burned, so let's use that and multiply it by the thrust to get all the thrust we CAN give. /obj/machinery/power/shuttle/engine/fueled/return_fuel() . = ..() diff --git a/code/game/machinery/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm index 94735ba4ab25..8578e3fb5a23 100644 --- a/code/game/machinery/shuttle/shuttle_heater.dm +++ b/code/game/machinery/shuttle/shuttle_heater.dm @@ -16,7 +16,7 @@ icon_state = "heater_pipe" var/icon_state_closed = "heater_pipe" var/icon_state_open = "heater_pipe_open" - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/shuttle/heater density = TRUE @@ -25,7 +25,7 @@ layer = OBJ_LAYER showpipe = TRUE - pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY + pipe_flags = PIPING_ONE_PER_TURF var/efficiency_multiplier = 1 var/gas_capacity = 0 @@ -34,6 +34,13 @@ ///The internals tank to draw from var/obj/item/tank/fuel_tank +/obj/machinery/atmospherics/components/unary/shuttle/heater/on_construction(obj_color, set_layer) + var/obj/item/circuitboard/machine/shuttle/heater/board = circuit + if(board) + piping_layer = board.pipe_layer + set_layer = piping_layer + ..() + /obj/machinery/atmospherics/components/unary/shuttle/heater/New() . = ..() SetInitDirections() diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 0ae88638d5b3..2038612c2791 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -22,7 +22,7 @@ base_icon_state = "slots" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/computer/slot_machine light_color = LIGHT_COLOR_BROWN unique_icon = TRUE diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index 37e079715dcd..2582c57da903 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -9,8 +9,8 @@ can_buckle = TRUE buckle_lying = 90 circuit = /obj/item/circuitboard/machine/stasis - idle_power_usage = 40 - active_power_usage = 340 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH var/stasis_enabled = TRUE var/last_stasis_sound = FALSE var/stasis_can_toggle = 0 @@ -112,12 +112,12 @@ playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 2, frequency = freq) target.apply_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) target.ExtinguishMob() - use_power = ACTIVE_POWER_USE + set_active_power() /obj/machinery/stasis/proc/thaw_them(mob/living/target) target.remove_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) if(target == occupant) - use_power = IDLE_POWER_USE + set_idle_power() /obj/machinery/stasis/post_buckle_mob(mob/living/L) if(!can_be_occupant(L)) diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 1e402ee02e5a..9e1b5b28690b 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -22,7 +22,7 @@ icon_state = "frame" density = FALSE use_power = IDLE_POWER_USE - idle_power_usage = 10 + idle_power_usage = IDLE_DRAW_MINIMAL maptext_height = 26 maptext_width = 32 diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index e86d4ae9f0f9..7db02250ce94 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -1,3 +1,5 @@ +#define BASE_UV_CYCLES 7 + // SUIT STORAGE UNIT ///////////////// /obj/machinery/suit_storage_unit name = "suit storage unit" @@ -6,7 +8,10 @@ icon_state = "ssu_classic" base_icon_state = "ssu_classic" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL max_integrity = 250 + circuit = /obj/item/circuitboard/machine/suit_storage_unit var/obj/item/clothing/suit/space/suit = null var/obj/item/clothing/head/helmet/space/helmet = null @@ -40,7 +45,9 @@ */ var/uv_super = FALSE /// How many cycles remain for the decontamination sequence. - var/uv_cycles = 6 + var/uv_cycles = 7 + /// Time reduction from stock parts + var/lasers_bonus = 0 /// Cooldown for occupant breakout messages via relaymove() var/message_cooldown /// How long it takes to break out of the SSU. @@ -191,6 +198,19 @@ storage = new storage_type(src) update_appearance() +/obj/machinery/suit_storage_unit/examine(mob/user) + . = ..() + . += span_notice("Number of UV cycles reduced by [lasers_bonus].") + if(locked) + . += span_notice("The locking bolts on \the [src] are engaged, preventing it from being pried open.") + +/obj/machinery/suit_storage_unit/RefreshParts() + lasers_bonus = 0 + for(var/obj/item/stock_parts/micro_laser/lasers in component_parts) + lasers_bonus += ((lasers.rating) * 0.25) + + uv_cycles = BASE_UV_CYCLES - lasers_bonus + /obj/machinery/suit_storage_unit/Destroy() QDEL_NULL(suit) QDEL_NULL(helmet) @@ -250,7 +270,15 @@ if(!(flags_1 & NODECONSTRUCT_1)) open_machine() dump_contents() - new /obj/item/stack/sheet/metal (loc, 2) + on_deconstruction() + if(circuit) + circuit.forceMove(loc) + circuit = null + if(length(component_parts)) + spawn_frame(disassembled) + for(var/obj/item/I in component_parts) + I.forceMove(loc) + component_parts.Cut() qdel(src) /obj/machinery/suit_storage_unit/interact(mob/living/user) @@ -318,7 +346,7 @@ else if (occupant) var/mob/living/mob_occupant = occupant - to_chat(mob_occupant, "[src]'s confines grow warm, then hot, then scorching. You're being burned [!mob_occupant.stat ? "alive" : "away"]!") + to_chat(mob_occupant, span_userdanger("[src]'s confines grow warm, then hot, then scorching. You're being burned [!mob_occupant.stat ? "alive" : "away"]!")) cook() if ("lock", "unlock") if (!state_open) @@ -364,27 +392,27 @@ return var/mob/living/target = A if(!state_open) - to_chat(user, "The unit's doors are shut!") + to_chat(user, span_warning("The unit's doors are shut!")) return if(!is_operational) - to_chat(user, "The unit is not operational!") + to_chat(user, span_warning("The unit is not operational!")) return if(occupant || helmet || suit || storage) - to_chat(user, "It's too cluttered inside to fit in!") + to_chat(user, span_warning("It's too cluttered inside to fit in!")) return if(target == user) - user.visible_message("[user] starts squeezing into [src]!", "You start working your way into [src]...") + user.visible_message(span_warning("[user] starts squeezing into [src]!"), span_notice("You start working your way into [src]...")) else - target.visible_message("[user] starts shoving [target] into [src]!", "[user] starts shoving you into [src]!") + target.visible_message(span_warning("[user] starts shoving [target] into [src]!"), span_userdanger("[user] starts shoving you into [src]!")) - if(do_mob(user, target, 30)) + if(do_after(user, 30, target)) if(occupant || helmet || suit || storage) return if(target == user) - user.visible_message("[user] slips into [src] and closes the door behind [user.p_them()]!", "You slip into [src]'s cramped space and shut its door.") + user.visible_message(span_warning("[user] slips into [src] and closes the door behind [user.p_them()]!"), span_notice("You slip into [src]'s cramped space and shut its door.")) else - target.visible_message("[user] pushes [target] into [src] and shuts its door!", "[user] shoves you into [src] and shuts the door!") + target.visible_message(span_warning("[user] pushes [target] into [src] and shuts its door!"), span_userdanger("[user] shoves you into [src] and shuts the door!")) close_machine(target) add_fingerprint(user) @@ -398,11 +426,12 @@ */ /obj/machinery/suit_storage_unit/proc/cook() var/mob/living/mob_occupant = occupant - if(uv_cycles) + if(uv_cycles > 0) uv_cycles-- uv = TRUE locked = TRUE update_appearance() + use_power(ACTIVE_DRAW_HIGH) if(occupant) if(uv_super) mob_occupant.adjustFireLoss(rand(20, 36)) @@ -411,11 +440,11 @@ mob_occupant.emote("scream") addtimer(CALLBACK(src, PROC_REF(cook)), 50) else - uv_cycles = initial(uv_cycles) + uv_cycles = (BASE_UV_CYCLES - lasers_bonus) uv = FALSE locked = FALSE if(uv_super) - visible_message("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber.") + visible_message(span_warning("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber.")) playsound(src, 'sound/machines/creaking.ogg', 50, TRUE) helmet = null qdel(helmet) @@ -429,9 +458,9 @@ wires.cut_all() else if(!occupant) - visible_message("[src]'s door slides open. The glowing yellow lights dim to a gentle green.") + visible_message(span_notice("[src]'s door slides open. The glowing yellow lights dim to a gentle green.")) else - visible_message("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.") + visible_message(span_warning("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.")) mob_occupant.radiation = 0 playsound(src, 'sound/machines/airlocks/standard/close.ogg', 25, TRUE) var/list/things_to_clear = list() //Done this way since using GetAllContents on the SSU itself would include circuitry and such. @@ -469,7 +498,7 @@ if(locked) if(message_cooldown <= world.time) message_cooldown = world.time + 50 - to_chat(user, "[src]'s door won't budge!") + to_chat(user, span_warning("[src]'s door won't budge!")) return open_machine() dump_contents() @@ -481,21 +510,21 @@ return user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT - user.visible_message("You see [user] kicking against the doors of [src]!", \ - "You start kicking against the doors... (this will take about [DisplayTimeText(breakout_time)].)", \ - "You hear a thump from [src].") + user.visible_message(span_notice("You see [user] kicking against the doors of [src]!"), \ + span_notice("You start kicking against the doors... (this will take about [DisplayTimeText(breakout_time)].)"), \ + span_hear("You hear a thump from [src].")) if(do_after(user,(breakout_time), target = src)) if(!user || user.stat != CONSCIOUS || user.loc != src) return - user.visible_message("[user] successfully broke out of [src]!", \ - "You successfully break out of [src]!") + user.visible_message(span_warning("[user] successfully broke out of [src]!"), \ + span_notice("You successfully break out of [src]!")) open_machine() dump_contents() add_fingerprint(user) if(locked) - visible_message("You see [user] kicking against the doors of [src]!", \ - "You start kicking against the doors...") + visible_message(span_notice("You see [user] kicking against the doors of [src]!"), \ + span_notice("You start kicking against the doors...")) addtimer(CALLBACK(src, PROC_REF(resist_open), user), 300) else open_machine() @@ -503,42 +532,42 @@ /obj/machinery/suit_storage_unit/proc/resist_open(mob/user) if(!state_open && occupant && (user in src) && user.stat == 0) // Check they're still here. - visible_message("You see [user] burst out of [src]!", \ - "You escape the cramped confines of [src]!") + visible_message(span_notice("You see [user] burst out of [src]!"), \ + span_notice("You escape the cramped confines of [src]!")) open_machine() /obj/machinery/suit_storage_unit/attackby(obj/item/I, mob/user, params) if(state_open && is_operational) if(istype(I, /obj/item/clothing/suit)) if(suit) - to_chat(user, "The unit already contains a suit!.") + to_chat(user, span_warning("The unit already contains a suit!.")) return if(!user.transferItemToLoc(I, src)) return suit = I else if(istype(I, /obj/item/clothing/head)) if(helmet) - to_chat(user, "The unit already contains a helmet!") + to_chat(user, span_warning("The unit already contains a helmet!")) return if(!user.transferItemToLoc(I, src)) return helmet = I else if(istype(I, /obj/item/clothing/mask)) if(mask) - to_chat(user, "The unit already contains a mask!") + to_chat(user, span_warning("The unit already contains a mask!")) return if(!user.transferItemToLoc(I, src)) return mask = I else if(storage) - to_chat(user, "The auxiliary storage compartment is full!") + to_chat(user, span_warning("The auxiliary storage compartment is full!")) return if(!user.transferItemToLoc(I, src)) return storage = I - visible_message("[user] inserts [I] into [src]", "You load [I] into [src].") + visible_message(span_notice("[user] inserts [I] into [src]"), span_notice("You load [I] into [src].")) update_appearance() return @@ -561,7 +590,7 @@ */ /obj/machinery/suit_storage_unit/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/I) if(!(flags_1 & NODECONSTRUCT_1) && I.tool_behaviour == TOOL_SCREWDRIVER && uv) - to_chat(user, "It might not be wise to fiddle with [src] while it's running...") + to_chat(user, span_warning("It might not be wise to fiddle with [src] while it's running...")) return TRUE return ..() @@ -570,8 +599,12 @@ . = !(state_open || panel_open || is_operational || locked || (flags_1 & NODECONSTRUCT_1)) && I.tool_behaviour == TOOL_CROWBAR if(.) I.play_tool_sound(src, 50) - visible_message("[usr] pries open \the [src].", "You pry open \the [src].") + visible_message(span_notice("[usr] pries open \the [src]."), span_notice("You pry open \the [src].")) open_machine() + // todo, make it not deconstruct while locked + if(!locked) + if(default_deconstruction_crowbar(I)) + return TRUE // Mapping helper unit takes whatever lies on top of it /obj/machinery/suit_storage_unit/inherit/Initialize(mapload) @@ -596,3 +629,6 @@ AM.forceMove(src) storage = AM update_appearance() + + +#undef BASE_UV_CYCLES diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm index f9cbc692e050..2a12e6bcf937 100644 --- a/code/game/machinery/telecomms/machines/broadcaster.dm +++ b/code/game/machinery/telecomms/machines/broadcaster.dm @@ -14,7 +14,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages desc = "A dish-shaped machine used to broadcast processed subspace signals." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 25 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/broadcaster /obj/machinery/telecomms/broadcaster/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from) diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm index 2496ee41c874..6428456d1614 100644 --- a/code/game/machinery/telecomms/machines/bus.dm +++ b/code/game/machinery/telecomms/machines/bus.dm @@ -14,7 +14,7 @@ desc = "A mighty piece of hardware used to send massive amounts of data quickly." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL netspeed = 40 circuit = /obj/item/circuitboard/machine/telecomms/bus var/change_frequency = 0 diff --git a/code/game/machinery/telecomms/machines/hub.dm b/code/game/machinery/telecomms/machines/hub.dm index dedf7c7f3a77..a01225b4f4fd 100644 --- a/code/game/machinery/telecomms/machines/hub.dm +++ b/code/game/machinery/telecomms/machines/hub.dm @@ -14,7 +14,7 @@ desc = "A mighty piece of hardware used to send/receive massive amounts of data." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 80 + idle_power_usage = IDLE_DRAW_MINIMAL long_range_link = TRUE netspeed = 40 circuit = /obj/item/circuitboard/machine/telecomms/hub diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm index d11067c290fd..d9f927a7c355 100644 --- a/code/game/machinery/telecomms/machines/message_server.dm +++ b/code/game/machinery/telecomms/machines/message_server.dm @@ -12,8 +12,8 @@ name = "Blackbox Recorder" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70) var/obj/item/stored @@ -80,8 +80,8 @@ desc = "A machine that processes and routes PDA and request console messages." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/message_server var/list/datum/data_pda_msg/pda_msgs = list() diff --git a/code/game/machinery/telecomms/machines/processor.dm b/code/game/machinery/telecomms/machines/processor.dm index 86bc02438d95..6c13ee65d510 100644 --- a/code/game/machinery/telecomms/machines/processor.dm +++ b/code/game/machinery/telecomms/machines/processor.dm @@ -12,7 +12,7 @@ desc = "This machine is used to process large quantities of information." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 30 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/processor var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm index 79b989648d55..33b0bc7028ec 100644 --- a/code/game/machinery/telecomms/machines/receiver.dm +++ b/code/game/machinery/telecomms/machines/receiver.dm @@ -12,7 +12,7 @@ desc = "This machine has a dish-like shape and green lights. It is designed to detect and process subspace radio activity." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 30 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/receiver /obj/machinery/telecomms/receiver/receive_signal(datum/signal/subspace/signal) diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm index ffaeda72e26d..763c42dbbf9c 100644 --- a/code/game/machinery/telecomms/machines/relay.dm +++ b/code/game/machinery/telecomms/machines/relay.dm @@ -12,7 +12,7 @@ desc = "A mighty piece of hardware used to send massive amounts of data far away." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 30 + idle_power_usage = IDLE_DRAW_MINIMAL netspeed = 5 long_range_link = 1 circuit = /obj/item/circuitboard/machine/telecomms/relay diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm index 664d45b5b1c1..5607b6bbec8c 100644 --- a/code/game/machinery/telecomms/machines/server.dm +++ b/code/game/machinery/telecomms/machines/server.dm @@ -11,7 +11,7 @@ desc = "A machine used to store data and network statistics." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 15 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/server var/list/log_entries = list() var/totaltraffic = 0 // gigabytes (if > 1024, divide by 1024 -> terrabytes) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 6e0551b25d41..1a342f0554cd 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -9,8 +9,8 @@ icon_state = "tele0" base_icon_state = "tele" use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 2000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH circuit = /obj/item/circuitboard/machine/teleporter_hub var/accuracy = 0 var/obj/machinery/teleport/station/power_station @@ -106,8 +106,8 @@ icon_state = "controller" base_icon_state = "controller" use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 2000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH circuit = /obj/item/circuitboard/machine/teleporter_station var/engaged = FALSE var/obj/machinery/computer/teleporter/teleporter_console diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm index 63d308f69558..3882fe8d5a6f 100644 --- a/code/game/mecha/equipment/mecha_equipment.dm +++ b/code/game/mecha/equipment/mecha_equipment.dm @@ -101,13 +101,13 @@ chassis.use_power(energy_drain) addtimer(CALLBACK(src, PROC_REF(set_ready_state), 1), equip_cooldown) -/obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(atom/target) +/obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(atom/target, mob/user, interaction_key) if(!chassis) return var/C = chassis.loc set_ready_state(0) chassis.use_power(energy_drain) - . = do_after(chassis.occupant, equip_cooldown, target=target) + . = do_after(user, equip_cooldown, target=target, interaction_key = interaction_key) set_ready_state(1) if(!chassis || chassis.loc != C || src != chassis.selected || !(get_dir(chassis, target)&chassis.dir)) return 0 diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 6a36a0ee01d6..17e3fc0116b8 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -306,8 +306,8 @@ mechsyringe.forceMove(get_turf(chassis)) reagents.trans_to(mechsyringe, min(mechsyringe.volume, reagents.total_volume), transfered_by = chassis.occupant) syringes -= mechsyringe - mechsyringe.icon = 'icons/obj/chemical.dmi' - mechsyringe.icon_state = "syringeproj" + mechsyringe.icon = 'icons/obj/chemical/misc.dmi' + mechsyringe.icon_state = "potgreen" playsound(chassis, 'sound/items/syringeproj.ogg', 50, TRUE) log_message("Launched [mechsyringe] from [src], targeting [target].", LOG_MECHA) var/mob/originaloccupant = chassis.occupant diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 6814f0cc2e7f..83a2c4861c90 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -5,8 +5,8 @@ desc = "Nothing is being built." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 20 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH req_access = list(ACCESS_ROBOTICS) circuit = /obj/item/circuitboard/machine/mechfab var/time_coeff = 1 @@ -196,10 +196,10 @@ rmat.silo_log(src, "built", -1, "[D.name]", res_coef) add_overlay("fab-active") - use_power = ACTIVE_POWER_USE + set_active_power() updateUsrDialog() sleep(get_construction_time_w_coeff(D)) - use_power = IDLE_POWER_USE + set_idle_power() cut_overlay("fab-active") desc = initial(desc) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index d2c712d32ea8..88c2ca721da2 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -831,7 +831,7 @@ //An actual AI (simple_animal mecha pilot) entering the mech -/obj/mecha/proc/aimob_enter_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob) +/obj/mecha/proc/aimob_enter_mech(mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/pilot_mob) if(pilot_mob && pilot_mob.Adjacent(src)) if(occupant) return @@ -841,7 +841,7 @@ pilot_mob.forceMove(src) GrantActions(pilot_mob)//needed for checks, and incase a badmin puts somebody in the mob -/obj/mecha/proc/aimob_exit_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob) +/obj/mecha/proc/aimob_exit_mech(mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/pilot_mob) if(occupant == pilot_mob) occupant = null if(pilot_mob.mecha == src) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 42c32e04fa98..fbe90058fc3e 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -210,7 +210,7 @@ M.visible_message("[user] starts buckling [M] to [src]!",\ "[user] starts buckling you to [src]!",\ "You hear metal clanking.") - if(!do_after(user, 2 SECONDS, TRUE, M)) + if(!do_after(user, 2 SECONDS, M)) return FALSE // Sanity check before we attempt to buckle. Is everything still in a kosher state for buckling after the 3 seconds have elapsed? diff --git a/code/game/objects/effects/anomalies/anomalies_hallucination.dm b/code/game/objects/effects/anomalies/anomalies_hallucination.dm index fc7e4e3c9859..ab859a3b3215 100644 --- a/code/game/objects/effects/anomalies/anomalies_hallucination.dm +++ b/code/game/objects/effects/anomalies/anomalies_hallucination.dm @@ -28,7 +28,7 @@ /obj/effect/anomaly/hallucination/proc/hallucination_pulse(turf/open/location, effectrange) for(var/mob/living/carbon/human/user in view(location, effectrange)) // If they are immune to the anomaly - if (iscarbon(user) && !user.research_scanner) + if (user.research_scanner) continue // Blind people don't get hallucinations. diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm index a00babe5844a..ab574ee475dd 100644 --- a/code/game/objects/effects/anomalies/anomalies_static.dm +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -39,19 +39,19 @@ playsound(src, 'sound/effects/walkietalkie.ogg', 75) if(stored_mob && looking.stat != DEAD && prob(25)) say_fucky_things() - if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD || !HAS_TRAIT(looking, TRAIT_DEAF)) - looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) - playsound(src, 'sound/effects/stall.ogg', 50) - if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) - if(prob(20)) - var/mob/living/carbon/victim = looking - var/obj/effect/anomaly/tvstatic/planetary/expansion - expansion = new(get_turf(victim)) - visible_message(span_warning("The static overtakes [victim], taking their place!")) - victim.death() - expansion.stored_mob = victim - victim.forceMove(expansion) - return + if(HAS_TRAIT(looking, TRAIT_MINDSHIELD) || looking.stat == DEAD || looking.research_scanner || HAS_TRAIT(looking, TRAIT_DEAF)) + continue + looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) + playsound(src, 'sound/effects/stall.ogg', 50) + if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) + if(prob(20)) + var/mob/living/carbon/victim = looking + var/obj/effect/anomaly/tvstatic/planetary/expansion + expansion = new(get_turf(victim)) + visible_message(span_warning("The static overtakes [victim], [expansion] taking their place!")) + victim.death() + expansion.stored_mob = victim + victim.forceMove(expansion) /obj/effect/anomaly/tvstatic/Bumped(atom/movable/AM) diff --git a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm index f56bebfc7ba0..eb9fb026e958 100644 --- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm +++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm @@ -138,6 +138,8 @@ TURF_DECAL_COLOR_HELPER(opaque/grey, COLOR_FLOORTILE_GRAY, 255) TURF_DECAL_COLOR_HELPER(opaque/lightgrey, "#a8b2b6", 255) TURF_DECAL_COLOR_HELPER(opaque/bottlegreen, "#57967f", 255) TURF_DECAL_COLOR_HELPER(opaque/ntblue, "#283674", 255) +TURF_DECAL_COLOR_HELPER(opaque/nsorange, "#FF6600", 255) +TURF_DECAL_COLOR_HELPER(opaque/vired, "#d40000", 255) TURF_DECAL_COLOR_HELPER(opaque/solgovblue, "#2d2a4e", 255) TURF_DECAL_COLOR_HELPER(opaque/solgovgold, "#eeac2e", 255) TURF_DECAL_COLOR_HELPER(opaque/syndiered, "#730622", 255) @@ -163,6 +165,8 @@ TURF_DECAL_COLOR_HELPER(transparent/grey, COLOR_FLOORTILE_GRAY, 140) TURF_DECAL_COLOR_HELPER(transparent/lightgrey, "#a8b2b6", 140) TURF_DECAL_COLOR_HELPER(transparent/bottlegreen, "#57967f", 140) TURF_DECAL_COLOR_HELPER(transparent/ntblue, "#283674", 140) +TURF_DECAL_COLOR_HELPER(transparent/nsorange, "#FF6600", 140) +TURF_DECAL_COLOR_HELPER(opaque/vired, "#d40000", 140) TURF_DECAL_COLOR_HELPER(transparent/solgovblue, "#2d2a4e", 140) TURF_DECAL_COLOR_HELPER(transparent/solgovgold, "#eeac2e", 140) TURF_DECAL_COLOR_HELPER(transparent/syndiered, "#730622", 140) @@ -797,6 +801,40 @@ TURF_DECAL_COLOR_HELPER(transparent/inteqbrown, "#4b2a18", 140) /obj/effect/turf_decal/solgov/all/bottom_right icon_state = "bottom-right-all" +/obj/effect/turf_decal/nanotrasen //placeholder for sorting these together, add 3x3 NT and Vigilitas logos later + icon = 'icons/obj/nanotrasen_floor.dmi' + icon_state = "NS-2x2" //also placeholder + +/obj/effect/turf_decal/nanotrasen/ns + icon_state = "NS-2x2" + +/obj/effect/turf_decal/nanotrasen/ns/top_left + icon_state = "NS-top-left" + +/obj/effect/turf_decal/nanotrasen/ns/top + icon_state = "NS-top-center" + +/obj/effect/turf_decal/nanotrasen/ns/top_right + icon_state = "NS-top-right" + +/obj/effect/turf_decal/nanotrasen/ns/center_left + icon_state = "NS-center-left" + +/obj/effect/turf_decal/nanotrasen/ns/center + icon_state = "NS-center" + +/obj/effect/turf_decal/nanotrasen/ns/center_right + icon_state = "NS-center-right" + +/obj/effect/turf_decal/nanotrasen/ns/bottom_left + icon_state = "NS-bottom-left" + +/obj/effect/turf_decal/nanotrasen/ns/bottom + icon_state = "NS-bottom-center" + +/obj/effect/turf_decal/nanotrasen/ns/bottom_right + icon_state = "NS-bottom-right" + /obj/effect/turf_decal/road name = "road decal" icon_state = "road" diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm index 19e7b1c957fa..edab392613f3 100644 --- a/code/game/objects/effects/spawners/bundle.dm +++ b/code/game/objects/effects/spawners/bundle.dm @@ -141,18 +141,6 @@ /obj/item/clothing/head/wizard/fake, /obj/item/staff) -/obj/effect/spawner/bundle/costume/sexyclown - name = "sexy clown costume spawner" - items = list( - /obj/item/clothing/mask/gas/sexyclown, - /obj/item/clothing/under/rank/civilian/clown/sexy) - -/obj/effect/spawner/bundle/costume/sexymime - name = "sexy mime costume spawner" - items = list( - /obj/item/clothing/mask/gas/sexymime, - /obj/item/clothing/under/rank/civilian/mime/sexy) - /obj/effect/spawner/bundle/costume/mafia name = "black mafia outfit spawner" items = list( diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 437aa7625d71..033307e5472f 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -22,7 +22,14 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb ///Icon file for right inhand overlays var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' - var/supports_variations = null //This is a bitfield that defines what variations exist for bodyparts like Digi legs. + ///This is a bitfield that defines what variations exist for bodyparts like Digi legs. + var/supports_variations = null + + ///If set, kepori wearing this use this instead of their clothing file + var/kepoi_override_icon + + ///If set, vox wearing this use this instead of their clothing file + var/vox_override_icon /// Needs to follow this syntax: either a list() with the x and y coordinates of the pixel you want to get the colour from, or a hexcolour. Colour one replaces red, two replaces blue, and three replaces green in the icon state. var/list/greyscale_colors[3] @@ -69,8 +76,11 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb ///Whether or not we use stealthy audio levels for this item's attack sounds var/stealthy_audio = FALSE - ///How large is the object, used for stuff like whether it can fit in backpacks or not + /// Weight class for how much storage capacity it uses and how big it physically is meaning storages can't hold it if their maximum weight class isn't as high as it. var/w_class = WEIGHT_CLASS_NORMAL + /// Volume override for the item, otherwise automatically calculated from w_class. + var/w_volume + ///This is used to determine on which slots an item can fit. var/slot_flags = 0 pass_flags = PASSTABLE @@ -192,6 +202,10 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb var/canMouseDown = FALSE + //for setting world icons on the go + var/inventory_state + var/world_state + /obj/item/Initialize() if(attack_verb) @@ -381,7 +395,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if(grav > STANDARD_GRAVITY) var/grav_power = min(3,grav - STANDARD_GRAVITY) to_chat(user,"You start picking up [src]...") - if(!do_mob(user,src,30*grav_power)) + if(!do_after(user, 30*grav_power, src)) return @@ -508,12 +522,12 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/proc/equipped(mob/user, slot, initial = FALSE) SHOULD_CALL_PARENT(1) visual_equipped(user, slot, initial) - SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot) for(var/X in actions) var/datum/action/A = X if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot. A.Grant(user) item_flags |= IN_INVENTORY + SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot) if(!initial) if(equip_sound && (slot_flags & slot)) playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE) @@ -684,7 +698,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if (callback) //call the original callback . = callback.Invoke() item_flags &= ~IN_INVENTORY - if(!pixel_y && !pixel_x) + if(!pixel_y && !pixel_x && !(item_flags & NO_PIXEL_RANDOM_DROP)) pixel_x = rand(-8,8) pixel_y = rand(-8,8) @@ -699,6 +713,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/proc/get_belt_overlay() //Returns the icon used for overlaying the object on a belt return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', icon_state) +/obj/item/proc/get_helmet_overlay() // returns the icon for overlaying on a helmet + return mutable_appearance('icons/mob/clothing/helmet_overlays.dmi', icon_state) + /obj/item/proc/update_slot_icon() if(!ismob(loc)) return @@ -842,6 +859,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/MouseEntered(location, control, params) . = ..() + SEND_SIGNAL(src, COMSIG_ITEM_MOUSE_ENTER, location, control, params) if((item_flags & IN_INVENTORY || item_flags & IN_STORAGE) && usr.client.prefs.enable_tips && !QDELETED(src)) var/timedelay = usr.client.prefs.tip_delay/100 var/user = usr @@ -856,7 +874,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb . = ..() remove_outline() -/obj/item/MouseExited() +/obj/item/MouseExited(location,control,params) + SEND_SIGNAL(src, COMSIG_ITEM_MOUSE_EXIT, location, control, params) deltimer(tip_timer)//delete any in-progress timer if the mouse is moved off the item before it finishes closeToolTip(usr) remove_outline() @@ -907,7 +926,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb var/datum/callback/tool_check = CALLBACK(src, PROC_REF(tool_check_callback), user, amount, extra_checks) if(ismob(target)) - if(!do_mob(user, target, delay, extra_checks=tool_check)) + if(!do_after(user, delay, target, extra_checks=tool_check)) return else @@ -979,6 +998,11 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb dropped(M, FALSE) return ..() +/// Get an item's volume that it uses when being stored. +/obj/item/proc/get_w_volume() + // if w_volume is 0 you fucked up. + return w_volume || AUTO_SCALE_VOLUME(w_class) + /obj/item/proc/embedded(mob/living/carbon/human/embedded_mob) return diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index f44359ca656c..31af53aa3fc7 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -104,7 +104,7 @@ var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, PROC_REF(check_menu), user, crayon), radius = 36, require_near = TRUE) if(!new_appearance) return FALSE - if(!do_after(user, 10, FALSE, src, TRUE)) + if(!do_after(user, 10, src, progress = TRUE)) return FALSE if(!check_menu(user, crayon)) return FALSE diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 2e93b662799a..9d5623498733 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -180,7 +180,18 @@ /obj/item/card/id/attack_self(mob/user) if(Adjacent(user)) - user.visible_message("[user] shows you: [icon2html(src, viewers(user))] \the [initial(name)] [(!registered_name) ? "(" : "([registered_name]"][(!assignment) ? ")" : ", [assignment])"].", "You show \the [initial(name)] [(!registered_name) ? "(" : "([registered_name],"] [(!assignment) ? ")" : "[assignment])"].") + var/id_message = "\the [initial(name)] " + var/list/id_info = list() + if(assignment) + id_info += "JOB: [assignment]" + if(registered_name) + id_info += "NAME: [registered_name]" + if(id_info) + id_message += id_info.Join(", ") + var/self_message = span_notice("You show [id_message]") + var/other_message = span_notice("[user] shows you: [icon2html(src, viewers(user))] [id_message]") + + user.visible_message(other_message, self_message) add_fingerprint(user) /obj/item/card/id/vv_edit_var(var_name, var_value) @@ -320,33 +331,42 @@ /obj/item/card/id/examine(mob/user) . = ..() - if(registered_account) - . += "The account linked to the card belongs to '[registered_account.account_holder]' and reports a balance of [registered_account.account_balance] cr." . += "There's more information below, you can look again to take a closer look..." /obj/item/card/id/examine_more(mob/user) var/list/msg = list("You examine [src] closer, and note the following...") if(registered_name) - msg += "This access card is assigned to [registered_name]." + msg += "NAME:" + msg += "[registered_name]" if(registered_age) - msg += "The card indicates that the holder is [registered_age] years old. [(registered_age < AGE_MINOR) ? "There's a holographic stripe that reads 'MINOR: DO NOT SERVE ALCOHOL OR TOBACCO' along the bottom of the card." : ""]" - if(mining_points) - msg += "There's [mining_points] mining equipment redemption point\s loaded onto this card." + msg += "AGE:" + msg += "[registered_age] years old [(registered_age < AGE_MINOR) ? "There's a holographic stripe that reads 'MINOR: DO NOT SERVE ALCOHOL OR TOBACCO' along the bottom of the card." : ""]" if(length(ship_access)) + msg += "SHIP ACCESS:" + + var/list/ship_factions = list() + for(var/datum/overmap/ship/controlled/ship in ship_access) + var/faction = ship.get_faction() + if(!(faction in ship_factions)) + ship_factions += faction + msg += "[ship_factions.Join(", ")]" + var/list/ship_names = list() for(var/datum/overmap/ship/controlled/ship in ship_access) ship_names += ship.name - msg += "The card has access to the following ships: [ship_names.Join(", ")]" + msg += "[ship_names.Join(", ")]" + if(registered_account) - msg += "The account linked to the ID belongs to '[registered_account.account_holder]' and reports a balance of [registered_account.account_balance] cr." - msg += "Alt-Click the ID to pull money from the linked account in the form of holochips." - msg += "You can insert credits into the linked account by pressing holochips, cash, or coins against the ID." + msg += "ACCOUNT:" + msg += "LINKED ACCOUNT HOLDER: '[registered_account.account_holder]'" + msg += "BALANCE: [registered_account.account_balance] cr." + msg += "Alt-click the ID to pull money from the account in the form of holochips." + msg += "You can insert credits into the account by pressing holochips, cash, or coins against the ID." if(registered_account.account_holder == user.real_name) - msg += "If you lose this ID card, you can reclaim your account by Alt-Clicking a blank ID card while holding it and entering your account ID number." + msg += "If you lose this ID card, you can reclaim your account by Alt-click a blank ID card and entering your account ID number." else - msg += "There is no registered account linked to this card. Alt-Click to add one." - + msg += "There is no registered account. Alt-click to add one." return msg /obj/item/card/id/GetAccess() diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 6a5fa6e70a12..4fbe06343ae5 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -201,8 +201,19 @@ name = "Circulator/Heat Exchanger (Machine Board)" icon_state = "engineering" build_path = /obj/machinery/atmospherics/components/binary/circulator + var/pipe_layer = PIPING_LAYER_DEFAULT req_components = list() +/obj/item/circuitboard/machine/circulator/attackby(obj/item/I, mob/user, params) + if(I.tool_behaviour == TOOL_MULTITOOL) + pipe_layer = (pipe_layer >= PIPING_LAYER_MAX) ? PIPING_LAYER_MIN : (pipe_layer + 1) + to_chat(user, "You change the circuitboard to layer [pipe_layer].") + return + +/obj/item/circuitboard/machine/circulator/examine() + . = ..() + . += "It is set to layer [pipe_layer]." + /obj/item/circuitboard/machine/emitter name = "Emitter (Machine Board)" icon_state = "engineering" @@ -1470,10 +1481,22 @@ /obj/item/circuitboard/machine/shuttle/heater name = "Fueled Engine Heater (Machine Board)" + desc = "You can use mulitool to switch pipe layers" build_path = /obj/machinery/atmospherics/components/unary/shuttle/heater + var/pipe_layer = PIPING_LAYER_DEFAULT req_components = list(/obj/item/stock_parts/micro_laser = 2, /obj/item/stock_parts/matter_bin = 1) +/obj/item/circuitboard/machine/shuttle/heater/attackby(obj/item/I, mob/user, params) + if(I.tool_behaviour == TOOL_MULTITOOL) + pipe_layer = (pipe_layer >= PIPING_LAYER_MAX) ? PIPING_LAYER_MIN : (pipe_layer + 1) + to_chat(user, "You change the circuitboard to layer [pipe_layer].") + return + +/obj/item/circuitboard/machine/shuttle/heater/examine() + . = ..() + . += "It is set to layer [pipe_layer]." + /obj/item/circuitboard/machine/shuttle/smes name = "Electric Engine Precharger (Machine Board)" build_path = /obj/machinery/power/smes/shuttle @@ -1501,22 +1524,8 @@ /obj/item/stock_parts/manipulator = 2, ) -/obj/item/circuitboard/machine/coffeemaker - name = "Modello 3 Coffeemaker" - build_path = /obj/machinery/coffeemaker - req_components = list( - /obj/item/stack/sheet/glass = 1, - /obj/item/reagent_containers/glass/beaker = 2, - /obj/item/stock_parts/capacitor = 1, - /obj/item/stock_parts/micro_laser = 2, - ) - -/obj/item/circuitboard/machine/coffeemaker/impressa - name = "Impressa Coffeemaker" - build_path = /obj/machinery/coffeemaker/impressa - req_components = list( - /obj/item/stack/sheet/glass = 1, - /obj/item/reagent_containers/glass/beaker = 2, - /obj/item/stock_parts/capacitor = 1, - /obj/item/stock_parts/micro_laser = 2, - ) +/obj/item/circuitboard/machine/suit_storage_unit + name = "Suit Storage Unit" + icon_state = "engineering" + build_path = /obj/machinery/suit_storage_unit + req_components = list(/obj/item/stock_parts/micro_laser = 4) diff --git a/code/game/objects/items/devices/mines.dm b/code/game/objects/items/devices/mines.dm index 112e26e1303b..1772cbf497c3 100644 --- a/code/game/objects/items/devices/mines.dm +++ b/code/game/objects/items/devices/mines.dm @@ -212,11 +212,8 @@ SIGNAL_HANDLER if(!can_trigger(arrived)) return - // Flying = can't step on a mine - if(arrived.movement_type & FLYING) - return - //no cheap disarming - if(arrived.throwing && isitem(arrived)) + // All other movment types rn can easily avoid it + if(!(arrived.movement_type == GROUND)) return // Someone already on it if(foot_on_mine?.resolve()) @@ -257,6 +254,10 @@ clicked = FALSE . = ..() +/obj/item/mine/pressure/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + trigger_mine(AM) + ..() + //handles disarming(and failing to disarm) /obj/item/mine/pressure/attackby(obj/item/I, mob/user) if(I.tool_behaviour == TOOL_SCREWDRIVER) diff --git a/code/game/objects/items/devices/portable_chem_mixer.dm b/code/game/objects/items/devices/portable_chem_mixer.dm index fa777fec1124..1964e2dbd04a 100644 --- a/code/game/objects/items/devices/portable_chem_mixer.dm +++ b/code/game/objects/items/devices/portable_chem_mixer.dm @@ -1,7 +1,7 @@ /obj/item/storage/portable_chem_mixer name = "Portable Chemical Mixer" desc = "A portable device that dispenses and mixes chemicals. Can be upgraded to hold more beakers by inserting a vortex anomaly core. All necessary reagents need to be supplied with beakers. A label indicates that a screwdriver is required to open it for refills. This device can be worn on a belt. The letters 'S&T' are imprinted on the side." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "portablechemicalmixer_open" w_class = WEIGHT_CLASS_HUGE slot_flags = ITEM_SLOT_BELT diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index 3a6ba2f73950..5b69cab9cc7b 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -10,6 +10,7 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 + item_flags = NO_PIXEL_RANDOM_DROP throwforce = 5 throw_speed = 1 throw_range = 2 diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index e44cf557b9a2..3afd539d4c97 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -22,6 +22,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( custom_materials = list(/datum/material/iron=75) subspace_transmission = TRUE headset = TRUE + listening = TRUE canhear_range = 0 // can't hear headsets from very far away slot_flags = ITEM_SLOT_EARS diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 2c7262139b17..944fe7462583 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/radio.dmi' icon_state = "intercom" anchored = TRUE + listening = TRUE w_class = WEIGHT_CLASS_BULKY canhear_range = 2 dog_fashion = null diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm index 34563d5e649c..1f78839ae40f 100644 --- a/code/game/objects/items/dna_injector.dm +++ b/code/game/objects/items/dna_injector.dm @@ -62,7 +62,7 @@ if(target != user) target.visible_message("[user] is trying to inject [target] with [src]!", \ "[user] is trying to inject you with [src]!") - if(!do_mob(user, target) || used) + if(!do_after(user, target = target) || used) return target.visible_message("[user] injects [target] with the syringe with [src]!", \ "[user] injects you with the syringe with [src]!") diff --git a/code/game/objects/items/dyekit.dm b/code/game/objects/items/dyekit.dm index 2cbfbca6332b..86c6e90a3290 100644 --- a/code/game/objects/items/dyekit.dm +++ b/code/game/objects/items/dyekit.dm @@ -38,3 +38,30 @@ return playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 5) human_target.update_hair() + +/obj/item/colorsalve + name = "Elzuose color salve" + desc = "A Kalixcian beauty product for Elzuose that comes in the form of a salve packaged with various color additives. Used to temporarily change the pigment color of light emitting cells in the skin, requiring an extensive amount of time to prepare and apply. Wears off after a few hours." + icon = 'icons/obj/dyespray.dmi' + icon_state = "colorsalve" + +/obj/item/colorsalve/attack_self(mob/living/user) + if(!iselzuose(user)) + return + + var/mob/living/carbon/human/H = user + var/datum/species/elzuose/species_datum = H.dna.species + // select new color + var/new_etherealcolor = input(user, "Choose your Elzuose color:", "Character Preference", species_datum.default_color) as color|null + if(new_etherealcolor) + var/temp_hsv = RGBtoHSV(new_etherealcolor) + if(ReadHSV(temp_hsv)[3] >= ReadHSV("#505050")[3]) // elzu colors should be bright ok?? + if(!do_after(usr, 30 SECONDS, user)) + return + playsound(src, 'sound/effects/ointment.ogg', 5, TRUE, 5) + species_datum.default_color = sanitize_hexcolor(new_etherealcolor, 6, TRUE) + species_datum.current_color = species_datum.health_adjusted_color(user, species_datum.default_color) + species_datum.spec_updatehealth(user) + user.visible_message(span_notice("[user] applies the salve, changing [user.p_their()] color to [new_etherealcolor]")) + else + to_chat(user, span_danger("Invalid color. Your color is not bright enough.")) diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 111dd3aa96bc..1396521aaf9a 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -59,7 +59,7 @@ shaking = TRUE start_shaking(user) - if(do_after(user, shake_time, needhand=TRUE, target=user, progress=TRUE)) + if(do_after(user, shake_time, target=user)) var/answer = get_answer() say(answer) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 496fc07288ec..9fece4feedd4 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -57,7 +57,8 @@ "[user] is trying to put [src.name] on you!") playsound(loc, cuffsound, 30, TRUE, -2) - if(do_mob(user, C, 30) && C.canBeHandcuffed()) + log_combat(user, C, "attempted to handcuff") + if(do_after(user, 3 SECONDS, C) && C.canBeHandcuffed()) if(iscyborg(user)) apply_cuffs(C, user, TRUE) else @@ -272,6 +273,11 @@ update_appearance() playsound(src, 'sound/effects/snap.ogg', 50, TRUE) +/obj/item/restraints/legcuffs/beartrap/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + if(armed) + close_trap() + ..() + /obj/item/restraints/legcuffs/beartrap/proc/on_entered(datum/source, AM as mob|obj) SIGNAL_HANDLER if(armed && isturf(loc)) diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index cd01cef70503..872d81323cf3 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -671,33 +671,6 @@ lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' -/obj/item/nullrod/tribal_knife - icon_state = "crysknife" - item_state = "crysknife" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - name = "arrhythmic knife" - w_class = WEIGHT_CLASS_HUGE - desc = "They say fear is the true mind killer, but stabbing them in the head works too. Honour compels you to not sheathe it once drawn." - sharpness = IS_SHARP - slot_flags = null - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - item_flags = SLOWS_WHILE_IN_HAND - -/obj/item/nullrod/tribal_knife/Initialize(mapload) - . = ..() - START_PROCESSING(SSobj, src) - AddComponent(/datum/component/butchering, 50, 100) - -/obj/item/nullrod/tribal_knife/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/nullrod/tribal_knife/process() - slowdown = rand(-2, 2) - - /obj/item/nullrod/pitchfork icon_state = "pitchfork0" lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index 5b8db550a87d..6de461954cb2 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -27,7 +27,7 @@ M.visible_message("[user] is attempting to implant [M].") var/turf/T = get_turf(M) - if(T && (M == user || do_mob(user, M, 50))) + if(T && (M == user || do_after(user, 5 SECONDS, M))) if(src && imp) if(imp.implant(M, user)) if (M == user) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 2732e0d37719..c8c9a0f96b96 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -66,10 +66,13 @@ /obj/item/kitchen/knife name = "kitchen knife" - icon_state = "knife" - item_state = "knife" + icon = 'icons/obj/item/knife.dmi' + lefthand_file = 'icons/mob/inhands/weapons/knifes_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/knifes_righthand.dmi' + icon_state = "kitchenknife" + item_state = "kitchenknife" desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." - pickup_sound = 'sound/items/handling/knife1_pickup.ogg' + pickup_sound = 'sound/items/handling/knife1_pickup.ogg' drop_sound = 'sound/items/handling/knife3_drop.ogg' flags_1 = CONDUCT_1 force = 10 @@ -97,7 +100,6 @@ /obj/item/kitchen/knife/plastic name = "plastic knife" icon_state = "plastic_knife" - item_state = "knife" desc = "A very safe, barely sharp knife made of plastic. Good for cutting food and not much else." force = 0 w_class = WEIGHT_CLASS_TINY @@ -155,8 +157,8 @@ /obj/item/kitchen/knife/butcher name = "butcher's cleaver" - icon_state = "butch" - item_state = "butch" + icon_state = "cleaver" + item_state = "cleaver" desc = "A huge thing used for chopping and chopping up meat." flags_1 = CONDUCT_1 force = 15 @@ -177,7 +179,9 @@ /obj/item/kitchen/knife/combat name = "combat knife" - icon_state = "buckknife" + icon = 'icons/obj/world/melee.dmi' + icon_state = "combatknife" + item_state = "combatknife" desc = "A military combat utility survival knife." embedding = list("pain_mult" = 4, "embed_chance" = 65, "fall_chance" = 10, "ignore_throwspeed_threshold" = TRUE) force = 20 @@ -185,9 +189,14 @@ attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") bayonet = TRUE +/obj/item/kitchen/knife/combat/Initialize() + . = ..() + AddElement(/datum/element/world_icon, null, icon, 'icons/obj/kitchen.dmi') + /obj/item/kitchen/knife/combat/survival name = "survival knife" icon_state = "survivalknife" + item_state = "survivalknife" embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10) desc = "A hunting grade survival knife." force = 15 diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index 693858bf1b2e..05af8fcadbad 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -256,8 +256,8 @@ -

Trickwines for idiots

- Okay, so you just joined the SRM and you want to make some brews! I'm tired of explaining all of this so I'm jotting it all down for you clowns.
+

Trickwines for brewers

+ Okay, so you just joined the SRM and you want to make some brews! I'm tired of explaining all of this so I'm jotting it all down for the new hires.
Trickwines almost all share the same effect. When you drink them, they provide a beneficial effect and when you toss them at someone it provides some sort of bad effect.

Breakaway flasks

Honestly, I love these things. I'm not a scientist so I cant exactly explain how it works but somehow when you fuse plasma into glass it makes it ultra sharp and makes it really good for cracking over fauna heads.
@@ -273,22 +273,27 @@ Soon it will drops some apples and you can grind them for the bacteria.
Once you have enough you can fabricate it the same way you would a normal barrel.
+

Ratios

+ A common trend among Trickwines is the ratio of 3:1:1.
+ 3 parts being an ethonal, the other 2 parts are often made from flora or fauna.
+

Ashwine

- It's kind of our trademark, and it's one of the simplest trickwines to make. The Montagnes love using this stuff in ceremonies as well so it should get you some good boy points.
+ It's kind of our trademark, and it's one of the simplest trickwines to make.
+ These are the most common wines used in ceremonies so we often stock ships with the moonflowers needed to make them.
It's made with a ratio of 3:1:1 absinthe, mushroom hallucinogen, and ash respectively.
Mushroom hallucinogens come from mushroom caps and you can ferment absinthe from moonflowers.
Its a mild hallucinogenic but seems to have powerful cleansing effects on the devoted SRM.
It can also really fuck someone up, causing their vision to go shaky and blurry which makes it difficult for them to fight.

Icewine

- This one helps stopping foes in their tracks. It's also got a nice taste. + This one helps stopping foes in their tracks. One of my favorite flavor wise. Its made with 3:1:1 saké, polar bear fur, frost oil(grind chilled peppers).
You can get polar bear fur and frost oil from grinding up polar bear hides and chilled peppers.
It's pretty good at sealing burns and lowering your temperature quickly.
However, it completely encases foes in ice and drops their temperature substantially.

Shockwine

- Easily my favorite, this thing is great at scorching most fauna.
+ Easily my favorite for its splashed effect, this thing is great at scorching most fauna.
Its made with vodka, calcium, and lemon juice.
If you did not know, vodka requires enzymes instead of the normal fermenting process.
It's a nice upper. Great if you're trying to run away.
@@ -301,15 +306,18 @@ Its made out of ground up fireblossems with some nice hard cider and a bit of welding fuel with of course a ratio of 3:1:1.

Forcewine

- I once had a duel with a wizard and and I was able to completly ignore a few of his spells! Its like they just fizzled out when they hit me.
- Would recomend for any esoteric senarios even though I have only been in a few of those.
- You can also use it to entrap Fauna inside of a forcefield like bubble, Gives you time to breath and laugh at them.
- 3:1:1 Tequila, Space Montain Wind, and I know its strange but hollow water, Its that stuff you can extract from geysers
+ Two intresting effects from the consumption of Forcewine.
+ First it seems to give you an "anti magic" effect, I have read about of tales of how it fizzled out some sort of great curse that we could best trace back to a ancient cult.
+ Second is it protects the mind from cohersion and mind control.
+ From my research this seems to act like nanotrasen mindshield implants.
+ Would recomend for any esoteric senarios. We wont see these alot but its always smart to prepare for the worst.
+ You can also use it to entrap Fauna inside of a forcefield like bubble, Gives you time to breath and prepare an attack.
+ 3:1:1. Tequila, Space Montain Wind, and I know its one of the most difficult things to come by but hollow water, Its that stuff you can extract from geysers

Prismwine

Gives you a nice shiny layer of armour, fire seems to have alot harder time sticking to me when i tested it.
Throwing it seeems to do the reverse acting like a magnifying glass to burns and lasers
- Made 3:1:1 with good ol Gin, then add plasma and tinea luxor which is found from mushroom stems
+ 3:1:1. Good ol Gin, then add plasma and tinea luxor which is found from mushroom stems
Some of these can be a bit situatinal but its always nice to have a few in your bag for emergecys.
As a bonus, most of the other factions have no clue how to make these so you can sell them for a fair chunk of cash.
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index d9311f5e2b43..a08b1398aad8 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -165,7 +165,7 @@ user.visible_message("[user] starts loading [target] into [src].", \ "You start loading [target] into [src]...", null, null, target) to_chat(target, "[user] starts loading you into [user.p_their()] [name]!") - if(!do_mob(user, target, 30)) + if(!do_after(user, 3 SECONDS, target)) return if(target in occupants) return diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm index 5d6b409e8d32..473bcd945c58 100644 --- a/code/game/objects/items/puzzle_pieces.dm +++ b/code/game/objects/items/puzzle_pieces.dm @@ -1,6 +1,6 @@ //************** -//*****Keys******************* -//************** ** ** +//*****Keys***** +//************** /obj/item/keycard name = "security keycard" desc = "This feels like it belongs to a door." diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index 0ba32f33099a..e2507dfb911b 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -87,14 +87,6 @@ /obj/item/banner/security/mundane inspiration_available = FALSE -/datum/crafting_recipe/security_banner - name = "Securistan Banner" - result = /obj/item/banner/security/mundane - time = 40 - reqs = list(/obj/item/stack/rods = 2, - /obj/item/clothing/under/rank/security/officer = 1) - category = CAT_MISC - /obj/item/banner/medical name = "meditopia banner" desc = "The banner of Meditopia, generous benefactors that cure wounds and shelter the weak." @@ -111,14 +103,6 @@ /obj/item/banner/medical/check_inspiration(mob/living/carbon/human/H) return H.stat //Meditopia is moved to help those in need -/datum/crafting_recipe/medical_banner - name = "Meditopia Banner" - result = /obj/item/banner/medical/mundane - time = 40 - reqs = list(/obj/item/stack/rods = 2, - /obj/item/clothing/under/rank/medical = 1) - category = CAT_MISC - /obj/item/banner/medical/special_inspiration(mob/living/carbon/human/H) H.adjustToxLoss(-15) H.setOxyLoss(0) @@ -140,14 +124,6 @@ /obj/item/banner/science/check_inspiration(mob/living/carbon/human/H) return H.on_fire //Sciencia is pleased by dedication to the art of Toxins -/datum/crafting_recipe/science_banner - name = "Sciencia Banner" - result = /obj/item/banner/science/mundane - time = 40 - reqs = list(/obj/item/stack/rods = 2, - /obj/item/clothing/under/rank/rnd/scientist = 1) - category = CAT_MISC - /obj/item/banner/cargo name = "cargonia banner" desc = "The banner of the eternal Cargonia, with the mystical power of conjuring any object into existence." @@ -161,14 +137,6 @@ /obj/item/banner/cargo/mundane inspiration_available = FALSE -/datum/crafting_recipe/cargo_banner - name = "Cargonia Banner" - result = /obj/item/banner/cargo/mundane - time = 40 - reqs = list(/obj/item/stack/rods = 2, - /obj/item/clothing/under/rank/cargo/tech = 1) - category = CAT_MISC - /obj/item/banner/engineering name = "engitopia banner" desc = "The banner of Engitopia, wielders of limitless power." @@ -185,14 +153,6 @@ /obj/item/banner/engineering/special_inspiration(mob/living/carbon/human/H) H.radiation = 0 -/datum/crafting_recipe/engineering_banner - name = "Engitopia Banner" - result = /obj/item/banner/engineering/mundane - time = 40 - reqs = list(/obj/item/stack/rods = 2, - /obj/item/clothing/under/rank/engineering/engineer = 1) - category = CAT_MISC - /obj/item/banner/command name = "command banner" desc = "The banner of Command, a staunch and ancient line of bueraucratic kings and queens." @@ -206,14 +166,6 @@ /obj/item/banner/command/check_inspiration(mob/living/carbon/human/H) return HAS_TRAIT(H, TRAIT_MINDSHIELD) //Command is stalwart but rewards their allies. -/datum/crafting_recipe/command_banner - name = "Command Banner" - result = /obj/item/banner/command/mundane - time = 40 - reqs = list(/obj/item/stack/rods = 2, - /obj/item/clothing/under/rank/command/captain/parade = 1) - category = CAT_MISC - /obj/item/banner/red name = "red banner" icon_state = "banner-red" diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 32d923eef985..ca3b1e184168 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -31,17 +31,17 @@ return if(target == user) playsound(src, islist(apply_sounds) ? pick(apply_sounds) : apply_sounds, 25) - if(!do_mob(user, target, self_delay, extra_checks=CALLBACK(target, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) - return if(!silent) user.visible_message("[user] starts to apply \the [src] on [user.p_them()]self...", "You begin applying \the [src] on yourself...") + if(!do_after(user, self_delay, target, extra_checks=CALLBACK(target, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + return else if(other_delay) playsound(src, islist(apply_sounds) ? pick(apply_sounds) : apply_sounds, 25) - if(!do_mob(user, target, other_delay, extra_checks=CALLBACK(target, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) - return if(!silent) user.visible_message("[user] starts to apply \the [src] on [target].", "You begin applying \the [src] on [target]...") + if(!do_after(user, other_delay, target, extra_checks=CALLBACK(target, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + return if(heal(target, user)) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 200fc408768f..9fc6fa808a46 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -160,6 +160,9 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \ /obj/item/stack/sheet/mineral/uranium/twenty amount = 20 +/obj/item/stack/sheet/mineral/uranium/ten + amount = 10 + /obj/item/stack/sheet/mineral/uranium/five amount = 5 @@ -210,6 +213,9 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \ /obj/item/stack/sheet/mineral/plasma/twenty amount = 20 +/obj/item/stack/sheet/mineral/plasma/ten + amount = 10 + /obj/item/stack/sheet/mineral/plasma/five amount = 5 @@ -326,32 +332,6 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ /obj/item/stack/sheet/mineral/silver/five amount = 5 -/* - * Clown - */ -/obj/item/stack/sheet/mineral/bananium - name = "bananium" - icon_state = "sheet-bananium" - item_state = "sheet-bananium" - singular_name = "bananium sheet" - sheettype = "bananium" - custom_materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT) - - grind_results = list(/datum/reagent/consumable/banana = 20) - point_value = 50 - merge_type = /obj/item/stack/sheet/mineral/bananium - material_type = /datum/material/bananium - walltype = /turf/closed/wall/mineral/bananium - -GLOBAL_LIST_INIT(bananium_recipes, list ( \ - new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \ - new/datum/stack_recipe("Clown Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \ - )) - -/obj/item/stack/sheet/mineral/bananium/get_main_recipes() - . = ..() - . += GLOB.bananium_recipes - /* * Titanium */ @@ -430,7 +410,6 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \ . = ..() . += GLOB.plastitanium_recipes - /* * Snow */ @@ -459,56 +438,6 @@ GLOBAL_LIST_INIT(snow_recipes, list ( \ . = ..() . += GLOB.snow_recipes -/****************************** Others ****************************/ - -/* - * Adamantine -*/ - -/obj/item/stack/sheet/mineral/adamantine - name = "adamantine" - icon_state = "sheet-adamantine" - item_state = "sheet-adamantine" - singular_name = "adamantine sheet" - custom_materials = list(/datum/material/adamantine=MINERAL_MATERIAL_AMOUNT) - merge_type = /obj/item/stack/sheet/mineral/adamantine - grind_results = list(/datum/reagent/liquidadamantine = 10) - -/obj/item/stack/sheet/mineral/adamantine/ten - amount = 10 - -/* - * Runite - */ - -/obj/item/stack/sheet/mineral/runite - name = "runite" - desc = "Rare material found in distant lands." - singular_name = "runite bar" - icon_state = "sheet-runite" - item_state = "sheet-runite" - custom_materials = list(/datum/material/runite=MINERAL_MATERIAL_AMOUNT) - merge_type = /obj/item/stack/sheet/mineral/runite - material_type = /datum/material/runite - -/obj/item/stack/sheet/mineral/runite/ten - amount = 10 - -/* - * Mythril - */ -/obj/item/stack/sheet/mineral/mythril - name = "mythril" - icon_state = "sheet-mythril" - item_state = "sheet-mythril" - singular_name = "mythril sheet" - novariants = TRUE - custom_materials = list(/datum/material/mythril=MINERAL_MATERIAL_AMOUNT) - merge_type = /obj/item/stack/sheet/mineral/mythril - -/obj/item/stack/sheet/mineral/mythril/ten - amount = 10 - /* * Alien Alloy */ @@ -567,3 +496,35 @@ GLOBAL_LIST_INIT(abductor_recipes, list ( \ /obj/item/stack/sheet/mineral/coal/ten amount = 10 + +/* + * Hellstone + */ +/obj/item/stack/sheet/mineral/hidden + name = "????????" + singular_name = "????????" + +/obj/item/stack/sheet/mineral/hidden/hellstone + name = "hellstone" + icon_state = "sheet-hellstone" + item_state = "sheet-hellstone" + singular_name = "hellstone bar" + sheettype = "hellstone" + resistance_flags = FIRE_PROOF | LAVA_PROOF + custom_materials = list(/datum/material/hellstone=MINERAL_MATERIAL_AMOUNT) + grind_results = list(/datum/reagent/clf3 = 5) + point_value = 20 + merge_type = /obj/item/stack/sheet/mineral/hidden/hellstone + material_type = /datum/material/hellstone + +/obj/item/stack/sheet/mineral/hidden/hellstone/fifty + amount = 50 + +/obj/item/stack/sheet/mineral/hidden/hellstone/twenty + amount = 20 + +/obj/item/stack/sheet/mineral/hidden/hellstone/ten + amount = 10 + +/obj/item/stack/sheet/mineral/hidden/hellstone/five + amount = 5 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index a80ca9008401..ead6b8aeb8f1 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -31,10 +31,6 @@ tableVariant = /obj/structure/table material_type = /datum/material/iron -/obj/item/stack/sheet/metal/narsie_act() - new /obj/item/stack/sheet/runed_metal(loc, amount) - qdel(src) - /obj/item/stack/sheet/metal/fifty amount = 50 @@ -145,6 +141,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("loom", /obj/structure/loom, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("mortar", /obj/item/reagent_containers/glass/mortar, 3), \ new/datum/stack_recipe("firebrand", /obj/item/match/firebrand, 2, time = 100), \ + new/datum/stack_recipe("torch", /obj/item/candle/tribal_torch, 4, time = 30), \ null, \ new/datum/stack_recipe_list("pews", list( new /datum/stack_recipe("pew (middle)", /obj/structure/chair/pew, 3, one_per_turf = TRUE, on_floor = TRUE), @@ -224,9 +221,9 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \ force = 0 throwforce = 0 merge_type = /obj/item/stack/sheet/cotton - var/pull_effort = 30 - var/loom_result = /obj/item/stack/sheet/cotton/cloth grind_results = list(/datum/reagent/cellulose = 20) + var/pull_effort = 10 + var/loom_result = /obj/item/stack/sheet/cotton/cloth GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("white jumpskirt", /obj/item/clothing/under/color/jumpskirt/white, 3), /*Ladies first*/ \ @@ -248,6 +245,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("rag", /obj/item/reagent_containers/glass/rag, 1), \ new/datum/stack_recipe("towel", /obj/item/towel, 2), \ new/datum/stack_recipe("bedsheet", /obj/item/bedsheet, 3), \ + new/datum/stack_recipe("double bedsheet", /obj/item/bedsheet/double, 4), \ new/datum/stack_recipe("empty sandbag", /obj/item/emptysandbag, 4), \ null, \ new/datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1), \ @@ -341,7 +339,6 @@ GLOBAL_LIST_INIT(durathread_recipes, list ( \ singular_name = "raw durathread ball" icon_state = "sheet-durathreadraw" merge_type = /obj/item/stack/sheet/cotton/durathread - pull_effort = 70 loom_result = /obj/item/stack/sheet/durathread grind_results = list() @@ -442,52 +439,6 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ else . = ..() - -/* - * Runed Metal - */ - -GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ - new/datum/stack_recipe("runed door", /obj/machinery/door/airlock/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("runed girder", /obj/structure/girder/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("pylon", /obj/structure/destructible/cult/pylon, 4, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("forge", /obj/structure/destructible/cult/forge, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("archives", /obj/structure/destructible/cult/tome, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("altar", /obj/structure/destructible/cult/talisman, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ - )) - -/obj/item/stack/sheet/runed_metal - name = "runed metal" - desc = "Sheets of cold metal with shifting inscriptions writ upon them." - singular_name = "runed metal sheet" - icon_state = "sheet-runed" - item_state = "sheet-runed" - icon = 'icons/obj/stack_objects.dmi' - custom_materials = list(/datum/material/runedmetal = MINERAL_MATERIAL_AMOUNT) - merge_type = /obj/item/stack/sheet/runed_metal - novariants = TRUE - grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15) - material_type = /datum/material/runedmetal - -/obj/item/stack/sheet/runed_metal/attack_self(mob/living/user) - if(!iscultist(user)) - to_chat(user, "Only one with forbidden knowledge could hope to work this metal...") - return FALSE - return ..() - -/obj/item/stack/sheet/runed_metal/get_main_recipes() - . = ..() - . += GLOB.runed_metal_recipes - -/obj/item/stack/sheet/runed_metal/fifty - amount = 50 - -/obj/item/stack/sheet/runed_metal/ten - amount = 10 - -/obj/item/stack/sheet/runed_metal/five - amount = 5 - /* * Bronze */ diff --git a/code/game/objects/items/stacks/tape.dm b/code/game/objects/items/stacks/tape.dm index d22b1be85344..6a984c021a26 100644 --- a/code/game/objects/items/stacks/tape.dm +++ b/code/game/objects/items/stacks/tape.dm @@ -114,7 +114,7 @@ return if(use(1)) playsound(loc, usesound, 30, TRUE, -2) - if(do_mob(user, C, other_delay) && (!C.is_mouth_covered() || !C.is_muzzled())) + if(do_after(user, other_delay, C) && (!C.is_mouth_covered() || !C.is_muzzled())) apply_gag(C, user) C.visible_message("[user] tapes [C]s mouth shut.", \ "[user] taped your mouth shut!") @@ -134,7 +134,7 @@ "[user] is trying to put [src.name] on you!") playsound(loc, usesound, 30, TRUE, -2) - if(do_mob(user, C, self_delay) && (C.canBeHandcuffed())) + if(do_after(user, self_delay, C) && (C.canBeHandcuffed())) apply_tapecuffs(C, user) C.visible_message("[user] tapecuffs [C].", \ "[user] tapecuffs you.") @@ -152,11 +152,11 @@ if(C == user) playsound(loc, usesound, 30, TRUE, -2) user.visible_message("[user] starts to apply \the [src] on [user.p_them()]self...", "You begin applying \the [src] on yourself...") - if(!do_mob(user, C, self_delay, extra_checks=CALLBACK(C, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + if(!do_after(user, self_delay, C, extra_checks=CALLBACK(C, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) return else if(other_delay) user.visible_message("[user] starts to apply \the [src] on [C].", "You begin applying \the [src] on [C]...") - if(!do_mob(user, C, other_delay, extra_checks=CALLBACK(C, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + if(!do_after(user, other_delay, C, extra_checks=CALLBACK(C, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) return if(heal(C, user)) diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm index c5e05b5212fc..ad00f3902c50 100644 --- a/code/game/objects/items/stacks/tiles/tile_mineral.dm +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -48,16 +48,6 @@ mineralType = "diamond" custom_materials = list(/datum/material/diamond=500) -/obj/item/stack/tile/mineral/bananium - name = "bananium tile" - singular_name = "bananium floor tile" - desc = "A tile made out of bananium, HOOOOOOOOONK!" - icon_state = "tile_bananium" - item_state = "tile-bananium" - turf_type = /turf/open/floor/mineral/bananium - mineralType = "bananium" - custom_materials = list(/datum/material/bananium=500) - /obj/item/stack/tile/mineral/abductor name = "alien floor tile" singular_name = "alien floor tile" diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index e1d8aa7a1f10..f8bb97d3a411 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -20,7 +20,7 @@ righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' pickup_sound = "rustle" drop_sound = "rustle" - w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_HUGE slot_flags = ITEM_SLOT_BACK //ERROOOOO resistance_flags = NONE max_integrity = 300 @@ -31,9 +31,9 @@ /obj/item/storage/backpack/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_combined_w_class = 21 - STR.max_w_class = WEIGHT_CLASS_NORMAL - STR.max_items = 21 + STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + STR.max_volume = STORAGE_VOLUME_BACKPACK + STR.max_w_class = MAX_WEIGHT_CLASS_BACKPACK STR.use_sound = 'sound/items/storage/unzip.ogg' /* @@ -58,9 +58,8 @@ /obj/item/storage/backpack/holding/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.allow_big_nesting = TRUE - STR.max_w_class = WEIGHT_CLASS_GIGANTIC - STR.max_combined_w_class = 35 + STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + STR.max_volume = STORAGE_VOLUME_BAG_OF_HOLDING /obj/item/storage/backpack/santabag name = "Santa's Gift Bag" @@ -218,6 +217,12 @@ greyscale_colors = list(list(11, 12), list(17, 18), list(10, 11)) supports_variations = VOX_VARIATION +/obj/item/storage/backpack/satchel/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_volume = STORAGE_VOLUME_BACKPACK + STR.max_w_class = MAX_WEIGHT_CLASS_M_CONTAINER + /obj/item/storage/backpack/satchel/leather name = "leather satchel" desc = "It's a very fancy satchel made with fine leather." @@ -427,11 +432,13 @@ item_state = "duffel" slowdown = 1 greyscale_colors = list(list(21, 11), list(14, 19), list(15, 16)) + w_class = WEIGHT_CLASS_HUGE /obj/item/storage/backpack/duffelbag/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_combined_w_class = 30 + STR.max_volume = STORAGE_VOLUME_DUFFLEBAG + STR.max_w_class = MAX_WEIGHT_CLASS_DUFFEL LAZYINITLIST(STR.exception_hold) // This code allows you to fit one mob holder into a duffel bag STR.exception_hold += typecacheof(/obj/item/clothing/head/mob_holder) diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index dc3d2deff0ba..ecee3894ccbb 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -45,10 +45,12 @@ /obj/item/storage/bag/trash/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_w_class = WEIGHT_CLASS_SMALL - STR.max_combined_w_class = 30 - STR.max_items = 30 + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 50 + STR.max_items = 50 STR.set_holdable(null, list(/obj/item/disk/nuclear)) + STR.limited_random_access = TRUE + STR.limited_random_access_stack_position = 3 /obj/item/storage/bag/trash/update_icon_state() switch(contents.len) @@ -83,8 +85,9 @@ /obj/item/storage/bag/trash/bluespace/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_combined_w_class = 60 - STR.max_items = 60 + STR.max_combined_w_class = 75 + STR.max_items = 75 + STR.max_w_class = WEIGHT_CLASS_BULKY /obj/item/storage/bag/trash/bluespace/cyborg insertable = FALSE diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index d6ef29b86233..c578c318e73a 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -10,7 +10,7 @@ attack_verb = list("whipped", "lashed", "disciplined") max_integrity = 300 equip_sound = 'sound/items/equip/toolbelt_equip.ogg' - w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_NORMAL var/content_overlays = FALSE //If this is true, the belt will gain overlays based on what it's holding supports_variations = VOX_VARIATION greyscale_icon_state = "belt" @@ -270,7 +270,15 @@ /obj/item/assembly/flash/handheld, /obj/item/clothing/glasses, /obj/item/ammo_casing/shotgun, - /obj/item/ammo_box, + /obj/item/ammo_box/magazine, + /obj/item/ammo_box/c38, //speed loaders don't have a common path like magazines. pain. + /obj/item/ammo_box/a357, //some day we should refactor these into an ammo_box/speedloader type + /obj/item/ammo_box/a4570, //but not today + /obj/item/ammo_box/a858, //oh boy stripper clips too + /obj/item/ammo_box/vickland_a308, + /obj/item/ammo_box/a300, + /obj/item/ammo_box/aac_300blk_stripper, + /obj/item/ammo_box/amagpellet_claris, //that's the last of the clips /obj/item/reagent_containers/food/snacks/donut, /obj/item/kitchen/knife/combat, /obj/item/flashlight/seclite, @@ -698,6 +706,7 @@ . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 40 + STR.max_combined_w_class = 40 STR.display_numerical_stacking = TRUE STR.set_holdable(list( /obj/item/ammo_casing diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index fb001b2eb56b..5b817cbba675 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -1370,10 +1370,10 @@ /obj/item/stack/sheet/mineral/uranium=20,\ /obj/item/stack/sheet/mineral/diamond=50,\ /obj/item/stack/sheet/bluespace_crystal=50,\ - /obj/item/stack/sheet/mineral/bananium=50,\ + /obj/item/stack/sheet/mineral/hidden/hellstone=50,\ /obj/item/stack/sheet/mineral/wood=50,\ /obj/item/stack/sheet/plastic/fifty=1,\ - /obj/item/stack/sheet/runed_metal/fifty=1 + /obj/item/stack/sheet/mineral/hidden/hellstone/fifty=1 ) generate_items_inside(items_inside,src) @@ -1520,53 +1520,3 @@ ) generate_items_inside(items_inside,src) -/obj/item/storage/box/coffeepack - icon_state = "arabica_beans" - name = "arabica beans" - desc = "A bag containing fresh, dry coffee arabica beans. Ethically sourced and packaged by Donk! Co." - illustration = null - icon = 'icons/obj/food/containers.dmi' - var/beantype = /obj/item/reagent_containers/food/snacks/grown/coffee - -/obj/item/storage/box/cofeepack/Initialize(mapload) - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 5 - STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/grown/coffee)) - -/obj/item/storage/box/coffeepack/PopulateContents() - var/static/items_inside = list( - /obj/item/reagent_containers/food/snacks/grown/coffee = 5, - /obj/item/reagent_containers/food/snacks/grown/coffee/robusta = 5) - generate_items_inside(items_inside,src) - -/obj/item/storage/box/coffeepack/robusta - icon_state = "robusta_beans" - name = "robusta beans" - desc = "A bag containing fresh, dry coffee robusta beans. Ethically sourced and packaged by Donk! Co." - beantype = /obj/item/reagent_containers/food/snacks/grown/coffee/robusta - - -/* - * Coffee condiments display -- someone can make this fancy eventually, i cant fucking figure it out for the life of me -- it exists in TG - */ - -/obj/item/storage/box/coffee_condi_display - name = "coffee condiments display" - desc = "A neat small box, holding all your favorite coffee condiments." - -/obj/item/storage/box/coffee_condi_display/Initialize(mapload) - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 14 - STR.set_holdable(list( - /obj/item/reagent_containers/food/condiment/pack/sugar, - /obj/item/reagent_containers/food/condiment/pack/creamer, - /obj/item/reagent_containers/food/condiment/pack/astrotame, - )) - -/obj/item/storage/box/coffee_condi_display/PopulateContents() - for(var/i in 1 to 4) - new /obj/item/reagent_containers/food/condiment/pack/sugar(src) - new /obj/item/reagent_containers/food/condiment/pack/creamer(src) - new /obj/item/reagent_containers/food/condiment/pack/astrotame(src) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 41f214998ffd..01307d92a0f8 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -163,7 +163,7 @@ //////////// /obj/item/storage/fancy/cigarettes name = "\improper Space Cigarettes packet" - desc = "The most popular brand of cigarettes, sponsors of the Space Olympics." + desc = "The most popular brand of cigarettes on the Frontier." icon = 'icons/obj/cigarettes.dmi' base_icon_state = "cig" icon_state = "cig" @@ -273,14 +273,14 @@ /obj/item/storage/fancy/cigarettes/cigpack_carp name = "\improper Carp Classic packet" - desc = "Since 2313." + desc = "Since 207 FS." icon_state = "carp" base_icon_state = "carp" spawn_type = /obj/item/clothing/mask/cigarette/carp /obj/item/storage/fancy/cigarettes/cigpack_syndicate name = "cigarette packet" - desc = "An obscure brand of cigarettes." + desc = "A semi-obscure brand of cigarettes, favored by interstellar miners." icon_state = "syndie" base_icon_state = "syndie" spawn_type = /obj/item/clothing/mask/cigarette/syndicate @@ -322,7 +322,7 @@ /obj/item/storage/fancy/cigarettes/cigpack_mindbreaker name = "\improper Leary's Delight packet" - desc = "Banned in over 36 galaxies." + desc = "Banned in over 36 Sectors." icon_state = "shadyjim" base_icon_state = "shadyjim" spawn_type = /obj/item/clothing/mask/cigarette/rollie/mindbreaker @@ -435,7 +435,7 @@ /obj/item/storage/fancy/cigarettes/cigars/havana name = "\improper premium Havanian cigar case" - desc = "A case of classy Havanian cigars." + desc = "Even after centuries of Solarian export, Havana smooth is only found in proper terran cigars." icon_state = "cohibacase" base_icon_state = "cohibacase" spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 4505f596907f..bac896c0b8d5 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -306,7 +306,7 @@ name = "pill bottle" desc = "It's an airtight container for storing medication." icon_state = "pill_canister" - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' item_state = "contsolid" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index c703aeb38a0d..87497a2a7562 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -10,7 +10,7 @@ throwforce = 12 throw_speed = 2 throw_range = 7 - w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_NORMAL custom_materials = list(/datum/material/iron = 500) attack_verb = list("robusted") hitsound = 'sound/weapons/smash.ogg' diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index e1ad81e21413..3265b36a3b41 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -300,8 +300,8 @@ preload_cell_type = /obj/item/stock_parts/cell/high /obj/item/melee/baton/boomerang - name = "\improper OZtek Boomerang" - desc = "A device invented in 2486 for the great Space Emu War by the confederacy of Australicus, these high-tech boomerangs also work exceptionally well at stunning crewmembers. Just be careful to catch it when thrown!" + name = "\improper baton boomerang" + desc = "Apparently, someone thought that attaching the stunning part of a baton to a boomerang was a good idea. Just be careful to catch it when thrown!" throw_speed = 1 icon_state = "boomerang" item_state = "boomerang" diff --git a/code/game/objects/items/survery_handheld.dm b/code/game/objects/items/survery_handheld.dm index 79523b574030..547bdc150237 100644 --- a/code/game/objects/items/survery_handheld.dm +++ b/code/game/objects/items/survery_handheld.dm @@ -51,7 +51,7 @@ src_turf.visible_message("Warning: unable to locate valuable information in current sector.") break - if(!do_after_mob(user, list(src), survey_delay / penalty)) + if(!do_after(user, list(src), survey_delay / penalty)) flick(icon_state + "-corrupted", src) playsound(src, 'sound/machines/buzz-sigh.ogg', 20) src_turf.visible_message("Warning: results corrupted. Please try again.") diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 361358892520..b1dfb479b66c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -562,7 +562,6 @@ var/datum/fakeDevil/devil = new var/list/messages = list() messages += "Some fun facts about: [devil.truename]" - messages += "[GLOB.lawlorify[LORE][devil.bane]]" messages += "[GLOB.lawlorify[LORE][devil.obligation]]" messages += "[GLOB.lawlorify[LORE][devil.ban]]" messages += "[GLOB.lawlorify[LORE][devil.banish]]" diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 69efcd42af15..971ba3cbedce 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -93,7 +93,7 @@ if(HAS_TRAIT(user, TRAIT_FREERUNNING)) //do you have any idea how fast I am??? adjusted_climb_time *= 0.8 structureclimber = user - if(do_mob(user, user, adjusted_climb_time)) + if(do_after(user, adjusted_climb_time)) if(src.loc) //Checking if structure has been destroyed if(do_climb(user)) user.visible_message("[user] climbs onto [src].", \ diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 417a1f8d86a6..714129498e4c 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -343,7 +343,7 @@ "You [actuallyismob ? "try to ":""]stuff [O] into [src].", \ "You hear clanging.") if(actuallyismob) - if(do_after_mob(user, targets, 40)) + if(do_after(user, 40, targets)) user.visible_message( "[user] stuffs [O] into [src].", \ "You stuff [O] into [src].", \ diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index a11e647a706d..f3aca3e96a98 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -5,11 +5,9 @@ /obj/structure/closet/secure_closet/engineering_chief/PopulateContents() ..() - //WS Begin new /obj/item/clothing/head/beret/ce(src) //Berets new /obj/item/clothing/under/rank/command(src) //Better command uniforms new /obj/item/stack/tape/industrial/pro(src) //Better tape - //WS End new /obj/item/clothing/neck/cloak/ce(src) new /obj/item/clothing/under/rank/engineering/chief_engineer(src) new /obj/item/clothing/under/rank/engineering/chief_engineer/skirt(src) @@ -40,9 +38,7 @@ /obj/structure/closet/secure_closet/engineering_electrical/PopulateContents() ..() var/static/items_inside = list( - //WS Begin /obj/item/stack/tape/industrial/electrical = 1, // Better tape - //WS End /obj/item/clothing/gloves/color/yellow = 2, /obj/item/storage/toolbox/electrical = 3, /obj/item/electronics/apc = 3, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index cfdcca348b14..6c01be326e7a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -79,13 +79,11 @@ /obj/structure/closet/secure_closet/CMO/PopulateContents() ..() - //WS Begin new /obj/item/storage/belt/medical(src) //Gives the CMO a belt new /obj/item/storage/bag/medical(src) //Medibags new /obj/item/clothing/head/beret/cmo(src) //Berets new /obj/item/clothing/under/rank/command(src) //Better command uniforms new /obj/item/storage/box/hypospray/CMO(src) //Hypo mk. 2s - //WS End new /obj/item/clothing/neck/cloak/cmo(src) new /obj/item/clothing/suit/bio_suit/cmo(src) new /obj/item/clothing/head/bio_hood/cmo(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 02e75f876d33..8ccc632dbac5 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -23,8 +23,6 @@ new /obj/item/clothing/under/rank/command/captain/skirt(src) new /obj/item/clothing/suit/armor/vest/capcarapace(src) new /obj/item/clothing/head/caphat(src) - new /obj/item/clothing/under/rank/command/captain/parade(src) - new /obj/item/clothing/suit/armor/vest/capcarapace/alt(src) new /obj/item/clothing/head/caphat/parade(src) new /obj/item/clothing/suit/armor/vest/capcarapace/captunic(src) new /obj/item/clothing/head/crown/fancy(src) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index ee9a29945aa0..fc0aae860782 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -105,7 +105,7 @@ /obj/item/stack/sheet/mineral/plasma, /obj/item/stack/sheet/mineral/uranium, /obj/item/stack/sheet/mineral/diamond, - /obj/item/stack/sheet/mineral/bananium, + /obj/item/stack/sheet/mineral/hidden/hellstone, /obj/item/stack/sheet/plasteel, /obj/item/stack/sheet/mineral/titanium, /obj/item/stack/sheet/mineral/plastitanium, diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm index 63d9b6552c16..cdd98f22196f 100644 --- a/code/game/objects/structures/crates_lockers/crates/secure.dm +++ b/code/game/objects/structures/crates_lockers/crates/secure.dm @@ -105,7 +105,7 @@ else ..() /obj/structure/closet/crate/secure/exo - desc = "A lock-enabled crate used to carry EXOCON merchandise destined for export to potential buyers." - name = "EXOCON storage crate" + desc = "A lock-enabled crate used to carry EXOCOM merchandise destined for export to potential buyers." + name = "EXOCOM storage crate" icon = 'icons/obj/crates.dmi' icon_state = "exocrate" diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm index 2558993a5278..d2bcf77cfda7 100644 --- a/code/game/objects/structures/door_assembly_types.dm +++ b/code/game/objects/structures/door_assembly_types.dm @@ -214,14 +214,6 @@ mineral = "plasma" glass_type = /obj/machinery/door/airlock/plasma/glass -/obj/structure/door_assembly/door_assembly_bananium - name = "bananium airlock assembly" - desc = "Honk." - icon = 'icons/obj/doors/airlocks/station/bananium.dmi' - base_name = "bananium airlock" - airlock_type = /obj/machinery/door/airlock/bananium - mineral = "bananium" - glass_type = /obj/machinery/door/airlock/bananium/glass /obj/structure/door_assembly/door_assembly_sandstone name = "sandstone airlock assembly" diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index a0097504c1d3..d5a8c3e496c1 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -269,19 +269,6 @@ if(exposed_temperature > 300) burnbabyburn() -/obj/structure/falsewall/bananium - name = "bananium wall" - desc = "A wall with bananium plating. Honk!" - icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium_wall-0" - base_icon_state = "bananium_wall" - mineral = /obj/item/stack/sheet/mineral/bananium - walltype = /turf/closed/wall/mineral/bananium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) - - /obj/structure/falsewall/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 25822d69ff00..6463282eb6df 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -364,7 +364,7 @@ add_fingerprint(user) if(istype(W, /obj/item/melee/cultblade/dagger) && iscultist(user)) //Cultists can demolish cult girders instantly with their tomes user.visible_message("[user] strikes [src] with [W]!", "You demolish [src].") - new /obj/item/stack/sheet/runed_metal(drop_location(), 1) + new /obj/item/stack/sheet/mineral/hidden/hellstone(drop_location(), 1) qdel(src) else if(W.tool_behaviour == TOOL_WELDER) @@ -374,19 +374,19 @@ to_chat(user, "You start slicing apart the girder...") if(W.use_tool(src, user, 40, volume=50)) to_chat(user, "You slice apart the girder.") - var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 1) + var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 1) transfer_fingerprints_to(R) qdel(src) else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) to_chat(user, "Your jackhammer smashes through the girder!") - var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 2) + var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 2) transfer_fingerprints_to(R) W.play_tool_sound(src) qdel(src) - else if(istype(W, /obj/item/stack/sheet/runed_metal)) - var/obj/item/stack/sheet/runed_metal/R = W + else if(istype(W, /obj/item/stack/sheet/mineral/hidden/hellstone)) + var/obj/item/stack/sheet/mineral/hidden/hellstone/R = W if(R.get_amount() < 1) to_chat(user, "You need at least one sheet of runed metal to construct a runed wall!") return 0 @@ -408,7 +408,7 @@ /obj/structure/girder/cult/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/sheet/runed_metal(drop_location(), 1) + new /obj/item/stack/sheet/mineral/hidden/hellstone(drop_location(), 1) qdel(src) /obj/structure/girder/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm index 07ecef04afac..2a7a8c5f4a38 100644 --- a/code/game/objects/structures/icemoon/cave_entrance.dm +++ b/code/game/objects/structures/icemoon/cave_entrance.dm @@ -5,7 +5,6 @@ GLOBAL_LIST_INIT(ore_probability, list( /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/gold = 50, /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/bananium = 5, /obj/item/stack/ore/titanium = 75, /obj/item/pickaxe/diamond = 15, /obj/item/borg/upgrade/modkit/cooldown = 5, @@ -258,8 +257,7 @@ GLOBAL_LIST_INIT(ore_probability, list( new /mob/living/simple_animal/hostile/clown/fleshclown(loc) if(prob(25))//you lost new /obj/item/circlegame(loc) - new /obj/item/stack/sheet/mineral/bananium(loc) - new /turf/open/floor/mineral/bananium(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone(loc) if(2)//basic demonic incursion visible_message("You glimpse an indescribable abyss in the portal. Horrifying monsters appear in a gout of flame.") playsound(loc,'sound/hallucinations/wail.ogg', 200, FALSE, 50, TRUE, TRUE) @@ -312,18 +310,18 @@ GLOBAL_LIST_INIT(ore_probability, list( playsound(loc,'sound/ambience/ambiholy.ogg', 100, FALSE, 50, TRUE, TRUE) if(prob(30)) new /obj/item/reagent_containers/glass/bottle/potion/flight(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) + new /mob/living/simple_animal/hostile/human/skeleton/templar(loc) else new /obj/item/clothing/neck/memento_mori(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton/templar(loc) if(prob(35)) new /obj/item/storage/box/holy_grenades(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) + new /mob/living/simple_animal/hostile/human/skeleton/templar(loc) + new /mob/living/simple_animal/hostile/human/skeleton/templar(loc) if(prob(40)) new /obj/item/claymore(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) + new /mob/living/simple_animal/hostile/human/skeleton/templar(loc) if(prob(45)) new /obj/item/gun/ballistic/bow(loc) new /obj/item/storage/bag/quiver(loc) @@ -332,38 +330,38 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/ammo_casing/caseless/arrow/bronze(loc) new /obj/item/ammo_casing/caseless/arrow/bronze(loc) new /obj/item/ammo_casing/caseless/arrow/bronze(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton/templar(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) if(prob(30)) new /obj/item/stack/sheet/mineral/wood/fifty(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) if(prob(35)) new /obj/item/staff/bostaff(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) if(prob(45)) new /obj/item/disk/design_disk/adv/cleric_mace(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) if(prob(25)) new /obj/item/shield/riot/roman(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) if(prob(55)) new /obj/item/clothing/suit/armor/riot/knight/blue(loc) new /obj/item/clothing/head/helmet/knight/blue(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) if(prob(35)) new /obj/item/disk/design_disk/adv/knight_gear(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) + new /mob/living/simple_animal/hostile/human/skeleton(loc) new /obj/item/instrument/trombone(loc) new /obj/item/stack/sheet/bone(loc) new /obj/item/stack/sheet/bone(loc) new /obj/item/stack/sheet/bone(loc) new /obj/item/stack/sheet/bone(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) + new /mob/living/simple_animal/hostile/human/skeleton/templar(loc) new /turf/open/floor/mineral/silver(loc) if(4)//syndicate incursion. Again, high-quality loot at low chances, this time with excessive levels of danger visible_message("Radio chatter echoes out from the portal. Red-garbed figures step through, weapons raised.") @@ -372,74 +370,74 @@ GLOBAL_LIST_INIT(ore_probability, list( if(prob(35)) if(prob(15)) new /obj/item/clothing/suit/space/hardsuit/syndi/elite(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) else if(prob(50)) new /obj/item/clothing/suit/space/hardsuit/syndi(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) else new /obj/item/clothing/suit/space/hardsuit/syndi(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) if(prob(25))//the real prize new /obj/effect/spawner/lootdrop/donkpockets(loc) new /obj/effect/spawner/lootdrop/donkpockets(loc) new /obj/effect/spawner/lootdrop/donkpockets(loc) if(prob(35)) new /obj/item/clothing/shoes/magboots/syndie(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) if(prob(25)) new /obj/item/gun/ballistic/automatic/pistol/suppressed(loc) new /obj/item/ammo_box/magazine/ - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc) if(prob(25)) new /obj/item/gun/ballistic/automatic/pistol/tec9(loc) new /obj/item/ammo_box/magazine/tec9(loc) new /obj/item/ammo_box/magazine/tec9(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc) if(prob(35)) new /obj/item/clothing/gloves/rapid(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) if(prob(35)) new /obj/item/wrench/combat(loc) new /obj/item/storage/toolbox/syndicate(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword/space(loc) if(prob(35)) new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(loc) if(prob(35)) new /obj/item/borg/upgrade/transform/assault(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg(loc) if(prob(25)) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) if(prob(25)) - new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) if(prob(25)) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc) new /obj/item/storage/backpack/duffelbag/syndie/c4(loc) if(prob(35)) new /obj/item/storage/belt/military(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg(loc) if(prob(35)) new /obj/item/kinetic_crusher/syndie_crusher(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) if(prob(25)) new /obj/item/card/id/syndicate/anyone(loc) if(prob(35)) new /obj/item/clothing/glasses/thermal/syndi(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc) if(prob(35)) new /obj/item/reagent_containers/hypospray(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/shotgun(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc) if(prob(25)) new /obj/item/card/emag(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword(loc) + new /mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space(loc) + new /mob/living/simple_animal/hostile/human/syndicate/melee/sword/space(loc) new /turf/open/floor/mineral/plastitanium/red(loc) if(5)//;HELP BLOB IN MEDICAL visible_message("You hear a robotic voice saying something about a \"Delta-level biohazard\".") @@ -618,19 +616,19 @@ GLOBAL_LIST_INIT(ore_probability, list( visible_message("You catch a brief glimpse of a vast production complex. One of the assembly lines outputs through the portal!") playsound(loc,'sound/ambience/antag/clockcultalr.ogg', 100, FALSE, 50, TRUE, TRUE) if(prob(45)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) new /mob/living/simple_animal/hostile/hivebot(loc) if(prob(35)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) new /mob/living/simple_animal/hostile/hivebot(loc) if(prob(25)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) new /mob/living/simple_animal/hostile/hivebot/strong(loc) if(prob(35)) new /obj/item/stack/sheet/mineral/silver/twenty(loc) @@ -665,9 +663,9 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/circuitboard/machine/ore_silo(loc) new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) if(prob(35)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) new /mob/living/simple_animal/hostile/hivebot/strong(loc) if(prob(35)) new /obj/item/circuitboard/machine/medipen_refiller(loc) @@ -838,7 +836,7 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/bedsheet/cult(loc) new /mob/living/simple_animal/hostile/construct/wraith/hostile(loc) if(prob(50)) - new /obj/item/stack/sheet/runed_metal/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) if(prob(35)) new /obj/item/sharpener/cult(loc) new /mob/living/simple_animal/hostile/construct/artificer/hostile(loc) @@ -979,46 +977,46 @@ GLOBAL_LIST_INIT(ore_probability, list( playsound(loc,'sound/misc/bloblarm.ogg', 120, FALSE, 50, TRUE, TRUE) if(prob(35)) new /obj/item/storage/box/rndboards(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) if(prob(35)) new /obj/item/storage/box/stockparts/deluxe(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) if(prob(15)) new /obj/effect/spawner/lootdrop/stockparts(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) if(prob(15)) new /obj/effect/spawner/lootdrop/stockparts(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) if(prob(15)) new /obj/effect/spawner/lootdrop/stockparts(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) if(prob(15)) new /obj/effect/spawner/lootdrop/stockparts(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) if(prob(30)) new /obj/item/circuitboard/machine/rdserver(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) if(prob(35)) new /obj/item/research_notes/loot/big(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) else new /obj/item/research_notes/loot/medium(loc) if(prob(35)) new /obj/item/research_notes/loot/medium(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) else new /obj/item/research_notes/loot/small(loc) if(prob(35)) new /obj/item/pneumatic_cannon(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) if(prob(45)) new /obj/item/research_notes/loot/medium(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) else new /obj/item/research_notes/loot/small(loc) new/turf/open/floor/mineral/titanium/purple(loc) - new /mob/living/simple_animal/hostile/zombie(loc) + new /mob/living/simple_animal/hostile/human/zombie(loc) if(22)//Silverback's locker room visible_message("You catch a glimpse of verdant green. Smells like a locker room.") playsound(loc,'sound/creatures/gorilla.ogg', 75, FALSE, 50, TRUE, TRUE) diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index d863b693604f..6512a0683947 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -64,7 +64,7 @@ /obj/structure/kitchenspike/attack_hand(mob/user) if(VIABLE_MOB_CHECK(user.pulling) && user.a_intent == INTENT_GRAB && !has_buckled_mobs()) var/mob/living/L = user.pulling - if(do_mob(user, src, 120)) + if(do_after(user, 12 SECONDS, src)) if(has_buckled_mobs()) //to prevent spam/queing up attacks return if(L.buckled) diff --git a/code/game/objects/structures/lavaland/geyser.dm b/code/game/objects/structures/lavaland/geyser.dm index ed177c72d34e..af536d2e8c1c 100644 --- a/code/game/objects/structures/lavaland/geyser.dm +++ b/code/game/objects/structures/lavaland/geyser.dm @@ -35,7 +35,7 @@ to_chat(user, "The [name] is already active!") return - to_chat(user, "You start vigorously plunging [src]!") + to_chat(user, span_notice("You start vigorously plunging [src]!")) if(do_after(user, 50 * P.plunge_mod, target = src) && !activated) start_chemming() @@ -51,6 +51,8 @@ name = "plunger" desc = "It's a plunger for plunging." icon = 'icons/obj/watercloset.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' icon_state = "plunger" slot_flags = ITEM_SLOT_MASK @@ -59,6 +61,15 @@ var/plunge_mod = 1 //time*plunge_mod = total time we take to plunge an object + +/obj/item/plunger/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + if(!. && user.zone_selected == BODY_ZONE_HEAD && iscarbon(target)) + var/mob/living/carbon/H = target + if(!H.wear_mask) + H.equip_to_slot_if_possible(src, ITEM_SLOT_MASK) + H.visible_message(span_warning("[user] slaps [src] onto [H]'s face!"), span_warning("[user] slaps [src] onto your face!"), span_hear("You hear violent plumbing.")) + /obj/item/plunger/attack_obj(obj/O, mob/living/user) if(!O.plunger_act(src, user)) return ..() @@ -71,5 +82,5 @@ var/mob/living/carbon/H = hit_atom if(!H.wear_mask) H.equip_to_slot_if_possible(src, ITEM_SLOT_MASK) - H.visible_message("The plunger slams into [H]'s face!", "The plunger suctions to your face!") + H.visible_message(span_warning("[src] slams into [H]'s face!"), span_warning("[src] suctions to your face!"), span_hear("You hear violent plumbing.")) diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm index 28ff5a8de732..e2c3b8909913 100644 --- a/code/game/objects/structures/loom.dm +++ b/code/game/objects/structures/loom.dm @@ -31,11 +31,9 @@ user.show_message("You need at least [FABRIC_PER_SHEET] units of fabric before using this.", MSG_VISUAL) return FALSE user.show_message("You start weaving \the [W.name] through the loom..", MSG_VISUAL) - if(W.use_tool(src, user, W.pull_effort)) - if(W.amount >= FABRIC_PER_SHEET) - new W.loom_result(drop_location()) - W.use(FABRIC_PER_SHEET) - user.show_message("You weave \the [W.name] into a workable fabric.", MSG_VISUAL) + while(W.use_tool(src, user, W.pull_effort) && W.use(FABRIC_PER_SHEET)) + new W.loom_result(drop_location()) + user.show_message("You weave \the [W.name] into a workable fabric.", MSG_VISUAL) return TRUE #undef FABRIC_PER_SHEET diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index fa964a55619b..ffd4e021086a 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -336,7 +336,7 @@ if((user.a_intent != INTENT_HARM) && istype(I, /obj/item/paper) && (obj_integrity < max_integrity)) user.visible_message("[user] starts to patch the holes in [src].", "You start patching some of the holes in [src]!") - if(do_after(user, 20, TRUE, src)) + if(do_after(user, 20, src)) obj_integrity = min(obj_integrity+4,max_integrity) qdel(I) user.visible_message("[user] patches some of the holes in [src].", "You patch some of the holes in [src]!") diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index 89ec5a384320..4efc9f895ab0 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -1,13 +1,12 @@ /obj/structure/plasticflaps - name = "airtight plastic flaps" - desc = "Heavy duty, airtight, plastic flaps. Definitely can't get past those. No way." + name = "plastic flaps" + desc = "Heavy duty plastic flaps. Definitely can't get past those. No way." gender = PLURAL icon = 'icons/obj/stationobjs.dmi' icon_state = "plasticflaps" armor = list("melee" = 100, "bullet" = 80, "laser" = 80, "energy" = 100, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 50, "acid" = 50) density = FALSE anchored = TRUE - CanAtmosPass = ATMOS_PASS_NO /obj/structure/plasticflaps/opaque opacity = TRUE diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index 48a26493ae29..35a55824c806 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -212,9 +212,24 @@ name = "\improper Nanotrasen logo sign" sign_change_name = "Corporate Logo - Nanotrasen" desc = "A sign with the Nanotrasen logo on it. Glory to Nanotrasen!" + icon = 'icons/obj/nanotrasen_logos.dmi' icon_state = "nanotrasen" is_editable = TRUE +/obj/structure/sign/nanotrasen/ns + name = "\improper N+S Logistics logo sign" + sign_change_name = "Corporate Logo - N+S Logistics" + desc = "A sign with the N+S Logistics compass rose on it." + icon_state = "ns" + is_editable = TRUE + +/obj/structure/sign/nanotrasen/vigilitas + name = "\improper Vigilitas Interstellar logo sign" + sign_change_name = "Corporate Logo - Vigilitas Interstellar" + desc = "A sign with Vigilitas Interstellar's VI logo on it." + icon_state = "vigilitas" + is_editable = TRUE + /obj/structure/sign/logo name = "\improper Nanotrasen logo sign" desc = "The Nanotrasen corporate logo." diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm index 9773221f0c22..d44606a1a57b 100644 --- a/code/game/objects/structures/spawner.dm +++ b/code/game/objects/structures/spawner.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_INIT(astroloot, list( /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/gold = 50, /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/bananium = 5, + /obj/item/stack/ore/hellstone = 5, /obj/item/stack/ore/titanium = 75, /obj/item/pickaxe/diamond = 15, /obj/item/borg/upgrade/modkit/cooldown = 5, @@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(astroloot, list( icon = 'icons/obj/device.dmi' icon_state = "syndbeacon" spawn_text = "warps in from" - mob_types = list(/mob/living/simple_animal/hostile/syndicate/ranged) + mob_types = list(/mob/living/simple_animal/hostile/human/syndicate/ranged) faction = list(ROLE_SYNDICATE) /obj/structure/spawner/skeleton @@ -68,7 +68,7 @@ GLOBAL_LIST_INIT(astroloot, list( max_integrity = 150 max_mobs = 15 spawn_time = 150 - mob_types = list(/mob/living/simple_animal/hostile/skeleton) + mob_types = list(/mob/living/simple_animal/hostile/human/skeleton) spawn_text = "climbs out of" faction = list("skeleton") diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 642c2c2efdd4..9f51ba34476a 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -224,7 +224,7 @@ /obj/structure/statue/bananium max_integrity = 300 - material_drop_type = /obj/item/stack/sheet/mineral/bananium + material_drop_type = /obj/item/stack/sheet/mineral/hidden/hellstone impressiveness = 50 desc = "A bananium statue with a small engraving:'HOOOOOOONK'." var/spam_flag = 0 diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 2257a3c10c3a..27c10f244c37 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -746,7 +746,7 @@ return building = TRUE to_chat(user, "You start assembling [src]...") - if(do_after(user, 50, target = user, progress=TRUE)) + if(do_after(user, 50, target = user)) if(!user.temporarilyRemoveItemFromInventory(src)) return var/obj/structure/R = new construction_type(user.loc) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 377c40d4e7ce..c22858ea591d 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -40,7 +40,7 @@ GM.visible_message("[user] starts to give [GM] a swirlie!", "[user] starts to give you a swirlie...") swirlie = GM var/was_alive = (swirlie.stat != DEAD) - if(do_after(user, 30, 0, target = src)) + if(do_after(user, 30, target = src, timed_action_flags = IGNORE_HELD_ITEM)) GM.visible_message("[user] gives [GM] a swirlie!", "[user] gives you a swirlie!", "You hear a toilet flushing.") if(iscarbon(GM)) var/mob/living/carbon/C = GM diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index fad817716348..4866dbfb3f60 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -86,47 +86,6 @@ smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS) canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) -/turf/closed/indestructible/riveted/supermatter - name = "wall" - desc = "A wall made out of a strange metal. The squares on it pulse in a predictable pattern." - icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium_wall-0" - base_icon_state = "bananium_wall" - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) - -/turf/closed/indestructible/riveted/supermatter/Bumped(atom/movable/AM) - if(isliving(AM)) - AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... [AM.p_their()] body starts to glow and burst into flames before flashing into dust!",\ - "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\ - "You hear an unearthly noise as a wave of heat washes over you.") - else if(isobj(AM) && !iseffect(AM)) - AM.visible_message("\The [AM] smacks into \the [src] and rapidly flashes to ash.", null,\ - "You hear a loud crack as you are washed with a wave of heat.") - else - return - - playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, TRUE) - Consume(AM) - -/turf/closed/indestructible/riveted/supermatter/proc/Consume(atom/movable/AM) - if(isliving(AM)) - var/mob/living/user = AM - if(user.status_flags & GODMODE) - return - message_admins("[src] has consumed [key_name_admin(user)] [ADMIN_JMP(src)].") - investigate_log("has consumed [key_name(user)].", INVESTIGATE_SUPERMATTER) - user.dust(force = TRUE) - else if(isobj(AM)) - if(!iseffect(AM)) - var/suspicion = "" - if(AM.fingerprintslast) - suspicion = "last touched by [AM.fingerprintslast]" - message_admins("[src] has consumed [AM], [suspicion] [ADMIN_JMP(src)].") - investigate_log("has consumed [AM] - [suspicion].", INVESTIGATE_SUPERMATTER) - qdel(AM) - /turf/closed/indestructible/syndicate icon = 'icons/turf/walls/plastitanium_wall.dmi' icon_state = "plastitanium_wall-0" diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index b5eddacd3e41..370afeaeedf2 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -161,6 +161,10 @@ //Currently, Adamantine won't spawn as it has no uses. -Durandan var/mineralChance = 5 +/turf/closed/mineral/ship + baseturfs = /turf/open/floor/plating/asteroid/ship + turf_type = /turf/open/floor/plating/asteroid/ship + /turf/closed/mineral/random/Initialize(mapload, inherited_virtual_z) @@ -277,14 +281,13 @@ light_range = 2 light_power = 1 - /turf/closed/mineral/random/snow/underground baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon // abundant ore mineralChance = 10 mineralSpawnChanceList = list( /obj/item/stack/ore/uranium = 10, /obj/item/stack/ore/diamond = 4, /obj/item/stack/ore/gold = 20, /obj/item/stack/ore/titanium = 22, - /obj/item/stack/ore/silver = 24, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 20, /obj/item/stack/ore/bananium = 1, + /obj/item/stack/ore/silver = 24, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 20, /turf/closed/mineral/gibtonite/ice/icemoon = 8, /obj/item/stack/ore/bluespace_crystal = 2) /turf/closed/mineral/random/snow/high_chance @@ -400,11 +403,6 @@ initial_gas_mix = FROZEN_ATMOS defer_change = TRUE -/turf/closed/mineral/bananium - mineralType = /obj/item/stack/ore/bananium - mineralAmt = 3 - scan_state = "rock_Bananium" - /turf/closed/mineral/bscrystal mineralType = /obj/item/stack/ore/bluespace_crystal mineralAmt = 1 @@ -646,10 +644,7 @@ H.mind.adjust_experience(/datum/skill/mining, 100) //yay! /turf/closed/mineral/strong/proc/drop_ores() - if(prob(10)) - new /obj/item/stack/sheet/mineral/mythril(src, 5) - else - new /obj/item/stack/sheet/mineral/adamantine(src, 5) + new /obj/item/stack/sheet/mineral/hidden/hellstone(src, 5) /turf/closed/mineral/strong/acid_melt() return diff --git a/code/game/turfs/closed/wall/mineral_walls.dm b/code/game/turfs/closed/wall/mineral_walls.dm index 720a95afd0e1..89a00d04c142 100644 --- a/code/game/turfs/closed/wall/mineral_walls.dm +++ b/code/game/turfs/closed/wall/mineral_walls.dm @@ -68,24 +68,6 @@ icon_state = "diamond_wall-255" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS -/turf/closed/wall/mineral/bananium - name = "bananium wall" - desc = "A wall with bananium plating. Honk!" - icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium_wall-0" - base_icon_state = "bananium_wall" - sheet_type = /obj/item/stack/sheet/mineral/bananium - smoothing_flags = SMOOTH_BITMASK | SMOOTH_CONNECTORS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS, SMOOTH_GROUP_WALLS,SMOOTH_GROUP_AIRLOCK) - connector_icon = 'icons/turf/connectors/bananium_wall_connector.dmi' - connector_icon_state = "bananium_wall_connector" - no_connector_typecache = list(/turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium) - -/turf/closed/wall/mineral_bananium/yesdiag - icon_state = "bananium_wall-255" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - /turf/closed/wall/mineral/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." diff --git a/code/game/turfs/closed/wall/misc_walls.dm b/code/game/turfs/closed/wall/misc_walls.dm index e6e5c8f0c557..20fcb2cb9f57 100644 --- a/code/game/turfs/closed/wall/misc_walls.dm +++ b/code/game/turfs/closed/wall/misc_walls.dm @@ -6,7 +6,7 @@ base_icon_state = "cult_wall" smoothing_flags = SMOOTH_BITMASK canSmoothWith = null - sheet_type = /obj/item/stack/sheet/runed_metal + sheet_type = /obj/item/stack/sheet/mineral/hidden/hellstone sheet_amount = 1 girder_type = /obj/structure/girder/cult diff --git a/code/game/turfs/open/floor/mineral_floor.dm b/code/game/turfs/open/floor/mineral_floor.dm index 476a69fa468d..5d53a162b087 100644 --- a/code/game/turfs/open/floor/mineral_floor.dm +++ b/code/game/turfs/open/floor/mineral_floor.dm @@ -172,48 +172,6 @@ /turf/open/floor/mineral/plastitanium/red/brig name = "brig floor" -//BANANIUM - -/turf/open/floor/mineral/bananium - name = "bananium floor" - icon_state = "bananium" - floor_tile = /obj/item/stack/tile/mineral/bananium - icons = list("bananium","bananium_dam") - var/spam_flag = 0 - -/turf/open/floor/mineral/bananium/Entered(atom/movable/AM) - .=..() - if(!.) - if(isliving(AM)) - squeak() - -/turf/open/floor/mineral/bananium/attackby(obj/item/W, mob/user, params) - .=..() - if(!.) - honk() - -/turf/open/floor/mineral/bananium/attack_hand(mob/user) - .=..() - if(!.) - honk() - -/turf/open/floor/mineral/bananium/attack_paw(mob/user) - .=..() - if(!.) - honk() - -/turf/open/floor/mineral/bananium/proc/honk() - if(spam_flag < world.time) - playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE) - spam_flag = world.time + 20 - -/turf/open/floor/mineral/bananium/proc/squeak() - if(spam_flag < world.time) - playsound(src, "clownstep", 50, TRUE) - spam_flag = world.time + 10 - -/turf/open/floor/mineral/bananium/airless - initial_gas_mix = AIRLESS_ATMOS //DIAMOND diff --git a/code/game/turfs/open/floor/plating/asteroid.dm b/code/game/turfs/open/floor/plating/asteroid.dm index ee311f747d82..89f48aee49a1 100644 --- a/code/game/turfs/open/floor/plating/asteroid.dm +++ b/code/game/turfs/open/floor/plating/asteroid.dm @@ -126,3 +126,5 @@ baseturfs = /turf/open/floor/plating/asteroid/airless turf_type = /turf/open/floor/plating/asteroid/airless +/turf/open/floor/plating/asteroid/ship + baseturfs = /turf/open/floor/plating diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm index 99f1d590c05a..eb2132940bd9 100644 --- a/code/game/turfs/open/lava.dm +++ b/code/game/turfs/open/lava.dm @@ -18,6 +18,8 @@ heavyfootstep = FOOTSTEP_LAVA var/particle_emitter = /obj/effect/particle_emitter/lava + /// Whether the lava has been dug with hellstone found successfully + var/is_mined = FALSE /turf/open/lava/Initialize(mapload) . = ..() @@ -100,10 +102,10 @@ /turf/open/lava/TakeTemperature(temp) -/turf/open/lava/attackby(obj/item/C, mob/user, params) +/turf/open/lava/attackby(obj/item/attacking_item, mob/user, params) ..() - if(istype(C, /obj/item/stack/rods/lava)) - var/obj/item/stack/rods/lava/R = C + if(istype(attacking_item, /obj/item/stack/rods/lava)) + var/obj/item/stack/rods/lava/R = attacking_item var/obj/structure/lattice/lava/H = locate(/obj/structure/lattice/lava, src) if(H) to_chat(user, "There is already a lattice here!") @@ -115,6 +117,19 @@ else to_chat(user, "You need one rod to build a heatproof lattice.") return + if(attacking_item.tool_behaviour == TOOL_MINING && (attacking_item.custom_materials[SSmaterials.GetMaterialRef(/datum/material/diamond)])) + if(is_mined) + to_chat(user, span_notice("This has already been cleared out of hellstone...")) + return FALSE + to_chat(user, span_notice("You start parting away [src]...")) + if(attacking_item.use_tool(src, user, 175, volume=30)) + to_chat(user, span_notice("You part away [src].")) + playsound(src, 'sound/effects/break_stone.ogg', 30, TRUE) + if (prob(10)) + new /obj/item/stack/ore/hellstone(src) + is_mined = TRUE + return TRUE + return FALSE /turf/open/lava/proc/is_safe() //if anything matching this typecache is found in the lava, we don't burn things diff --git a/code/modules/NTNet/relays.dm b/code/modules/NTNet/relays.dm index 9a1b01403eda..f161eced8060 100644 --- a/code/modules/NTNet/relays.dm +++ b/code/modules/NTNet/relays.dm @@ -3,8 +3,8 @@ name = "NTNet Quantum Relay" desc = "A very complex router and transmitter capable of connecting electronic devices together. Looks fragile." use_power = ACTIVE_POWER_USE - active_power_usage = 10000 //10kW, apropriate for machine that keeps massive cross-Zlevel wireless network operational. Used to be 20 but that actually drained the smes one round - idle_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_EXTREME //Since NTnet is barely used, this has been lowered by half. icon = 'icons/obj/machines/telecomms.dmi' icon_state = "bus" density = TRUE @@ -64,9 +64,9 @@ /obj/machinery/ntnet_relay/process() if(is_operational) - use_power = ACTIVE_POWER_USE + set_active_power() else - use_power = IDLE_POWER_USE + set_idle_power() update_appearance() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 5bb4b25cc1f1..7b147385c556 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -215,7 +215,7 @@ /datum/admins/proc/access_news_network() //MARKER - set category = "Admin.Events" + set category = "Event" set name = "Access Newscaster Network" set desc = "Allows you to view, add and edit news feeds." @@ -700,7 +700,7 @@ ////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS /datum/admins/proc/spawn_atom(object as text) - set category = "Debug" + set category = "Event.Spawning" set desc = "(atom path) Spawn an atom" set name = "Spawn" @@ -729,9 +729,9 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Spawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/podspawn_atom(object as text) - set category = "Debug" + set category = "Event.Spawning" set desc = "(atom path) Spawn an atom via supply drop" - set name = "Podspawn" + set name = "Supply drop spawn" if(!check_rights(R_SPAWN)) return @@ -753,7 +753,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Podspawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/spawn_cargo(object as text) - set category = "Debug" + set category = "Event.Spawning" set desc = "(atom path) Spawn a cargo crate" set name = "Spawn Cargo" @@ -1018,3 +1018,14 @@ dat += "Disable footsteps: [SSlag_switch.measures[DISABLE_FOOTSTEPS] ? "On" : "Off"] - trait applies to character
" dat += "" usr << browse(dat.Join(), "window=lag_switch_panel;size=420x480") + +/datum/admins/proc/view_manifest() + set category = "Admin.Game" + set name = "View Manifest" + set desc = "Opens the Manifest UI." + + if(!GLOB.crew_manifest_tgui) + GLOB.crew_manifest_tgui = new /datum/crew_manifest(src) + + if(ismob(usr)) + GLOB.crew_manifest_tgui.ui_interact(usr) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 0539dca13e25..f4913b6be1e8 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -81,6 +81,7 @@ GLOBAL_PROTECT(admin_verbs_admin) /client/proc/overmap_datum_token_manager, /datum/admins/proc/open_borgopanel, /client/proc/investigate_show, /*various admintools for investigation. Such as a singulo grief-log*/ + /datum/admins/proc/view_manifest ) GLOBAL_LIST_INIT(admin_verbs_ban, list( @@ -121,7 +122,6 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/polymorph_all, /client/proc/show_tip, /client/proc/smite, - /client/proc/spawn_ruin, )) GLOBAL_PROTECT(admin_verbs_fun) GLOBAL_LIST_INIT(admin_verbs_spawn, list( @@ -130,7 +130,9 @@ GLOBAL_LIST_INIT(admin_verbs_spawn, list( /datum/admins/proc/spawn_cargo, /datum/admins/proc/spawn_objasmob, /datum/admins/proc/beaker_panel, - /datum/admins/proc/gift + /datum/admins/proc/gift, + /client/proc/spawn_ruin, + /client/proc/spawn_outpost /* Allows admins to spawn a new outpost. */ )) GLOBAL_PROTECT(admin_verbs_spawn) GLOBAL_LIST_INIT(admin_verbs_server, world.AVerbsServer()) @@ -169,10 +171,13 @@ GLOBAL_PROTECT(admin_verbs_debug) /client/proc/cmd_display_del_log, /client/proc/cmd_display_init_log, /client/proc/cmd_display_overlay_log, + /client/proc/cmd_admin_grantfullaccess, + /client/proc/cmd_assume_direct_control, //-errorage + /client/proc/cmd_give_direct_control, /client/proc/getserverlogs, /*for accessing server logs*/ /client/proc/getcurrentlogs, /*for accessing server logs for the current round*/ /client/proc/restart_controller, - /client/proc/enable_debug_verbs, + /client/proc/disable_debug_verbs, /client/proc/callproc, /client/proc/callproc_datum, /client/proc/SDQL2_query, @@ -205,12 +210,16 @@ GLOBAL_PROTECT(admin_verbs_debug) #endif /datum/admins/proc/create_or_modify_area, /datum/admins/proc/open_shuttlepanel, /* Opens shuttle manipulator UI */ - /client/proc/spawn_outpost, /* Allows admins to spawn a new outpost. */ /datum/admins/proc/open_borgopanel, /datum/admins/proc/overmap_view, /* Opens HTML overmap viewer UI */ /client/proc/toggle_AI_interact, /*toggle admin ability to interact with machines as an AI*/ /client/proc/toggle_cdn, - /client/proc/check_timer_sources + /client/proc/check_timer_sources, + /client/proc/air_status, //Air things + /client/proc/air_status_loc, //More air things + /client/proc/manipulate_organs, + /client/proc/set_server_fps, //allows you to set the ticklag. + /client/proc/start_singlo, ) GLOBAL_LIST_INIT(admin_verbs_possess, list(/proc/possess, /proc/release)) GLOBAL_PROTECT(admin_verbs_possess) @@ -269,10 +278,9 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( /client/proc/Debug2, /client/proc/reload_admins, /client/proc/cmd_debug_make_powernets, - /client/proc/startSinglo, /client/proc/cmd_debug_mob_lists, /client/proc/cmd_debug_del_all, - /client/proc/enable_debug_verbs, + /client/proc/disable_debug_verbs, /proc/possess, /proc/release, /client/proc/reload_admins, @@ -305,7 +313,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) if(rights & R_SERVER) add_verb(src, GLOB.admin_verbs_server) if(rights & R_DEBUG) - add_verb(src, GLOB.admin_verbs_debug) + add_verb(src, list(GLOB.admin_verbs_debug, GLOB.admin_verbs_debug_extra)) if(rights & R_POSSESS) add_verb(src, GLOB.admin_verbs_possess) if(rights & R_PERMISSIONS) @@ -338,7 +346,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) /client/proc/play_web_sound, GLOB.admin_verbs_spawn, /*Debug verbs added by "show debug verbs"*/ - GLOB.admin_verbs_debug_mapping, + GLOB.admin_verbs_debug_extra, /client/proc/disable_debug_verbs, /client/proc/readmin )) @@ -403,11 +411,13 @@ GLOBAL_PROTECT(admin_verbs_hideable) set category = "Admin.Game" set desc = "Toggles ghost-like invisibility (Don't abuse this)" if(holder && mob) - if(mob.invisibility == INVISIBILITY_OBSERVER) + if(mob.invisibility == INVISIBILITY_INVINISMIN) mob.invisibility = initial(mob.invisibility) + mob.remove_from_all_data_huds() to_chat(mob, "Invisimin off. Invisibility reset.", confidential = TRUE) else - mob.invisibility = INVISIBILITY_OBSERVER + mob.invisibility = INVISIBILITY_INVINISMIN + mob.add_to_all_human_data_huds() to_chat(mob, "Invisimin on. You are now as invisible as a ghost.", confidential = TRUE) /client/proc/check_antagonists() @@ -503,7 +513,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) SSblackbox.record_feedback("tally", "admin_verb", 1, "Stealth Mode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/drop_bomb() - set category = "Fun" + set category = "Event.Fun" set name = "Drop Bomb" set desc = "Cause an explosion of varying strength at your location." @@ -545,7 +555,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) SSblackbox.record_feedback("tally", "admin_verb", 1, "Drop Bomb") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/drop_dynex_bomb() - set category = "Fun" + set category = "Event.Fun" set name = "Drop DynEx Bomb" set desc = "Cause an explosion of varying strength at your location." @@ -592,7 +602,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) message_admins("[key_name_admin(usr)] has modified Dynamic Explosion Scale: [ex_scale]") /client/proc/give_spell(mob/T in GLOB.mob_list) - set category = "Fun" + set category = "Event.Fun" set name = "Give Spell" set desc = "Gives a spell to a mob." @@ -616,7 +626,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) message_admins("Spells given to mindless mobs will not be transferred in mindswap or cloning!") /client/proc/remove_spell(mob/T in GLOB.mob_list) - set category = "Fun" + set category = "Event.Fun" set name = "Remove Spell" set desc = "Remove a spell from the selected mob." @@ -629,7 +639,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) SSblackbox.record_feedback("tally", "admin_verb", 1, "Remove Spell") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/give_disease(mob/living/T in GLOB.mob_living_list) - set category = "Fun" + set category = "Event.Fun" set name = "Give Disease" set desc = "Gives a Disease to a mob." if(!istype(T)) @@ -644,7 +654,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) message_admins("[key_name_admin(usr)] gave [key_name_admin(T)] the disease [D].") /client/proc/object_say(obj/O in world) - set category = "Admin.Events" + set category = "Event" set name = "OSay" set desc = "Makes an object say something." var/message = input(usr, "What do you want the message to be?", "Make Sound") as text | null @@ -654,9 +664,10 @@ GLOBAL_PROTECT(admin_verbs_hideable) log_admin("[key_name(usr)] made [O] at [AREACOORD(O)] say \"[message]\"") message_admins("[key_name_admin(usr)] made [O] at [AREACOORD(O)]. say \"[message]\"") SSblackbox.record_feedback("tally", "admin_verb", 1, "Object Say") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + /client/proc/togglebuildmodeself() set name = "Toggle Build Mode Self" - set category = "Admin.Events" + set category = "Event" if (!(holder.rank.rights & R_BUILD)) return if(src.mob) diff --git a/code/modules/admin/verbs/anonymousnames.dm b/code/modules/admin/verbs/anonymousnames.dm index 62c48149af52..c880a74ba6f6 100644 --- a/code/modules/admin/verbs/anonymousnames.dm +++ b/code/modules/admin/verbs/anonymousnames.dm @@ -1,5 +1,5 @@ /client/proc/anon_names() - set category = "Admin.Events" + set category = "Event" set name = "Setup Anonymous Names" diff --git a/code/modules/admin/verbs/atmosdebug.dm b/code/modules/admin/verbs/atmosdebug.dm index 6fc5f8a4c709..56da851fdfd9 100644 --- a/code/modules/admin/verbs/atmosdebug.dm +++ b/code/modules/admin/verbs/atmosdebug.dm @@ -19,7 +19,7 @@ return list(y + 1 - min(bounds[2], bounds[4]), -(x - 1 - max(bounds[1], bounds[3]))) /client/proc/check_atmos() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Check Atmospherics Piping" if(!check_rights_for(src, R_DEBUG)) to_chat(src, "Only administrators may use this command.", confidential = TRUE) @@ -54,7 +54,7 @@ return results /client/proc/check_wiring() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Check Power" if(!check_rights_for(src, R_DEBUG)) to_chat(src, "Only administrators may use this command.", confidential = TRUE) diff --git a/code/modules/admin/verbs/beakerpanel.dm b/code/modules/admin/verbs/beakerpanel.dm index 1f523c9e4627..3ba2a51b2fe8 100644 --- a/code/modules/admin/verbs/beakerpanel.dm +++ b/code/modules/admin/verbs/beakerpanel.dm @@ -61,7 +61,7 @@ return container /datum/admins/proc/beaker_panel() - set category = "Admin.Events" + set category = "Event.Spawning" set name = "Spawn reagent container" if(!check_rights()) return diff --git a/code/modules/admin/verbs/cinematic.dm b/code/modules/admin/verbs/cinematic.dm index 722440e11b93..a8549c635966 100644 --- a/code/modules/admin/verbs/cinematic.dm +++ b/code/modules/admin/verbs/cinematic.dm @@ -1,6 +1,6 @@ /client/proc/cinematic() - set name = "cinematic" - set category = "Fun" + set name = "Cinematic" + set category = "Event.Fun" set desc = "Shows a cinematic." // Intended for testing but I thought it might be nice for events on the rare occasion Feel free to comment it out if it's not wanted. set hidden = TRUE if(!SSticker) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 19ac8a0514d3..ae039c216120 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -26,7 +26,7 @@ Because if you select a player mob as owner it tries to do the proc for But you can call procs that are of type /mob/living/carbon/human/proc/ for that player. */ -/client/proc/Cell() +/client/proc/air_status_loc() set category = "Debug" set name = "Air Status in Location" if(!mob) @@ -38,7 +38,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that SSblackbox.record_feedback("tally", "admin_verb", 1, "Air Status In Location") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_robotize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Event.Fun" set name = "Make Robot" if(!SSticker.HasRoundStarted()) @@ -53,7 +53,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that alert("Invalid mob") /client/proc/cmd_admin_blobize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Event.Fun" set name = "Make Blob" if(!SSticker.HasRoundStarted()) @@ -68,7 +68,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that /client/proc/cmd_admin_animalize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Event.Fun" set name = "Make Simple Animal" if(!SSticker.HasRoundStarted()) @@ -88,7 +88,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that /client/proc/makepAI(turf/T in GLOB.mob_list) - set category = "Fun" + set category = "Event.Fun" set name = "Make pAI" set desc = "Specify a location to spawn a pAI device, then specify a key to play that pAI" @@ -121,7 +121,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that SSblackbox.record_feedback("tally", "admin_verb", 1, "Make pAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_alienize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Event.Fun" set name = "Make Alien" if(!SSticker.HasRoundStarted()) @@ -136,7 +136,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that alert("Invalid mob") /client/proc/cmd_admin_slimeize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Event.Fun" set name = "Make slime" if(!SSticker.HasRoundStarted()) @@ -228,7 +228,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that message_admins("[key_name_admin(usr)] has granted [M.key] full access.") /client/proc/cmd_assume_direct_control(mob/M in GLOB.mob_list) - set category = "Admin.Game" + set category = "Debug" set name = "Assume direct control" set desc = "Direct intervention" @@ -249,7 +249,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that SSblackbox.record_feedback("tally", "admin_verb", 1, "Assume Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_give_direct_control(mob/M in GLOB.mob_list) - set category = "Admin.Game" + set category = "Debug" set name = "Give direct control" if(!M) @@ -275,7 +275,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that SSblackbox.record_feedback("tally", "admin_verb", 1, "Give Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_test_atmos_controllers() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Test Atmos Monitoring Consoles" var/list/dat = list() @@ -311,7 +311,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that popup.open() /client/proc/cmd_admin_areatest() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Test Areas" var/list/dat = list() @@ -465,12 +465,12 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that /client/proc/cmd_admin_areatest_station() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Test Areas (STATION Z)" cmd_admin_areatest(TRUE) /client/proc/cmd_admin_areatest_all() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Test Areas (ALL)" cmd_admin_areatest(FALSE) @@ -529,8 +529,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that return dresscode -/client/proc/startSinglo() - +/client/proc/start_singlo() set category = "Debug" set name = "Start Singularity" set desc = "Sets up the singularity and all machines to get power flowing through the station" @@ -692,11 +691,11 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that to_chat(usr, "[template.description]", confidential = TRUE) /client/proc/fucky_wucky() - set category = "Debug" + set category = "Event.Fun" set name = "Fucky Wucky" set desc = "Inform the players that the code monkeys at our headquarters are working very hard to fix this." - if(!check_rights(R_DEBUG)) + if(!check_rights(R_FUN)) return remove_verb(/client/proc/fucky_wucky) message_admins("[key_name_admin(src)] did a fucky wucky.") @@ -750,7 +749,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that log_admin("[key_name(src)] pumped a random event.") /client/proc/start_line_profiling() - set category = "Profile" + set category = "Debug.Profile" set name = "Start Line Profiling" set desc = "Starts tracking line by line profiling for code lines that support it" @@ -761,7 +760,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that log_admin("[key_name(src)] started line by line profiling.") /client/proc/stop_line_profiling() - set category = "Profile" + set category = "Debug.Profile" set name = "Stops Line Profiling" set desc = "Stops tracking line by line profiling for code lines that support it" @@ -772,7 +771,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that log_admin("[key_name(src)] stopped line by line profiling.") /client/proc/show_line_profiling() - set category = "Profile" + set category = "Debug.Profile" set name = "Show Line Profiling" set desc = "Shows tracked profiling info from code lines that support it" diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 305cce363c8d..6d8bac8adcfc 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -19,42 +19,32 @@ //- Identify how hard it is to break into the area and where the weak points are //- Check if the area has too much empty space. If so, make it smaller and replace the rest with maintenance tunnels. -GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( +GLOBAL_LIST_INIT(admin_verbs_debug_extra, list( /client/proc/camera_view, //-errorage - /client/proc/sec_camera_report, //-errorage - /client/proc/intercom_view, //-errorage - /client/proc/air_status, //Air things - /client/proc/Cell, //More air things /client/proc/check_atmos, /client/proc/check_wiring, - /client/proc/count_objects_on_z_level, - /client/proc/count_objects_all, - /client/proc/cmd_assume_direct_control, //-errorage - /client/proc/cmd_give_direct_control, - /client/proc/startSinglo, - /client/proc/set_server_fps, //allows you to set the ticklag. - /client/proc/cmd_admin_grantfullaccess, /client/proc/cmd_admin_areatest_all, /client/proc/cmd_admin_areatest_station, - #ifdef TESTING - /client/proc/see_dirty_varedits, - #endif /client/proc/cmd_admin_test_atmos_controllers, - /client/proc/cmd_admin_rejuvenate, - /datum/admins/proc/show_traitor_panel, - /client/proc/disable_communication, /client/proc/cmd_show_at_list, /client/proc/cmd_show_at_markers, - /client/proc/manipulate_organs, - /client/proc/start_line_profiling, - /client/proc/stop_line_profiling, - /client/proc/show_line_profiling, + /client/proc/count_objects_all, + /client/proc/count_objects_on_z_level, /client/proc/create_mapping_job_icons, /client/proc/debug_z_levels, + /client/proc/disable_communication, + /client/proc/export_map, + /client/proc/intercom_view, //-errorage /client/proc/map_zones_info, - /client/proc/export_map + /client/proc/sec_camera_report, //-errorage + #ifdef TESTING + /client/proc/see_dirty_varedits, + #endif + /client/proc/show_line_profiling, + /client/proc/start_line_profiling, + /client/proc/stop_line_profiling, )) -GLOBAL_PROTECT(admin_verbs_debug_mapping) +GLOBAL_PROTECT(admin_verbs_debug_extra) /obj/effect/debugging/mapfix_marker name = "map fix marker" @@ -70,7 +60,7 @@ GLOBAL_PROTECT(admin_verbs_debug_mapping) return 0 /client/proc/camera_view() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Camera Range Display" var/on = FALSE @@ -93,7 +83,7 @@ GLOBAL_PROTECT(admin_verbs_debug_mapping) GLOBAL_LIST_EMPTY(dirty_vars) /client/proc/see_dirty_varedits() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Dirty Varedits" var/list/dat = list() @@ -107,7 +97,7 @@ GLOBAL_LIST_EMPTY(dirty_vars) #endif /client/proc/sec_camera_report() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Camera Report" if(!Master) @@ -147,7 +137,7 @@ GLOBAL_LIST_EMPTY(dirty_vars) SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Camera Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/intercom_view() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Intercom Range Display" var/static/intercom_range_display_status = FALSE @@ -165,7 +155,7 @@ GLOBAL_LIST_EMPTY(dirty_vars) SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Intercom Range") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_show_at_list() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Show roundstart AT list" set desc = "Displays a list of active turfs coordinates at roundstart" @@ -182,7 +172,7 @@ GLOBAL_LIST_EMPTY(dirty_vars) SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Roundstart Active Turfs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_show_at_markers() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Show roundstart AT markers" set desc = "Places a marker on all active-at-roundstart turfs" @@ -207,18 +197,18 @@ GLOBAL_LIST_EMPTY(dirty_vars) if(!check_rights(R_DEBUG)) return remove_verb(src, /client/proc/enable_debug_verbs) - add_verb(src, list(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_mapping)) + add_verb(src, list(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_extra)) SSblackbox.record_feedback("tally", "admin_verb", 1, "Enable Debug Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/disable_debug_verbs() set category = "Debug" set name = "Debug verbs - Disable" - remove_verb(src, list(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_mapping)) + remove_verb(src, list(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_extra)) add_verb(src, /client/proc/enable_debug_verbs) SSblackbox.record_feedback("tally", "admin_verb", 1, "Disable Debug Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/count_objects_on_z_level() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Count Objects On Level" var/level = input("Which z-level?","Level?") as text|null if(!level) @@ -257,7 +247,7 @@ GLOBAL_LIST_EMPTY(dirty_vars) SSblackbox.record_feedback("tally", "admin_verb", 1, "Count Objects Zlevel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/count_objects_all() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Count Objects All" var/type_text = input("Which type path?","") as text|null @@ -280,7 +270,7 @@ GLOBAL_LIST_EMPTY(dirty_vars) //This proc is intended to detect lag problems relating to communication procs GLOBAL_VAR_INIT(say_disabled, FALSE) /client/proc/disable_communication() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Disable all communication verbs" GLOB.say_disabled = !GLOB.say_disabled @@ -292,7 +282,7 @@ GLOBAL_VAR_INIT(say_disabled, FALSE) //This generates the icon states for job starting location landmarks. /client/proc/create_mapping_job_icons() set name = "Generate job landmarks icons" - set category = "Mapping" + set category = "Debug.Mapping" var/icon/final = icon() var/mob/living/carbon/human/dummy/D = new(locate(1,1,1)) //spawn on 1,1,1 so we don't have runtimes when items are deleted D.setDir(SOUTH) @@ -319,7 +309,7 @@ GLOBAL_VAR_INIT(say_disabled, FALSE) /client/proc/debug_z_levels() set name = "Debug Z-Levels" - set category = "Mapping" + set category = "Debug.Mapping" var/list/z_list = SSmapping.z_list var/list/messages = list() @@ -350,7 +340,7 @@ GLOBAL_VAR_INIT(say_disabled, FALSE) /client/proc/map_zones_info() set name = "Map-Zones Info" - set category = "Mapping" + set category = "Debug.Mapping" var/list/dat = list() for(var/datum/map_zone/map_zone as anything in SSmapping.map_zones) @@ -405,7 +395,7 @@ GLOBAL_VAR_INIT(say_disabled, FALSE) #undef MAP_ZONE_INFO /client/proc/export_map() - set category = "Mapping" + set category = "Debug.Mapping" set name = "Export Map" var/z_level = input("Export Which Z-Level?", "Map Exporter", 2) as num diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index dff0335b7e9e..028c9729131a 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -4,7 +4,7 @@ /client/proc/one_click_antag() set name = "Create Antagonist" set desc = "Auto-create an antagonist of your choice" - set category = "Admin.Events" + set category = "Event" if(holder) holder.one_click_antag() diff --git a/code/modules/admin/verbs/outpost.dm b/code/modules/admin/verbs/outpost.dm index 358da03d2844..25632838f45f 100644 --- a/code/modules/admin/verbs/outpost.dm +++ b/code/modules/admin/verbs/outpost.dm @@ -19,7 +19,7 @@ /client/proc/spawn_outpost() set name = "Spawn Outpost" - set category = "Admin.Events" + set category = "Event.Spawning" set desc = "Spawns the selected /datum/overmap/outpost subtype." if(!holder) diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index 131dd55ad82b..e3e5bc8c1ede 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -1,5 +1,5 @@ /client/proc/play_sound(S as sound) - set category = "Fun" + set category = "Event.Fun" set name = "Play Global Sound" if(!check_rights(R_SOUND)) return @@ -40,7 +40,7 @@ /client/proc/play_local_sound(S as sound) - set category = "Fun" + set category = "Event.Fun" set name = "Play Local Sound" if(!check_rights(R_SOUND)) return @@ -52,7 +52,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Local Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/play_direct_mob_sound(S as sound, mob/M) - set category = "Fun" + set category = "Event.Fun" set name = "Play Direct Mob Sound" if(!check_rights(R_SOUND)) return @@ -67,7 +67,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Direct Mob Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/play_web_sound() - set category = "Fun" + set category = "Event.Fun" set name = "Play Internet Sound" if(!check_rights(R_SOUND)) return @@ -151,7 +151,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Internet Sound") /client/proc/set_round_end_sound(S as sound) - set category = "Fun" + set category = "Event.Fun" set name = "Set Round End Sound" if(!check_rights(R_SOUND)) return diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index ae621e17d479..df5b1d6d18d3 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -20,7 +20,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_subtle_message(mob/M in GLOB.mob_list) - set category = "Admin.Events" + set category = "Event" set name = "Subtle Message" if(!ismob(M)) @@ -46,7 +46,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_headset_message(mob/M in GLOB.mob_list) - set category = "Admin.Events" + set category = "Event" set name = "Headset Message" admin_headset_message(M) @@ -92,7 +92,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Headset Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_world_narrate() - set category = "Admin.Events" + set category = "Event" set name = "Global Narrate" if(!check_rights(R_ADMIN)) @@ -108,7 +108,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_direct_narrate(mob/M) - set category = "Admin.Events" + set category = "Event" set name = "Direct Narrate" if(!check_rights(R_ADMIN)) @@ -133,7 +133,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_local_narrate(atom/A) - set category = "Admin.Events" + set category = "Event" set name = "Local Narrate" if(!check_rights(R_ADMIN)) @@ -295,7 +295,7 @@ return 1 /client/proc/cmd_admin_add_freeform_ai_law() - set category = "Admin.Events" + set category = "Event" set name = "Add Custom AI law" if(!check_rights(R_ADMIN)) @@ -318,7 +318,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Add Custom AI Law") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_create_centcom_report() - set category = "Admin.Events" + set category = "Event" set name = "Create Command Report" if(!check_rights(R_FUN)) @@ -347,7 +347,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Create Command Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_change_command_name() - set category = "Admin.Events" + set category = "Event" set name = "Change Command Name" if(!check_rights(R_FUN)) @@ -370,7 +370,7 @@ admin_delete(A) /client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world) - set category = "Fun" + set category = "Event.Fun" set name = "Explosion" if(!check_rights(R_ADMIN)) @@ -406,7 +406,7 @@ return /client/proc/cmd_admin_emp(atom/O as obj|mob|turf in world) - set category = "Fun" + set category = "Event.Fun" set name = "EM Pulse" if(!check_rights(R_ADMIN)) @@ -431,7 +431,7 @@ return /client/proc/cmd_admin_gib(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Event.Fun" set name = "Gib" if(!check_rights(R_ADMIN)) @@ -458,7 +458,7 @@ /client/proc/cmd_admin_gib_self() set name = "Gibself" - set category = "Fun" + set category = "Event.Fun" var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm == "Yes") @@ -492,7 +492,7 @@ SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Change View Range", "[view]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/admin_initiate_jump() - set category = "Admin.Events" + set category = "Event" set name = "Initiate Jump" if(!check_rights(R_ADMIN)) return @@ -510,7 +510,7 @@ message_admins("[key_name_admin(usr)] admin-initiated a bluespace jump.") /client/proc/admin_cancel_jump() - set category = "Admin.Events" + set category = "Event" set name = "Cancel Jump" if(!check_rights(0)) return @@ -528,7 +528,7 @@ message_admins("[key_name_admin(usr)] admin-cancelled a bluespace jump.") /client/proc/everyone_random() - set category = "Fun" + set category = "Event.Fun" set name = "Make Everyone Random" set desc = "Make everyone have a random appearance. You can only use this before rounds!" @@ -576,7 +576,7 @@ /client/proc/admin_change_sec_level() - set category = "Admin.Events" + set category = "Event" set name = "Set Security Level" set desc = "Changes the security level. Announcement only, i.e. setting to Delta won't activate nuke" @@ -593,7 +593,7 @@ /client/proc/toggle_nuke(obj/machinery/nuclearbomb/N in GLOB.nuke_list) set name = "Toggle Nuke" - set category = "Admin.Events" + set category = "Event" set popup_menu = 0 if(!check_rights(R_DEBUG)) return @@ -646,7 +646,7 @@ /client/proc/run_weather() - set category = "Admin.Events" + set category = "Event" set name = "Run Weather" set desc = "Triggers a weather on the z-level you choose." @@ -669,7 +669,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Run Weather") /client/proc/mass_zombie_infection() - set category = "Fun" + set category = "Event.Fun" set name = "Mass Zombie Infection" set desc = "Infects all humans with a latent organ that will zombify \ them on death." @@ -690,7 +690,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Mass Zombie Infection") /client/proc/mass_zombie_cure() - set category = "Fun" + set category = "Event.Fun" set name = "Mass Zombie Cure" set desc = "Removes the zombie infection from all humans, returning them to normal." if(!check_rights(R_ADMIN)) @@ -708,7 +708,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Mass Zombie Cure") /client/proc/polymorph_all() - set category = "Fun" + set category = "Event.Fun" set name = "Polymorph All" set desc = "Applies the effects of the bolt of change to every single mob." @@ -819,7 +819,7 @@ /client/proc/spawn_ruin() set name = "Spawn Planet/Ruin" - set category = "Fun" + set category = "Event.Spawning" if(!check_rights(R_ADMIN) || !check_rights(R_SPAWN)) return @@ -880,7 +880,7 @@ /client/proc/smite(mob/living/target as mob) set name = "Smite" - set category = "Fun" + set category = "Event.Fun" if(!check_rights(R_ADMIN) || !check_rights(R_FUN)) return @@ -1068,8 +1068,8 @@ REMOVE_TRAIT(D,chosen_trait,source) /datum/admins/proc/gift(mob/living/carbon/human/target as mob, object as text) - set name = "Gift" - set category = "Fun" + set name = "Gift a mob" + set category = "Event.Spawning" set desc = "Give a mob an item directly." if(!check_rights(R_ADMIN) || !check_rights(R_FUN)) return diff --git a/code/modules/admin/verbs/selectequipment.dm b/code/modules/admin/verbs/selectequipment.dm index 9bc6ab3dcea9..03a560d5e712 100644 --- a/code/modules/admin/verbs/selectequipment.dm +++ b/code/modules/admin/verbs/selectequipment.dm @@ -1,5 +1,5 @@ /client/proc/cmd_select_equipment(mob/target in GLOB.mob_list) - set category = "Admin.Events" + set category = "Event" set name = "Select equipment" diff --git a/code/modules/admin/verbs/shuttlepanel.dm b/code/modules/admin/verbs/shuttlepanel.dm index b4e374f41cb8..bb3bd11b7f42 100644 --- a/code/modules/admin/verbs/shuttlepanel.dm +++ b/code/modules/admin/verbs/shuttlepanel.dm @@ -1,5 +1,5 @@ /datum/admins/proc/open_shuttlepanel() - set category = "Admin.Events" + set category = "Event" set name = "Shuttle Manipulator" set desc = "Opens the shuttle manipulator UI." @@ -8,7 +8,6 @@ SSshuttle.ui_interact(usr) - /obj/docking_port/mobile/proc/admin_fly_shuttle(mob/user) var/list/options = list() diff --git a/code/modules/admin/verbs/spawnobjasmob.dm b/code/modules/admin/verbs/spawnobjasmob.dm index f840516d49f1..e787ecfde664 100644 --- a/code/modules/admin/verbs/spawnobjasmob.dm +++ b/code/modules/admin/verbs/spawnobjasmob.dm @@ -1,7 +1,7 @@ /datum/admins/proc/spawn_objasmob(object as text) - set category = "Debug" - set desc = "(obj path) Spawn object-mob" - set name = "Spawn object-mob" + set category = "Event.Spawning" + set desc = "(obj path) Spawn object-mob from Object" + set name = "Spawn Living Mob" if(!check_rights(R_SPAWN)) return diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index 537afd8d4ff5..4b4ca9bd96ec 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -292,7 +292,7 @@ /obj/item/antag_spawner/syndi_borer name = "syndicate brain-slug container" desc = "Releases a modified cortical borer to assist the user." - icon = 'icons/obj/chemical.dmi' //Temporary? //The most permanent type of solution lol + icon = 'icons/obj/chemical/hypovial.dmi' icon_state = "hypoviallarge-b" var/polling = FALSE diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 5efddfb3cf8c..1245e2585462 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -577,9 +577,11 @@ Congratulations! You are now trained for invasive xenobiology research!"} if(!C.handcuffed) if(C.canBeHandcuffed()) playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) - C.visible_message("[user] begins restraining [C] with [src]!", \ - "[user] begins shaping an energy field around your hands!") - if(do_mob(user, C, time_to_cuff) && C.canBeHandcuffed()) + C.visible_message( + "[user] begins restraining [C] with [src]!", \ + "[user] begins shaping an energy field around your hands!" + ) + if(do_after(user, time_to_cuff, C) && C.canBeHandcuffed()) if(!C.handcuffed) C.set_handcuffed(new /obj/item/restraints/handcuffs/energy/used(C)) C.update_handcuffed() diff --git a/code/modules/antagonists/borer/borer.dm b/code/modules/antagonists/borer/borer.dm index d4af47670412..92a1e728dc8b 100644 --- a/code/modules/antagonists/borer/borer.dm +++ b/code/modules/antagonists/borer/borer.dm @@ -422,7 +422,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) "[src] tears [H.ears] off of your ear!") //coz, you know, they go in the ear holes to_chat(src, "You slither up [H] and begin probing at their ear canal...") - if(!do_mob(src, H, 30)) + if(!do_after(src, 3 SECONDS, H)) to_chat(src, "As [H] moves away, you are dislodged and fall to the ground.") return @@ -1053,7 +1053,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3) /datum/action/innate/borer/make_chems name = "Secrete Chemicals" desc = "Push some chemicals into your host's bloodstream." - icon_icon = 'icons/obj/chemical.dmi' + icon_icon = 'icons/obj/chemical/chem_machines.dmi' button_icon_state = "minidispenser" /datum/action/innate/borer/make_chems/Activate() diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index 33e0a8f75d48..a54cdc4cd09c 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -43,7 +43,7 @@ target.take_overall_damage(40) SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("Absorb DNA", "[i]")) - if(!do_mob(user, target, 150)) + if(!do_after(user, 15 SECONDS, target)) to_chat(user, "Our absorption of [target] has been interrupted!") changeling.isabsorbing = 0 return diff --git a/code/modules/antagonists/changeling/powers/linglink.dm b/code/modules/antagonists/changeling/powers/linglink.dm index a0008dec26de..6036ae1d00f6 100644 --- a/code/modules/antagonists/changeling/powers/linglink.dm +++ b/code/modules/antagonists/changeling/powers/linglink.dm @@ -58,7 +58,7 @@ target.say("[MODE_TOKEN_CHANGELING] AAAAARRRRGGGGGHHHHH!!") to_chat(target, "You can now communicate in the changeling hivemind, say \"[MODE_TOKEN_CHANGELING] message\" to communicate!") SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]", "[i]")) - if(!do_mob(user, target, 20)) + if(!do_after(user, 2 SECONDS, target)) to_chat(user, "Our link with [target] has ended!") changeling.islinking = 0 target.mind.linglink = 0 @@ -67,7 +67,7 @@ to_chat(user, "We must keep holding on to [target] to sustain the link. ") while(user.pulling && user.grab_state >= GRAB_NECK) target.reagents.add_reagent(/datum/reagent/medicine/salbutamol, 0.5) // So they don't choke to death while you interrogate them - do_mob(user, target, 100, TRUE) + do_after(user, 10 SECONDS, target, TRUE) changeling.islinking = 0 target.mind.linglink = 0 diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index d77c4ef6ff3c..f32c0dcc215b 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -488,6 +488,8 @@ name = "flesh mass" icon_state = "lingspacehelmet" desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front." + icon = 'icons/obj/clothing/head/spacesuits.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/spacesuits.dmi' item_flags = DROPDEL clothing_flags = STOPSPRESSUREDAMAGE armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 003abfd42991..cf1562d8c289 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -535,7 +535,7 @@ playsound(loc, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) C.visible_message("[user] begins restraining [C] with dark magic!", \ "[user] begins shaping dark magic shackles around your wrists!") - if(do_mob(user, C, 30)) + if(do_after(user, 3 SECONDS, C)) if(!C.handcuffed) C.set_handcuffed(new /obj/item/restraints/handcuffs/energy/cult/used(C)) C.update_handcuffed() @@ -601,7 +601,7 @@ var/quantity = candidate.amount if(candidate.use(quantity)) uses -- - new /obj/item/stack/sheet/runed_metal(T,quantity) + new /obj/item/stack/sheet/mineral/hidden/hellstone(T,quantity) to_chat(user, "A dark cloud emanates from you hand and swirls around the plasteel, transforming it into runed metal!") SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) else if(istype(target,/mob/living/silicon/robot)) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index e7f37d37f4a6..406c51956035 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -61,7 +61,7 @@ var/mob/living/current = owner.current add_objectives() if(give_equipment) - equip_cultist(TRUE) + equip_cultist() SSticker.mode.cult += owner // Only add after they've been given objectives current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000") @@ -69,13 +69,11 @@ current.client.images += cult_team.blood_target_image -/datum/antagonist/cult/proc/equip_cultist(metal=TRUE) +/datum/antagonist/cult/proc/equip_cultist() var/mob/living/carbon/H = owner.current if(!istype(H)) return . += cult_give_item(/obj/item/melee/cultblade/dagger, H) - if(metal) - . += cult_give_item(/obj/item/stack/sheet/runed_metal/ten, H) to_chat(owner, "These will help you jumpstart a cult of your own in this sector. Use them well, and remember - you are not the only one.") @@ -163,21 +161,16 @@ /datum/antagonist/cult/get_admin_commands() . = ..() .["Dagger"] = CALLBACK(src, PROC_REF(admin_give_dagger)) - .["Dagger and Metal"] = CALLBACK(src, PROC_REF(admin_give_metal)) - .["Remove Dagger and Metal"] = CALLBACK(src, PROC_REF(admin_take_all)) + .["Metal"] = CALLBACK(src, PROC_REF(admin_take_all)) /datum/antagonist/cult/proc/admin_give_dagger(mob/admin) - if(!equip_cultist(metal=FALSE)) + if(!equip_cultist()) to_chat(admin, "Spawning dagger failed!") -/datum/antagonist/cult/proc/admin_give_metal(mob/admin) - if (!equip_cultist(metal=TRUE)) - to_chat(admin, "Spawning runed metal failed!") - /datum/antagonist/cult/proc/admin_take_all(mob/admin) var/mob/living/current = owner.current for(var/o in current.GetAllContents()) - if(istype(o, /obj/item/melee/cultblade/dagger) || istype(o, /obj/item/stack/sheet/runed_metal)) + if(istype(o, /obj/item/melee/cultblade/dagger)) qdel(o) /datum/antagonist/cult/master diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 66526d96a34f..60816a90d45d 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -5,7 +5,7 @@ light_power = 2 var/cooldowntime = 0 break_sound = 'sound/hallucinations/veryfar_noise.ogg' - debris = list(/obj/item/stack/sheet/runed_metal = 1) + debris = list(/obj/item/stack/sheet/mineral/hidden/hellstone = 1) /obj/structure/destructible/cult/proc/conceal() //for spells that hide cult presence density = FALSE diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index 9b9ba7c4d69d..ace534f94dfa 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -24,13 +24,6 @@ GLOBAL_LIST_INIT(lawlorify, list ( OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.", OBLIGATION_ANNOUNCEKILL = "This devil always loudly announces his kills for the world to hear.", OBLIGATION_ANSWERTONAME = "This devil always responds to his truename.", - BANE_SILVER = "Silver seems to gravely injure this devil.", - BANE_SALT = "Throwing salt at this devil will hinder his ability to use infernal powers temporarily.", - BANE_LIGHT = "Bright flashes will disorient the devil, likely causing him to flee.", - BANE_IRON = "Cold iron will slowly injure him, until he can purge it from his system.", - BANE_WHITECLOTHES = "Wearing clean white clothing will help ward off this devil.", - BANE_HARVEST = "Presenting the labors of a harvest will disrupt the devil.", - BANE_TOOLBOX = "That which holds the means of creation also holds the means of the devil's undoing.", BAN_HURTWOMAN = "This devil seems to prefer hunting men.", BAN_CHAPEL = "This devil avoids holy ground.", BAN_HURTPRIEST = "The annointed clergy appear to be immune to his powers.", @@ -62,13 +55,6 @@ GLOBAL_LIST_INIT(lawlorify, list ( BAN_STRIKEUNCONSCIOUS = "You must never strike an unconscious person.", BAN_HURTlizard = "You must never harm a lizardman outside of self defense.", BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.", - BANE_SILVER = "Silver, in all of its forms shall be your downfall.", - BANE_SALT = "Salt will disrupt your magical abilities.", - BANE_LIGHT = "Blinding lights will prevent you from using offensive powers for a time.", - BANE_IRON = "Cold wrought iron shall act as poison to you.", - BANE_WHITECLOTHES = "Those clad in pristine white garments will strike you true.", - BANE_HARVEST = "The fruits of the harvest shall be your downfall.", - BANE_TOOLBOX = "Toolboxes are bad news for you, for some reason.", BANISH_WATER = "If your corpse is filled with holy water, you will be unable to resurrect.", BANISH_COFFIN = "If your corpse is in a coffin, you will be unable to resurrect.", BANISH_FORMALDYHIDE = "If your corpse is embalmed, you will be unable to resurrect.", @@ -94,7 +80,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", show_to_ghosts = TRUE var/obligation var/ban - var/bane var/banish var/truename var/list/datum/mind/soulsOwned = new @@ -171,9 +156,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", /proc/randomdevilban() return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONSCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL) -/proc/randomdevilbane() - return pick(BANE_SALT, BANE_LIGHT, BANE_IRON, BANE_WHITECLOTHES, BANE_SILVER, BANE_HARVEST, BANE_TOOLBOX) - /proc/randomdevilbanish() return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB) @@ -489,7 +471,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", to_chat(owner.current, "However, your infernal form is not without weaknesses.") to_chat(owner.current, "You may not use violence to coerce someone into selling their soul.") to_chat(owner.current, "You may not directly and knowingly physically harm a devil, other than yourself.") - to_chat(owner.current, GLOB.lawlorify[LAW][bane]) to_chat(owner.current, GLOB.lawlorify[LAW][ban]) to_chat(owner.current, GLOB.lawlorify[LAW][obligation]) to_chat(owner.current, GLOB.lawlorify[LAW][banish]) @@ -499,12 +480,11 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", /datum/antagonist/devil/on_gain() truename = randomDevilName() ban = randomdevilban() - bane = randomdevilbane() obligation = randomdevilobligation() banish = randomdevilbanish() GLOB.allDevils[lowertext(truename)] = src - antag_memory += "Your devilic true name is [truename]
[GLOB.lawlorify[LAW][ban]]
You may not use violence to coerce someone into selling their soul.
You may not directly and knowingly physically harm a devil, other than yourself.
[GLOB.lawlorify[LAW][bane]]
[GLOB.lawlorify[LAW][obligation]]
[GLOB.lawlorify[LAW][banish]]
" + antag_memory += "Your devilic true name is [truename]
[GLOB.lawlorify[LAW][ban]]
You may not use violence to coerce someone into selling their soul.
You may not directly and knowingly physically harm a devil, other than yourself.
[GLOB.lawlorify[LAW][obligation]]
[GLOB.lawlorify[LAW][banish]]
" if(issilicon(owner.current)) var/mob/living/silicon/robot_devil = owner.current var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", GLOB.lawlorify[LAW][ban], GLOB.lawlorify[LAW][obligation], "Accomplish your objectives at all costs.") @@ -541,7 +521,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", parts += "The devil's true name is: [truename]" parts += "The devil's bans were:" parts += "[FOURSPACES][GLOB.lawlorify[LORE][ban]]" - parts += "[FOURSPACES][GLOB.lawlorify[LORE][bane]]" parts += "[FOURSPACES][GLOB.lawlorify[LORE][obligation]]" parts += "[FOURSPACES][GLOB.lawlorify[LORE][banish]]" return parts.Join("
") @@ -556,7 +535,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", //A simple super light weight datum for the codex gigas. /datum/fakeDevil var/truename - var/bane var/obligation var/ban var/banish @@ -564,7 +542,6 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", /datum/fakeDevil/New(name = randomDevilName()) truename = name - bane = randomdevilbane() obligation = randomdevilobligation() ban = randomdevilban() banish = randomdevilbanish() diff --git a/code/modules/antagonists/devil/devil_helpers.dm b/code/modules/antagonists/devil/devil_helpers.dm deleted file mode 100644 index 3be8320a001f..000000000000 --- a/code/modules/antagonists/devil/devil_helpers.dm +++ /dev/null @@ -1,37 +0,0 @@ -/mob/living/proc/check_devil_bane_multiplier(obj/item/weapon, mob/living/attacker) - var/datum/antagonist/devil/devilInfo = mind.has_antag_datum(/datum/antagonist/devil) - switch(devilInfo.bane) - if(BANE_WHITECLOTHES) - if(ishuman(attacker)) - var/mob/living/carbon/human/H = attacker - if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under)) - var/obj/item/clothing/under/U = H.w_uniform - var/static/list/whiteness = list ( - /obj/item/clothing/under/color/white = 2, - /obj/item/clothing/under/rank/civilian/bartender = 1, - /obj/item/clothing/under/rank/civilian/chef = 1, - /obj/item/clothing/under/rank/engineering/chief_engineer = 1, - /obj/item/clothing/under/rank/rnd/scientist = 1, - /obj/item/clothing/under/rank/medical/chemist = 1, - /obj/item/clothing/under/rank/medical/chief_medical_officer = 1, - /obj/item/clothing/under/rank/medical/geneticist = 1, - /obj/item/clothing/under/rank/medical/virologist = 1, - /obj/item/clothing/under/rank/medical/doctor/nurse = 1, - /obj/item/clothing/under/rank/medical/doctor = 1, - /obj/item/clothing/under/rank/security/detective = 1, - /obj/item/clothing/under/suit/white = 0.5, - ) - if(U && whiteness[U.type]) - src.visible_message("[src] seems to have been harmed by the purity of [attacker]'s clothes.", "Unsullied white clothing is disrupting your form.") - return whiteness[U.type] + 1 - if(BANE_TOOLBOX) - if(istype(weapon, /obj/item/storage/toolbox)) - src.visible_message("The [weapon] seems unusually robust this time.", "The [weapon] is your unmaking!") - return 2.5 // Will take four hits with a normal toolbox to crit. - if(BANE_HARVEST) - if(istype(weapon, /obj/item/reagent_containers/food/snacks/grown/)) - visible_message("The spirits of the harvest aid in the exorcism.", "The harvest spirits are harming you.") - Paralyze(40) - qdel(weapon) - return 2 - return 1 diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index 0faab8e003cf..4703f95263f7 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -113,11 +113,6 @@ /mob/living/carbon/true_devil/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) return 666 -/mob/living/carbon/true_devil/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0) - if(mind && has_bane(BANE_LIGHT)) - mind.disrupt_spells(-500) - return ..() //flashes don't stop devils UNLESS it's their bane. - /mob/living/carbon/true_devil/soundbang_act() return 0 @@ -126,8 +121,7 @@ /mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone) - var/weakness = check_weakness(I, user) - apply_damage(I.force * weakness, I.damtype, def_zone) + apply_damage(I.force, I.damtype, def_zone) var/message_verb = "" if(I.attack_verb && I.attack_verb.len) message_verb = "[pick(I.attack_verb)]" @@ -213,8 +207,6 @@ b_loss = 150 if (EXPLODE_LIGHT) b_loss = 30 - if(has_bane(BANE_LIGHT)) - b_loss *=2 adjustBruteLoss(b_loss) return ..() diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index b235199ed750..ca568bce6316 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -34,7 +34,7 @@ draining = TRUE essence_drained += rand(15, 20) to_chat(src, "You search for the soul of [target].") - if(do_after(src, rand(10, 20), 0, target)) //did they get deleted in that second? + if(do_after(src, rand(10, 20), target, timed_action_flags = IGNORE_HELD_ITEM)) //did they get deleted in that second? if(target.ckey) to_chat(src, "[target.p_their(TRUE)] soul burns with intelligence.") essence_drained += rand(20, 30) @@ -43,7 +43,7 @@ essence_drained += rand(40, 50) else to_chat(src, "[target.p_their(TRUE)] soul is weak and faltering.") - if(do_after(src, rand(15, 20), 0, target)) //did they get deleted NOW? + if(do_after(src, rand(15, 20), target, timed_action_flags = IGNORE_HELD_ITEM)) //did they get deleted NOW? switch(essence_drained) if(1 to 30) to_chat(src, "[target] will not yield much essence. Still, every bit counts.") @@ -53,7 +53,7 @@ to_chat(src, "Such a feast! [target] will yield much essence to you.") if(90 to INFINITY) to_chat(src, "Ah, the perfect soul. [target] will yield massive amounts of essence to you.") - if(do_after(src, rand(15, 25), 0, target)) //how about now + if(do_after(src, rand(15, 25), target, timed_action_flags = IGNORE_HELD_ITEM)) //how about now if(!target.stat) to_chat(src, "[target.p_theyre(TRUE)] now powerful enough to fight off your draining.") to_chat(target, "You feel something tugging across your body before subsiding.") @@ -76,7 +76,7 @@ draining = FALSE return var/datum/beam/B = Beam(target,icon_state="drain_life",time=INFINITY) - if(do_after(src, 46, 0, target)) //As one cannot prove the existance of ghosts, ghosts cannot prove the existance of the target they were draining. + if(do_after(src, 46, target, timed_action_flags = IGNORE_HELD_ITEM)) //As one cannot prove the existence of ghosts, ghosts cannot prove the existence of the target they were draining. change_essence_amount(essence_drained, FALSE, target) if(essence_drained <= 90 && target.stat != DEAD) essence_regen_cap += 5 diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 6fec09373797..ea6fe83c8a07 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -456,7 +456,7 @@ to_chat(src, "Attempting to remove this being from our presence.") - if(!do_mob(src, target, 30)) + if(!do_after(src, 3 SECONDS, target)) return var/turf/open/floor/F @@ -491,7 +491,7 @@ D.pixel_x = target.pixel_x D.pixel_y = target.pixel_y D.pixel_z = target.pixel_z - if(do_mob(src, target, 100)) + if(do_after(src, 10 SECONDS, target)) to_chat(src, "Dismantling complete.") var/atom/Tsec = target.drop_location() new /obj/item/stack/sheet/metal(Tsec, 5) @@ -604,7 +604,7 @@ if(resources < 5) to_chat(src, "We do not have the resources for this!") return - if(do_mob(src, src, 10)) + if(do_after(src, 1 SECONDS)) Fabricate(/obj/structure/swarmer/blockade, 5) @@ -633,7 +633,7 @@ if(!isturf(loc)) to_chat(src, "This is not a suitable location for replicating ourselves. We need more room.") return - if(do_mob(src, src, 100)) + if(do_after(src, 10 SECONDS)) var/createtype = SwarmerTypeToCreate() if(createtype && Fabricate(createtype, 50)) playsound(loc,'sound/items/poster_being_created.ogg',50, TRUE, -1) @@ -650,7 +650,7 @@ if(!isturf(loc)) return to_chat(src, "Attempting to repair damage to our body, stand by...") - if(do_mob(src, src, 100)) + if(do_after(src, 10 SECONDS)) adjustHealth(-100) to_chat(src, "We successfully repaired ourselves.") diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index bef2f277f7e1..895bfdc96cf4 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -65,8 +65,8 @@ icon = 'icons/obj/monitors.dmi' icon_state = "alarm" use_power = IDLE_POWER_USE - idle_power_usage = 4 - active_power_usage = 1200 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM power_channel = AREA_USAGE_ENVIRON //req_access = list(ACCESS_ATMOSPHERICS) max_integrity = 250 @@ -753,14 +753,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27) visible_message("The air alarm makes a quiet click as it stops heating the area") playsound(src, 'sound/machines/terminal_off.ogg', 40) heating_current_mode = "Idle" - use_power = IDLE_POWER_USE + set_idle_power() return if(wanted_mode == "Heat" & heating_current_mode == "Idle") visible_message("The air alarm makes a quiet click as it starts heating the area") playsound(src, 'sound/machines/terminal_on.ogg', 40) heating_current_mode = "Heat" - use_power = ACTIVE_POWER_USE + set_active_power() if(heating_current_mode == "Heat") var/temperature = environment.return_temperature() diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm index 9f2d582be256..30703b2f4a02 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm @@ -15,12 +15,19 @@ var/active = FALSE var/last_pressure_delta = 0 - pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY + pipe_flags = PIPING_ONE_PER_TURF var/flipped = 0 var/mode = CIRCULATOR_HOT var/obj/machinery/power/generator/generator +/obj/machinery/atmospherics/components/unary/shuttle/heater/on_construction(obj_color, set_layer) + var/obj/item/circuitboard/machine/circulator/board = circuit + if(board) + piping_layer = board.pipe_layer + set_layer = piping_layer + ..() + //for mappers /obj/machinery/atmospherics/components/binary/circulator/cold mode = CIRCULATOR_COLD diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm index 8579d70a1165..8cd12ddf27cf 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm @@ -18,6 +18,10 @@ can_unwrench = TRUE shift_underlay_only = FALSE + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = ACTIVE_DRAW_MINIMAL + var/target_pressure = ONE_ATMOSPHERE var/frequency = 0 @@ -30,6 +34,10 @@ /obj/machinery/atmospherics/components/binary/pump/CtrlClick(mob/user) if(can_interact(user)) on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() return ..() @@ -110,6 +118,10 @@ switch(action) if("power") on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("pressure") diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm index 020570f34785..24ef0997406d 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm @@ -73,6 +73,9 @@ It's like a regular ol' straight pipe, but you can turn it on and off. return ..() +/obj/machinery/atmospherics/components/binary/valve/digital/toggle() + use_power(ACTIVE_DRAW_MINIMAL) + . = ..() /obj/machinery/atmospherics/components/binary/valve/layer2 piping_layer = 2 diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm index 03b41df05e32..c32a750848da 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm @@ -18,6 +18,10 @@ can_unwrench = TRUE shift_underlay_only = FALSE + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = ACTIVE_DRAW_MINIMAL + var/transfer_rate = MAX_TRANSFER_RATE var/overclocked = FALSE @@ -31,6 +35,10 @@ /obj/machinery/atmospherics/components/binary/volume_pump/CtrlClick(mob/user) if(can_interact(user)) on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() return ..() @@ -130,6 +138,10 @@ switch(action) if("power") on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("rate") diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm index 404ecbf46eb2..d196bca1c3b3 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -5,6 +5,10 @@ name = "gas filter" desc = "Very useful for filtering gasses." + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = ACTIVE_DRAW_MINIMAL + can_unwrench = TRUE var/transfer_rate = MAX_TRANSFER_RATE var/filter_type = null @@ -17,6 +21,10 @@ /obj/machinery/atmospherics/components/trinary/filter/CtrlClick(mob/user) if(can_interact(user)) on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() return ..() @@ -114,6 +122,10 @@ switch(action) if("power") on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("rate") diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm index c1ce88286b4c..9ea52bd847be 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm @@ -5,6 +5,10 @@ name = "gas mixer" desc = "Very useful for mixing gasses." + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = ACTIVE_DRAW_MINIMAL + can_unwrench = TRUE var/target_pressure = ONE_ATMOSPHERE @@ -19,6 +23,10 @@ /obj/machinery/atmospherics/components/trinary/mixer/CtrlClick(mob/user) if(can_interact(user)) on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() return ..() @@ -137,6 +145,10 @@ switch(action) if("power") on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("pressure") diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index 1b6df20c721e..bcb46dedf147 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -6,6 +6,7 @@ desc = "Heats or cools gas in connected pipes." density = TRUE + idle_power_usage = IDLE_DRAW_LOW max_integrity = 300 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 30) layer = OBJ_LAYER @@ -83,7 +84,7 @@ var/temperature_delta= abs(old_temperature - air_contents.return_temperature()) if(temperature_delta > 1) - active_power_usage = (heat_capacity * temperature_delta) / 10 + idle_power_usage + active_power_usage = (heat_capacity * temperature_delta) / 5 + idle_power_usage update_parents() else active_power_usage = idle_power_usage @@ -152,7 +153,10 @@ switch(action) if("power") on = !on - use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("target") @@ -182,6 +186,10 @@ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index c55b8da80436..dc8b278959f6 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -48,8 +48,8 @@ radio_connection = null adjacent_turfs.Cut() return ..() - -/obj/machinery/atmospherics/components/unary/vent_scrubber/auto_use_power() +/* +/obj/machinery/atmospherics/components/unary/vent_scrubber/auto_use_power() //auto_use_power no longer called if(!on || welded || !is_operational || !powered(power_channel)) return FALSE @@ -64,7 +64,7 @@ amount += amount * (adjacent_turfs.len * (adjacent_turfs.len / 2)) use_power(amount, power_channel) return TRUE - +*/ /obj/machinery/atmospherics/components/unary/vent_scrubber/update_icon_nopipes() cut_overlays() if(showpipe) @@ -138,13 +138,20 @@ ..() if(welded || !on || !is_operational) + if(use_static_power != NO_POWER_USE) + set_no_power() return FALSE if(!nodes[1]) return FALSE scrub(loc) if(widenet) + if(use_static_power != ACTIVE_POWER_USE) + set_active_power() for(var/turf/tile in adjacent_turfs) scrub(tile) + else + if(use_static_power != IDLE_POWER_USE) + set_idle_power() return TRUE /obj/machinery/atmospherics/components/unary/vent_scrubber/proc/scrub(turf/tile) diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm index 811979dd4c39..07aca0757568 100644 --- a/code/modules/atmospherics/machinery/other/meter.dm +++ b/code/modules/atmospherics/machinery/other/meter.dm @@ -6,8 +6,8 @@ layer = GAS_PUMP_LAYER power_channel = AREA_USAGE_ENVIRON use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 4 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = IDLE_DRAW_MINIMAL max_integrity = 150 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 40, "acid" = 0) var/frequency = 0 diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm index 37045635cf1a..ca85e9cc5569 100644 --- a/code/modules/atmospherics/machinery/other/miner.dm +++ b/code/modules/atmospherics/machinery/other/miner.dm @@ -26,8 +26,8 @@ var/power_draw_dynamic_kpa_coeff = 0.5 var/broken = FALSE var/broken_message = "ERROR" - idle_power_usage = 150 - active_power_usage = 2000 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_HIGH /obj/machinery/atmospherics/miner/Initialize() . = ..() diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm index b608d5849e38..8e71222ab4d4 100644 --- a/code/modules/atmospherics/machinery/portable/scrubber.dm +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -113,8 +113,8 @@ name = "huge air scrubber" icon_state = "scrubber:0" anchored = TRUE - active_power_usage = 500 - idle_power_usage = 10 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM overpressure_m = 200 volume_rate = 1500 @@ -137,8 +137,10 @@ if((!anchored && !movable) || !is_operational) on = FALSE update_appearance() - use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE - if(!on) + if(on) + set_active_power() + else + set_idle_power() return ..() diff --git a/code/modules/autowiki/pages/reactions.dm b/code/modules/autowiki/pages/reactions.dm new file mode 100644 index 000000000000..2e1a07b806e4 --- /dev/null +++ b/code/modules/autowiki/pages/reactions.dm @@ -0,0 +1,65 @@ +/* +Templates: + +Autowiki/Reaction +{{{chems|ERROR}}} {{#if: {{{temperature|}}} |
Temperature {{{temperature}}} | }} {{#if: {{{container|}}} |
Needs container "{{{container}}}" | }}
Makes {{{volume|1}}}u + +Autowiki/Reagent +{{#if: {{{tooltip|}}} | {{Tooltip|{{{volume}}} part [[#{{{name}}}|{{{name}}}]]|{{{tooltip}}}|FEF6E7}} | {{{volume}}} part {{{name}}} }} + +*/ + +/datum/autowiki/reactions + page = "Template:Autowiki/Content/Reactions" + +/datum/autowiki/reactions/generate() + var/list/output = list() + + var/list/mixable_reagents = list() + var/list/all_reactions = list() + for(var/type in subtypesof(/datum/chemical_reaction)) + var/datum/chemical_reaction/reaction = new type + all_reactions += reaction + mixable_reagents |= reaction.results + + for(var/datum/chemical_reaction/reaction as anything in all_reactions) + var/required_chems = "" + for(var/datum/reagent/required_chem_type as anything in reaction.required_reagents) + var/has_tooltip = (required_chem_type in mixable_reagents) && !(required_chem_type in reaction.results) && !(required_chem_type in GLOB.base_reagents) + required_chems += format_required_reagent(required_chem_type, reaction.required_reagents[required_chem_type], has_tooltip) + + for(var/datum/reagent/required_catalyst_type as anything in reaction.required_catalysts) + var/has_tooltip = (required_catalyst_type in mixable_reagents) && !(required_catalyst_type in reaction.results) && !(required_catalyst_type in GLOB.base_reagents) + required_chems += format_required_reagent(required_catalyst_type, reaction.required_catalysts[required_catalyst_type], has_tooltip, "Catalyst") + + for(var/datum/reagent/result_chem_type as anything in reaction.results) + var/result_name = escape_value(initial(result_chem_type.name)) + var/list/details = list("volume" = reaction.results[result_chem_type], "chems" = required_chems, "name" = result_name) + + if(reaction.required_temp > 0) + details["temperature"] = "[reaction.is_cold_recipe ? "below" : "above"] [reaction.required_temp]K" + + if(reaction.required_container) + details["container"] = "[escape_value(initial(reaction.required_container.name))]" + + var/description = include_template("Autowiki/Reaction", details) + if(result_name in output) + output[result_name] += "
OR
[description]" + else + output[result_name] = description + + return output + +/datum/autowiki/reactions/proc/format_required_reagent(datum/reagent/required_reagent_type, volume, has_tooltip = FALSE, type) + var/list/details = list( + "volume" = volume, + "name" = escape_value(initial(required_reagent_type.name)) + ) + + if(has_tooltip) + details["tooltip"] = include_template("Autowiki/Content/Reactions/[initial(required_reagent_type.name)]") + + if(type) + details["type"] = type + + return include_template("Autowiki/Reagent", details) diff --git a/code/modules/autowiki/pages/reagents.dm b/code/modules/autowiki/pages/reagents.dm index d10137d07f53..885c64665c20 100644 --- a/code/modules/autowiki/pages/reagents.dm +++ b/code/modules/autowiki/pages/reagents.dm @@ -1,65 +1,52 @@ -/* -Templates: - -Autowiki/Reaction -{{{chems|ERROR}}} {{#if: {{{temperature|}}} |
Temperature {{{temperature}}} | }} {{#if: {{{container|}}} |
Needs container "{{{container}}}" | }}
Makes {{{volume|1}}}u - -Autowiki/Reagent -{{#if: {{{tooltip|}}} | {{Tooltip|{{{volume}}} part [[#{{{name}}}|{{{name}}}]]|{{{tooltip}}}|FEF6E7}} | {{{volume}}} part {{{name}}} }} - -*/ - /datum/autowiki/reagents - page = "Template:Autowiki/Content/Reactions" + page = "Template:Autowiki/Content/Reagents" /datum/autowiki/reagents/generate() - var/list/output = list() + var/output = "" var/list/mixable_reagents = list() - var/list/all_reactions = list() for(var/type in subtypesof(/datum/chemical_reaction)) var/datum/chemical_reaction/reaction = new type - all_reactions += reaction mixable_reagents |= reaction.results + qdel(reaction) - for(var/datum/chemical_reaction/reaction as anything in all_reactions) - var/required_chems = "" - for(var/datum/reagent/required_chem_type as anything in reaction.required_reagents) - var/has_tooltip = (required_chem_type in mixable_reagents) && !(required_chem_type in reaction.results) && !(required_chem_type in GLOB.base_reagents) - required_chems += format_required_reagent(required_chem_type, reaction.required_reagents[required_chem_type], has_tooltip) + var/list/categories = list() - for(var/datum/reagent/required_catalyst_type as anything in reaction.required_catalysts) - var/has_tooltip = (required_catalyst_type in mixable_reagents) && !(required_catalyst_type in reaction.results) && !(required_catalyst_type in GLOB.base_reagents) - required_chems += format_required_reagent(required_catalyst_type, reaction.required_catalysts[required_catalyst_type], has_tooltip, "Catalyst") + for(var/reagent in mixable_reagents) + var/datum/reagent/chem = new reagent - for(var/datum/reagent/result_chem_type as anything in reaction.results) - var/result_name = escape_value(initial(result_chem_type.name)) - var/list/details = list("volume" = reaction.results[result_chem_type], "chems" = required_chems, "name" = result_name) + LAZYINITLIST(categories[chem.category]) + categories[chem.category] += list(chem) - if(reaction.required_temp > 0) - details["temperature"] = "[reaction.is_cold_recipe ? "below" : "above"] [reaction.required_temp]K" + for(var/category in sortList(categories)) + output += "\n" + output += generate_category(category, categories[category]) - if(reaction.required_container) - details["container"] = "[escape_value(initial(reaction.required_container.name))]" + return output - var/description = include_template("Autowiki/Reaction", details) - if(result_name in output) - output[result_name] += "
OR
[description]" - else - output[result_name] = description +/datum/autowiki/reagents/proc/generate_category(name, list/datum/reagent/reagents) + var/output = "== [escape_value(name)] ==\n" - return output + output += "{| class='wikitable sortable' style=width:100%; text-align:left; border: 3px solid #FFDD66; cellspacing=0; cellpadding=2; background-color:white;'\n" + output += "! scope='col' style='width:150px; background-color:#FFDD66;' |Name\n" + output += "! class='unsortable' scope='col' style='width:150px; background-color:#FFDD66;' |Recipe\n" + output += "! class='unsortable' scope='col' style='background-color:#FFDD66;' |Description\n" + output += "! scope='col' | Metabolization Rate\n" + output += "! scope='col' | Overdose Threshold\n" + output += "! scope='col' | Addiction Threshold\n" + output += "|-\n" -/datum/autowiki/reagents/proc/format_required_reagent(datum/reagent/required_reagent_type, volume, has_tooltip = FALSE, type) - var/list/details = list( - "volume" = volume, - "name" = escape_value(initial(required_reagent_type.name)) - ) + reagents = sortList(reagents, /proc/cmp_typepaths_asc) - if(has_tooltip) - details["tooltip"] = include_template("Autowiki/Content/Reactions/[initial(required_reagent_type.name)]") + for(var/datum/reagent/reagent as anything in reagents) + output += "! style='background-color: #FFEE88;' | [include_template("anchor", list("1" = escape_value(reagent.name)))][escape_value(reagent.name)] _\n" + output += "|[include_template("Autowiki/Content/Reactions/[escape_value(reagent.name)]")]\n" + output += "|[escape_value(reagent.description)]\n" + output += "|data-sort-value=[reagent.metabolization_rate]|[reagent.metabolization_rate] units per tick\n" + output += "|[reagent.overdose_threshold || "data-sort-value=0|N/A"]\n" + output += "|[reagent.addiction_threshold || "data-sort-value=0|N/A"]\n" + output += "|-\n" - if(type) - details["type"] = type + output += "|}\n" - return include_template("Autowiki/Reagent", details) + return output diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 40932634cfa4..11358938bd47 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -30,7 +30,7 @@ var/mob_color //Change the mob's color var/assignedrole var/show_flavour = TRUE - var/banType = ROLE_LAVALAND + var/ban_type = ROLE_LAVALAND var/ghost_usable = TRUE /// Weakref to the mob this spawner created - just if you needed to do something with it. var/datum/weakref/spawned_mob_ref @@ -42,7 +42,7 @@ if(!uses) to_chat(user, "This spawner is out of charges!") return - if(is_banned_from(user.key, banType)) + if(is_banned_from(user.key, ban_type)) to_chat(user, "You are jobanned!") return if(!allow_spawn(user)) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index a643be115aab..51ab76479657 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -157,8 +157,8 @@ GLOBAL_LIST_EMPTY(gateway_destinations) density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 100 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_EXTREME var/calibrated = TRUE /// Type of instanced gateway destination, needs to be subtype of /datum/gateway_destination/gateway @@ -198,7 +198,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) target = null dest.deactivate(src) QDEL_NULL(portal) - use_power = IDLE_POWER_USE + set_idle_power() update_appearance() portal_visuals.reset_visuals() @@ -221,7 +221,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) target.activate(destination) portal_visuals.setup_visuals(target) generate_bumper() - use_power = ACTIVE_POWER_USE + set_active_power() update_appearance() /obj/machinery/gateway/proc/Transfer(atom/movable/AM) diff --git a/code/modules/awaymissions/mission_code/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm index dee4def256b0..efe429b86b73 100644 --- a/code/modules/awaymissions/mission_code/spacebattle.dm +++ b/code/modules/awaymissions/mission_code/spacebattle.dm @@ -41,11 +41,11 @@ name = "Hidden Chamber" icon_state = "awaycontent10" -/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle +/mob/living/simple_animal/hostile/human/syndicate/ranged/spacebattle loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, /obj/item/gun/ballistic/automatic/smg/c20r, /obj/item/shield/energy) -/mob/living/simple_animal/hostile/syndicate/melee/spacebattle +/mob/living/simple_animal/hostile/human/syndicate/melee/spacebattle deathmessage = "falls limp as they release their grip from the energy weapons, activating their self-destruct function!" loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) diff --git a/code/modules/buildmode/buildmode.dm b/code/modules/buildmode/buildmode.dm index 81c46eebd10c..d85929daa0a8 100644 --- a/code/modules/buildmode/buildmode.dm +++ b/code/modules/buildmode/buildmode.dm @@ -182,9 +182,6 @@ return TRUE // no doing underlying actions /proc/togglebuildmode(mob/M as mob in GLOB.player_list) - set name = "Toggle Build Mode" - set category = "Event" - if(M.client) if(istype(M.client.click_intercept,/datum/buildmode)) var/datum/buildmode/B = M.client.click_intercept diff --git a/code/modules/cargo/blackmarket/blackmarket_item.dm b/code/modules/cargo/blackmarket/blackmarket_item.dm index fa09c3985de6..cbadddcf1221 100644 --- a/code/modules/cargo/blackmarket/blackmarket_item.dm +++ b/code/modules/cargo/blackmarket/blackmarket_item.dm @@ -28,6 +28,8 @@ var/availability_prob = 0 // Should there be an unlimited stock of an item var/unlimited = FALSE + /// Should another item spawn alongside this one in the catalogue? + var/datum/blackmarket_item/pair_item /datum/blackmarket_item/New() if(isnull(price)) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm index 95cb31d27a5e..951574fedfe2 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm @@ -1,15 +1,45 @@ /datum/blackmarket_item/clothing category = "Clothing" -/datum/blackmarket_item/clothing/ninja_mask - name = "Space Ninja Mask" - desc = "Apart from being acid, lava, fireproof and being hard to take off someone it does nothing special on it's own." - item = /obj/item/clothing/mask/gas/space_ninja +/datum/blackmarket_item/clothing/cloth + name = "Build Your Own Jumpsuit Special" + desc = "Ever wanted to learn how to sew? This lovely selection of cloth is perfect to get some practice with." + item = /obj/item/stack/sheet/cotton/cloth/ten price_min = 200 - price_max = 500 - stock_max = 3 - availability_prob = 40 + price_max = 400 + stock_max = 5 + availability_prob = 80 + +/datum/blackmarket_item/clothing/crown + name = "Crown" + desc = "A beautiful golden crown, rich with history and pedigree. Better worn than left to collect dust in a museum, right?" + item = /obj/item/clothing/head/crown/fancy + + price_min = 1000 + price_max = 2000 + stock_max = 1 + availability_prob = 20 + +/datum/blackmarket_item/clothing/galaxy_blue + name = "Blue Galaxy Suit" + desc = "A handsome silk suit, treated with a finish of bluespace dust for an out of this world sheen." + item = /obj/item/clothing/under/rank/civilian/lawyer/galaxy + + price_min = 500 + price_max = 2000 + stock = 1 + availability_prob = 20 + +/datum/blackmarket_item/clothing/galaxy_red + name = "Red Galaxy Suit" + desc = "A handsome silk suit, treated with a finish of telecrystal dust. It cuts a menacing figure." + item = /obj/item/clothing/under/rank/civilian/lawyer/galaxy/red + + price_min = 500 + price_max = 2000 + stock = 1 + availability_prob = 20 /datum/blackmarket_item/clothing/durathread_vest name = "Durathread Vest" @@ -31,15 +61,73 @@ stock_max = 4 availability_prob = 50 +/datum/blackmarket_item/clothing/degraded_armor_set + name = "Clearance Bin Armor Set" + desc = "Looking to protect yourself, but on a tight budget? These previously used vest and helmets served their former owners well! (May they rest in peace.)" + item = /obj/item/storage/box + + price_min = 100 + price_max = 400 + stock_min = 4 + stock_max = 6 + availability_prob = 80 + +/datum/blackmarket_item/clothing/degraded_armor_set/spawn_item(loc) + var/obj/item/storage/box/B = ..() + B.name = "Used Armor Set Box" + B.desc = "It smells distinctly of iron." + new /obj/item/clothing/head/helmet/old(B) + new /obj/item/clothing/suit/armor/vest/old(B) + return B + +/datum/blackmarket_item/clothing/frontiersmen_armor_set + name = "X-11 Bulletproof Armor Set" + desc = "We got a good deal on some extra bulletproof armor from a Frontiersmen Quartermaster, and we're passing those savings onto you!" + item = /obj/item/storage/box + + price_min = 1000 + price_max = 1750 + stock_max = 3 + availability_prob = 50 + +/datum/blackmarket_item/clothing/frontiersmen_armor_set/spawn_item(loc) + var/obj/item/storage/box/B = ..() + B.name = "Bulletproof Armor Set Box" + B.desc = "A beat up looking box with some armor inside." + new /obj/item/clothing/suit/armor/vest/bulletproof/frontier(B) + new /obj/item/clothing/head/helmet/bulletproof/x11/frontier(B) + return B + +/datum/blackmarket_item/clothing/gezena_armor + name = "Raksha-Plating vest" + desc = "Genuine armor vests used by the PGF Marine Corp. If a military guy in a cape comes by, play dumb." + item = /obj/item/clothing/suit/armor/gezena/marine + pair_item = /datum/blackmarket_item/clothing/gezena_helmet + + price_min = 750 + price_max = 1250 + stock_max = 3 + availability_prob = 20 + +/datum/blackmarket_item/clothing/gezena_helmet + name = "Raksha-Helm" + desc = "A helmet used by the PGF Marine Corp. They won't miss it. Not like there's much to protect up there anyways." + item = /obj/item/clothing/head/helmet/gezena + + price_min = 500 + price_max = 600 + stock_max = 3 + availability_prob = 0 + /datum/blackmarket_item/clothing/full_spacesuit_set name = "\improper Nanotrasen Branded Spacesuit Box" desc = "A few boxes of \"Old Style\" space suits fell off the back of a space truck." item = /obj/item/storage/box - price_min = 1500 - price_max = 4000 + price_min = 250 + price_max = 750 stock_max = 3 - availability_prob = 30 + availability_prob = 70 /datum/blackmarket_item/clothing/full_spacesuit_set/spawn_item(loc) var/obj/item/storage/box/B = ..() @@ -60,11 +148,31 @@ availability_prob = 70 /datum/blackmarket_item/clothing/combatmedic_suit - name = "Combat Medic hardsuit" - desc = "A discarded combat medic hardsuit, found in the ruins of a carpet bombed xeno hive. Definately used, but as sturdy as an anchor." + name = "Combat Medic Hardsuit" + desc = "A discarded combat medic hardsuit, found in the ruins of a carpet bombed xeno hive. Definitely used, but as sturdy as an anchor." item = /obj/item/clothing/suit/space/hardsuit/combatmedic - price_min = 5500 - price_max = 7000 - stock_max = 1 - availability_prob = 10 + price_min = 1000 + price_max = 2500 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/clothing/ramzi_suit + name = "Rusted Red Hardsuit" + desc = "A vintage ICW Era Gorlex Maruader hardsuit. The previous owner said we could have it when we pried it off their cold dead hands. Dry cleaning not included." + item = /obj/item/clothing/head/helmet/space/hardsuit/syndi/ramzi + + price_min = 1500 + price_max = 2500 + stock = 1 + availability_prob = 30 + +/datum/blackmarket_item/clothing/frontiersmen_hardsuit + name = "Frontiersmen Hardsuit" + desc = "An old but durable hardsuit typically used by the Frontiersmen. We accept no liability if you're shot by CLIP while wearing this." + item = /obj/item/clothing/suit/space/hardsuit/security/independent/frontier + + price_min = 1000 + price_max = 2000 + stock_max = 3 + availability_prob = 40 diff --git a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm index 00cfd456ea13..6e6551b58e86 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm @@ -1,20 +1,10 @@ /datum/blackmarket_item/consumable category = "Consumables" -/datum/blackmarket_item/consumable/clown_tears - name = "Bowl of Clown's Tears" - desc = "Guaranteed fresh from Weepy Boggins Tragic Kitchen" - item = /obj/item/reagent_containers/food/snacks/soup/clownstears - stock = 1 - - price_min = 520 - price_max = 600 - availability_prob = 10 - /datum/blackmarket_item/consumable/donk_pocket_box name = "Box of Donk Pockets" desc = "A well packaged box containing the favourite snack of every spacefarer." - item = /obj/item/storage/box/donkpockets + item = /obj/effect/spawner/lootdrop/donkpockets stock_min = 2 stock_max = 5 @@ -29,8 +19,8 @@ stock_min = 2 stock_max = 3 - price_min = 400 - price_max = 700 + price_min = 200 + price_max = 500 availability_prob = 50 /datum/blackmarket_item/consumable/suspicious_pills/spawn_item(loc) @@ -52,12 +42,176 @@ price_max = 60 availability_prob = 50 +/datum/blackmarket_item/consumable/trickwine + name = "Trickwine" + desc = "The SRM keeps the recipes for their trickwines a closely guarded secret. The Hunters carrying those bottles? Less so." + item = /datum/reagent/consumable/ethanol/trickwine/ash_wine + + price_min = 200 + price_max = 600 + stock_min = 3 + stock_max = 7 + availability_prob = 40 + +/datum/blackmarket_item/consumable/trickwine/spawn_item(loc) + var/trickwine = pick(list(/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine)) + return new trickwine(loc) + + /datum/blackmarket_item/consumable/pumpup name = "Maintenance Pump-Up" - desc = "Resist any Baton stun with this handy device!" + desc = "Resist any Baton stun with this handy instant tetanus free injector!." item = /obj/item/reagent_containers/hypospray/medipen/pumpup stock_max = 3 price_min = 50 price_max = 150 availability_prob = 90 + +/datum/blackmarket_item/consumable/morphine + name = "Morphine Bottle" + desc = "Medicinal? Recreational? You can decide with this 30u bottle of morphine!" + item = /obj/item/reagent_containers/glass/bottle/morphine + + price_min = 50 + price_max = 150 + stock_max = 4 + availability_prob = 50 + +/datum/blackmarket_item/consumable/cyanide + name = "Cyanide Bottle" + desc = "Cyanide, a tried and true classic for all your poisoning needs." + item = /obj/item/reagent_containers/glass/bottle/cyanide + + price_min = 300 + price_max = 600 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/consumable/sodium_thiopental + name = "Sodium Thiopental Bottle" + desc = "Sodium Thiopental, a potent and fast acting sedative for any occasion." + item = /obj/item/reagent_containers/glass/bottle/sodium_thiopental + + price_min = 300 + price_max = 600 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/consumable/amanitin + name = "Amanitin bottle" + desc = "A slow acting, but nearly undetectable poison. For the dignified assassin." + item = /obj/item/reagent_containers/glass/bottle/amanitin + + price_min = 300 + price_max = 600 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/consumable/gumballs + name = "Gumball" + desc = "Looking for a sweet treat? These gumballs are sure to satisfy." + item = /obj/item/reagent_containers/food/snacks/gumball + + price_min = 10 + price_max = 20 + stock_min = 10 + stock_max = 20 + availability_prob = 80 + +/datum/blackmarket_item/consumable/xeno_meat + name = "Xenomorph steak" + desc = "The Frontier's most dangerous game, delivered right to your plate! May constitute a violation of your local BARD laws and regulations." + item = /obj/item/reagent_containers/food/snacks/meat/slab/xeno + + price_min = 300 + price_max = 500 + stock_max = 5 + availability_prob = 20 + +/datum/blackmarket_item/consumable/berries + name = "Berries" + desc = "Some fresh berries we found growing in the corner of our hangar. We're not 100% sure what species these are." + item = /obj/item/reagent_containers/food/snacks/grown/berries + + price_min = 25 + price_max = 100 + stock_min = 10 + stock_max = 20 + availability_prob = 40 + +/datum/blackmarket_item/consumable/berries/spawn_item(loc) + var/berries = pick(list(/obj/item/reagent_containers/food/snacks/grown/berries, + /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth, + /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth)) + return new berries(loc) + +/datum/blackmarket_item/consumable/ration + name = "Ration Pack" + desc = "PGF military surplus rations. What's in them? Who knows. Surprise is the spice of life after all." + item = /obj/effect/spawner/lootdrop/ration + + price_min = 150 + price_max = 400 + availability_prob = 80 + unlimited = TRUE + +/datum/blackmarket_item/consumable/thirteenloko + name = "Can of Thirteen Loko" + desc = "This product was quietly discontinued after multiple health related incidents. But you aren't a coward, are you?" + item = /obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko + + price_min = 10 + price_max = 50 + stock_min = 10 + stock_max = 20 + availability_prob = 50 + +/datum/blackmarket_item/consumable/sutures + name = "Sutures" + desc = "A bundle of sutures for stitching up your latest bullet wound." + item = /obj/item/stack/medical/suture + + price_min = 200 + price_max = 450 + stock_min = 2 + stock_max = 5 + availability_prob = 40 + +/datum/blackmarket_item/consumable/regen_mesh + name = "Regenerative Mesh" + desc = "A smoothing pack of regenerative mesh for your burns." + item = /obj/item/stack/medical/mesh + + price_min = 200 + price_max = 450 + stock_min = 2 + stock_max = 5 + availability_prob = 40 + +/datum/blackmarket_item/consumable/bruise_pack + name = "Bruise Packs" + desc = "A bundle of old bruise packs, for you guessed it, bruises. Any rumors of these containing hazardous chemicals are just that. Rumors." + item = /obj/item/stack/medical/bruise_pack + + price_min = 300 + price_max = 500 + stock_min = 2 + stock_max = 5 + availability_prob = 30 + +/datum/blackmarket_item/consumable/ointment + name = "Burn ointment" + desc = "A tube of burn ointment. It's past the expiry date, but those are only suggestions." + item = /obj/item/stack/medical/ointment + + price_min = 300 + price_max = 500 + stock_min = 2 + stock_max = 5 + availability_prob = 30 diff --git a/code/modules/cargo/blackmarket/blackmarket_items/emergency.dm b/code/modules/cargo/blackmarket/blackmarket_items/emergency.dm new file mode 100644 index 000000000000..b609da87945d --- /dev/null +++ b/code/modules/cargo/blackmarket/blackmarket_items/emergency.dm @@ -0,0 +1,52 @@ +/datum/blackmarket_item/emergency + category = "Emergency" + +/datum/blackmarket_item/emergency/plasma + name = "Ten Plasma Sheets" + desc = "Low on fuel? We can part with some plasma... for a reasonable price." + item = /obj/item/stack/sheet/mineral/plasma/ten + + price_min = 1750 + price_max = 2250 + availability_prob = 100 + unlimited = TRUE + +/datum/blackmarket_item/emergency/uranium + name = "Ten Uranium Sheets" + desc = "Fuel? Dirty Bomb? Fancy nightlight? Doesn't matter, we'll supply." + item = /obj/item/stack/sheet/mineral/uranium/ten + + price_min = 1750 + price_max = 2250 + availability_prob = 100 + unlimited = TRUE + +/datum/blackmarket_item/emergency/ion_thruster + name = "Ion Thruster" + desc = "Need a boost? We have a leftover engine board or two from a ship we happened to find. If you're lucky, you won't be the next." + item = /obj/item/circuitboard/machine/shuttle/engine/electric + + price_min = 2000 + price_max = 3000 + stock_max = 5 + availability_prob = 100 + +/datum/blackmarket_item/emergency/oyxgen + name = "Oxygen Canister" + desc = "What keeps us all breathing. It'll keep you breathing too, if you know what's good for you." + item = /obj/machinery/portable_atmospherics/canister/oxygen + + price_min = 2000 + price_max = 3000 + stock_max = 3 + availability_prob = 100 + +/datum/blackmarket_item/emergency/metal_foam + name = "Metal Foam Grenade" + desc = "Poor piloting blow a hole in the side of your hull? These metal foam grenades should keep everything important in." + item = /obj/item/grenade/chem_grenade/metalfoam + + price_min = 300 + price_max = 750 + availability_prob = 100 + unlimited = TRUE diff --git a/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm b/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm new file mode 100644 index 000000000000..7fe78cdcd055 --- /dev/null +++ b/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm @@ -0,0 +1,88 @@ +/datum/blackmarket_item/explosive + category = "Explosives" + +/datum/blackmarket_item/explosive/emp_grenade + name = "EMP Grenade" + desc = "Use this grenade for SHOCKING results!" + item = /obj/item/grenade/empgrenade + + price_min = 100 + price_max = 400 + stock_max = 5 + availability_prob = 50 + +/datum/blackmarket_item/explosive/h_e + name = "HE Grenade" + desc = "These high explosive grenades are sure to get some bang for your buck." + item = /obj/item/grenade/syndieminibomb/concussion + + price_min = 100 + price_max = 500 + stock_min = 2 + stock_max = 5 + availability_prob = 25 + +/datum/blackmarket_item/explosive/frag + name = "Fragmentation Grenade" + desc = "Pull the pin, count to three, and throw for best results." + item = /obj/item/grenade/frag + + price_min = 100 + price_max = 500 + stock_min = 3 + stock_max = 5 + availability_prob = 40 + +/datum/blackmarket_item/explosive/c4 + name = "C4" + desc = "Looking to make an explosive entrance? These plastic explosives are perfect for the job." + item = /obj/item/grenade/c4 + + price_min = 100 + price_max = 400 + stock_min = 5 + stock_max = 10 + availability_prob = 50 + +/datum/blackmarket_item/explosive/x4 + name = "X4" + desc = "X4 Plastic Explosives! Better than W4, worse than Y4." + item = /obj/item/grenade/c4/x4 + + price_min = 400 + price_max = 700 + stock_min = 2 + stock_max = 4 + availability_prob = 25 + +/datum/blackmarket_item/explosive/slipocalypse + name = "Slipocalyse Cluster Bomb" + desc = "Wash away the opposition with sudstastic grenade!" + item = /obj/item/grenade/clusterbuster/soap + + price_min = 500 + price_max = 1500 + stock = 1 + availability_prob = 10 + +/datum/blackmarket_item/explosive/rusted_mine + name = "Landmine" + desc = "Recovered from a decades old ICW battlefield by our best EOD tech, Nicky Nine Fingers." + item = /obj/item/mine/pressure/explosive/rusty + + price_min = 250 + price_max = 500 + stock_max = 7 + availability_prob = 50 + +/datum/blackmarket_item/explosive/rpg + name = "PML-9 RPG" + desc = "Offically, it's an anti-armor RPG launcher. Technically, it's anti-everything. Most things don't enjoy being hit in the face with high explosives." + item = /obj/item/gun/ballistic/rocketlauncher + + price_min = 3500 + price_max = 6500 + stock_min = 2 + stock_max = 5 + availability_prob = 20 + diff --git a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm index c9a165faaa2f..a5e2c67175af 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm @@ -16,26 +16,11 @@ desc = "Yeehaw, hardboiled friends! This holster is the first step in your dream of becoming a detective and being allowed to shoot real guns!" item = /obj/item/clothing/accessory/holster - price_min = 400 + price_min = 200 price_max = 800 stock_max = 8 availability_prob = 60 -/datum/blackmarket_item/misc/holywater - name = "Flask of holy water" - desc = "Father Lootius' own brand of ready-made holy water." - item = /obj/item/reagent_containers/food/drinks/bottle/holywater - - price_min = 400 - price_max = 600 - stock_max = 3 - availability_prob = 40 - -/datum/blackmarket_item/misc/holywater/spawn_item(loc) - if (prob(6.66)) - return new /obj/item/reagent_containers/glass/beaker/unholywater(loc) - return ..() - /datum/blackmarket_item/misc/strange_seed name = "Strange Seeds" desc = "An Exotic Variety of seed that can contain anything from glow to acid." @@ -51,7 +36,74 @@ desc = "This easily hidden satchel can become a versatile tool to anybody with the desire to keep certain items out of sight and out of mind." item = /obj/item/storage/backpack/satchel/flat/empty - price_min = 750 + price_min = 250 price_max = 1000 stock_max = 2 availability_prob = 30 + +/datum/blackmarket_item/misc/organs + name = "Organ Freezer" + desc = "Need some fresh organs in a jiffy? We got you covered. Make good use of them, someone died to get these to you." + item = /obj/structure/closet/crate/freezer/surplus_limbs/organs + + price_min = 1000 + price_max = 2500 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/misc/abandoned_crate + name = "Abandoned Crate" + desc = "Why, it could be anything. Are you feeling lucky?" + item = /obj/structure/closet/crate/secure/loot + + price_min = 250 + price_max = 400 + availability_prob = 100 + unlimited = TRUE + +/datum/blackmarket_item/misc/spygass + name = "Spy Glass Kit" + desc = "A set of trick glasses and a linked camera. Suit and dashing shades not included." + item = /obj/item/storage/box/rxglasses/spyglasskit + + price_min = 250 + price_max = 1000 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/misc/ripley_mk_4 + name = "Ripley Mk IV Upgrade Kit" + desc = "Pimp out your Ripley to the CLIP Mark IV Rogue Model today! Killjoy bureaucrats not included, thank god." + item = /obj/item/mecha_parts/mecha_equipment/conversion_kit/ripley/clip + + price_min = 1500 + price_max = 2500 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/misc/secret_docs + name = "Classified Documents" + desc = "Good people died to get these. Luckily, we aren't good people." + item = /obj/item/documents + + price_min = 1000 + price_max = 10000 + stock = 1 + availability_prob = 40 + +/datum/blackmarket_item/misc/secret_docs/spawn_item(loc) + var/docs = pick(list(/obj/item/documents/nanotrasen, + /obj/item/documents/solgov, + /obj/item/documents/terragov, + /obj/item/documents/syndicate/red)) + return new docs(loc) + +/datum/blackmarket_item/misc/black_box + name = "Blackbox" + desc = "Recorded in here is final moments of some poor souls who are no longer with us. We suggest watching it with friends and popcorn." + item = /obj/item/blackbox + + price_min = 1000 + price_max = 10000 + stock = 1 + availability_prob = 40 diff --git a/code/modules/cargo/blackmarket/blackmarket_items/tools.dm b/code/modules/cargo/blackmarket/blackmarket_items/tools.dm index 0b2cb16aa827..0c86f608e51c 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/tools.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/tools.dm @@ -5,60 +5,81 @@ name = "Experimental Wrench" desc = "The extra fast and handy wrench you always wanted!" item = /obj/item/wrench/caravan - stock = 1 - price_min = 400 - price_max = 800 - availability_prob = 20 + price_min = 100 + price_max = 200 + stock_max = 3 + availability_prob = 40 /datum/blackmarket_item/tool/caravan_wirecutters name = "Experimental Wirecutters" desc = "The extra fast and handy wirecutters you always wanted!" item = /obj/item/wirecutters/caravan - stock = 1 - price_min = 400 - price_max = 800 - availability_prob = 20 + price_min = 100 + price_max = 200 + stock_max = 3 + availability_prob = 40 /datum/blackmarket_item/tool/caravan_screwdriver name = "Experimental Screwdriver" desc = "The extra fast and handy screwdriver you always wanted!" item = /obj/item/screwdriver/caravan - stock = 1 - price_min = 400 - price_max = 800 - availability_prob = 20 + price_min = 100 + price_max = 200 + stock_max = 3 + availability_prob = 40 /datum/blackmarket_item/tool/caravan_crowbar name = "Experimental Crowbar" desc = "The extra fast and handy crowbar you always wanted!" item = /obj/item/crowbar/red/caravan - stock = 1 - price_min = 400 - price_max = 800 + price_min = 100 + price_max = 200 + stock_max = 3 + availability_prob = 40 + +/datum/blackmarket_item/tool/combat_wrench + name = "Combat Wrench" + desc = "Under fire while doing repairs? With this dual purpose wrench, never be caught unprepared again!" + item = /obj/item/wrench/combat + + price_min = 500 + price_max = 2500 + stock = 1 availability_prob = 20 +/datum/blackmarket_item/tool/syndi_toolbox + name = "Syndicate Toolbox" + desc = "A set of specialized tools, built to precision perfection and certified by the GEC." + item = /obj/item/storage/toolbox/syndicate + + price_min = 500 + price_max = 2000 + stock = 1 + availability_prob = 30 + /datum/blackmarket_item/tool/binoculars name = "Binoculars" desc = "Increase your sight by 150% with this handy Tool!" item = /obj/item/binoculars - stock = 1 - price_min = 400 - price_max = 960 - availability_prob = 30 + price_min = 50 + price_max = 300 + stock_min = 2 + stock_max = 4 + availability_prob = 70 /datum/blackmarket_item/tool/riot_shield name = "Riot Shield" desc = "Protect yourself from an unexpected Riot at your local Police department!" item = /obj/item/shield/riot - price_min = 450 - price_max = 650 - stock_max = 2 + price_min = 300 + price_max = 800 + stock_max = 3 availability_prob = 50 /datum/blackmarket_item/tool/thermite_bottle @@ -66,10 +87,20 @@ desc = "30u of Thermite to assist in creating a quick access point or get away!" item = /obj/item/reagent_containers/glass/bottle/thermite - price_min = 500 + price_min = 100 + price_max = 600 + stock_max = 10 + availability_prob = 50 + +/datum/blackmarket_item/tool/thermite_jug + name = "Thermite Jug" + desc = "An extra large 150u jug of thermite. For those hard to reach places." + item = /obj/item/reagent_containers/glass/chem_jug/thermite + + price_min = 400 price_max = 1500 stock_max = 3 - availability_prob = 30 + availability_prob = 20 /datum/blackmarket_item/tool/science_goggles name = "Science Goggles" @@ -80,3 +111,105 @@ price_max = 200 stock_max = 3 availability_prob = 50 + +/datum/blackmarket_item/tool/thermal_eyepatch + name = "Thermal Eyepatch" + desc = "A thermal eyepatch, capable of tracking the heat signatures of living beings through solid objects." + item = /obj/item/clothing/glasses/thermal/eyepatch + + price_min = 1000 + price_max = 3000 + stock = 1 + availability_prob = 20 + +/datum/blackmarket_item/tool/jumpboots + name = "Jump Boots" + desc = "Jump ahead of the competition with these specialized mining boots!" + item = /obj/item/clothing/shoes/bhop + + price_min = 100 + price_max = 1000 + stock = 3 + availability_prob = 30 + +/datum/blackmarket_item/tool/rocket_gloves + name = "Rocket Gloves" + desc = "The pinacle of tackling technology, no one will be able to resist a tackle from these rocket propelled gloves. Make sure not to miss though, we don't sell wheelchairs." + item = /obj/item/clothing/gloves/tackler/rocket + + price_min = 500 + price_max = 2000 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/tool/chem_master + name = "Chem Master Board" + desc = "A Chem Master board, capable of seperating and packaging reagents. Perfect for any aspiring at home chemist." + item = /obj/item/circuitboard/machine/chem_master + + price_min = 1000 + price_max = 3000 + stock = 1 + availability_prob = 30 + +/datum/blackmarket_item/tool/rcd + name = "Rapid Construction Device" + desc = "Borrowed from a GEC construction site, this handy device will make building a cinch." + item = /obj/item/construction/rcd + + price_min = 1000 + price_max = 3000 + stock = 1 + availability_prob = 30 + +/datum/blackmarket_item/tool/suppressor + name = "Suppressor" + desc = "A suppressor, for when you to keep your murder on the down low." + item = /obj/item/suppressor + + price_min = 100 + price_max = 700 + stock_min = 3 + stock_max = 6 + availability_prob = 60 + +/datum/blackmarket_item/tool/blastwave + name = "Blastwave Jackhammer" + desc = "We found a shipment of brand new hypersonic jackhammers in a cargo freighter. So we don't need these old ones anymore." + item = /obj/item/pickaxe/drill/jackhammer/old + + price_min = 750 + price_max = 1750 + stock_max = 3 + availability_prob = 40 + +/datum/blackmarket_item/tool/impro_jetpack + name = "Improvised Jetpack" + desc = "A lovingly handcrafted jetpack built by our salvage techs. For the frugal space explorer." + item = /obj/item/tank/jetpack/improvised + + price_min = 500 + price_max = 1000 + stock_min = 3 + stock_max = 6 + availability_prob = 70 + +/datum/blackmarket_item/tool/jet_harness + name = "Jet Harness" + desc = "A compact oxygen filled jet harness for tactical EVA insertions and extractions." + item = /obj/item/tank/jetpack/oxygen/harness + + price_min = 1250 + price_max = 3500 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/tool/jetpack_upgrade + name = "Hardsuit Jetpack Upgrade" + desc = "A modular jetpack compatible with most hardsuits. If the screws feel a bit loose, it's because the last suit it was attached to was beyond recovery." + item = /obj/item/tank/jetpack/suit + + price_min = 1750 + price_max = 3000 + stock = 1 + availability_prob = 25 diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index dea11a4c36d3..8832729e58af 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -6,9 +6,10 @@ desc = "Get the janitor back at his own game with this affordable prank kit." item = /obj/item/restraints/legcuffs/beartrap - price_min = 300 - price_max = 550 - stock_max = 3 + price_min = 150 + price_max = 400 + stock_min = 3 + stock_max = 7 availability_prob = 40 /datum/blackmarket_item/weapon/shotgun_dart @@ -34,30 +35,312 @@ stock_max = 3 availability_prob = 60 -/datum/blackmarket_item/weapon/emp_grenade - name = "EMP Grenade" - desc = "Use this grenade for SHOCKING results!" - item = /obj/item/grenade/empgrenade +/datum/blackmarket_item/weapon/switchblade + name = "Switchblade" + desc = "Extra shrap switchblades for intimidation AND style. Bandages not included if you cut yourself." + item = /obj/item/switchblade - price_min = 100 - price_max = 400 - stock_max = 2 + price_min = 500 + price_max = 700 + stock_max = 3 availability_prob = 50 +/datum/blackmarket_item/weapon/sabre + name = "SUNS Dueling Sabre" + desc = "A mastercrafted sabre formerly wielded by a SUNS academic. It's very sharp, we had to spend hours stitching our fingers back on after getting it." + item = /obj/item/storage/belt/sabre/suns + + price_min = 1500 + price_max = 3500 + stock = 1 + availability_prob = 25 + /datum/blackmarket_item/weapon/derringer name = "Derringer" desc = "A concealable handgun small enough to hide nearly anywhere. Uses .38 revolver rounds." item = /obj/item/gun/ballistic/derringer - price_min = 400 - price_max = 600 + price_min = 100 + price_max = 500 stock_max = 6 availability_prob = 50 -/datum/blackmarket_item/weapon/derringer +/datum/blackmarket_item/weapon/golden name = "Golden Derringer" desc = "A rare custom-made concealable weapon designed to fire illegal .357 rounds." item = /obj/item/gun/ballistic/derringer/gold price_min = 1000 price_max = 3000 - stock_max = 1 - availability_prob = 5 + stock = 1 + availability_prob = 10 + +/datum/blackmarket_item/weapon/himehabu + name = "Himehabu Pistol" + desc = "Great things come in small packages. The Himehabu is perfect for all your espionage needs. Chambered in .22lr." + item = /obj/item/gun/ballistic/automatic/pistol/himehabu + pair_item = /datum/blackmarket_item/weapon/himehabu_mag + + price_min = 100 + price_max = 600 + stock_max = 6 + availability_prob = 50 + +/datum/blackmarket_item/weapon/himehabu_mag + name = "Himehabu Magazines" + desc = "Compact 10 round .22lr magazines for use in the Himehabu pistol." + item = /obj/item/ammo_box/magazine/m22lr + + price_min = 100 + price_max = 200 + stock_min = 3 + stock_max = 6 + availability_prob = 0 + +/datum/blackmarket_item/weapon/e10 + name = "E-10 Laser Pistol" + desc = "Sharplite letting you down? Try these classic Eoehoma Firearms E-10 Laser Pistols." + item = /obj/item/gun/energy/laser/e10 + + price_min = 500 + price_max = 1250 + stock_max = 5 + availability_prob = 20 + +/datum/blackmarket_item/weapon/e11 + name = "E-11 Energy Gun" + desc = "Look. I'll be straight with you. These guns are awful. But, they are cheap if you're that desperate." + item = /obj/item/gun/energy/e_gun/e11 + + price_min = 250 + price_max = 750 + stock = 5 + availability_prob = 60 + +/datum/blackmarket_item/weapon/e40 + name = "E-40 Hybrid Assault Rifle" + desc = "A dual mode hybrid assault rifle made by the now defunct Eoehoma Firearms. Capable of firing both bullets AND lasers, for the discerning dealer in death. Chambered in Eoehoma .299 Caseless." + item = /obj/item/gun/ballistic/automatic/assault/e40 + pair_item = /datum/blackmarket_item/weapon/e40_mag + + price_min = 7000 + price_max = 13000 + stock = 1 + availability_prob = 20 + +/datum/blackmarket_item/weapon/e40_mag + name = "Eoehoma .299 Caseless Magazine" + desc = "A 30 round magazine for the E-40 Hybrid Rifle." + item = /obj/item/ammo_box/magazine/e40 + + price_min = 750 + price_max = 1250 + stock_min = 2 + stock_max = 4 + availability_prob = 0 + +/datum/blackmarket_item/weapon/e50 + name = "E-50 Energy Emitter" + desc = "An Eoehoma Firearms E-50 Emitter cannon. For when you want a send a message. A really big message." + item = /obj/item/gun/energy/laser/e50 + + price_min = 4000 + price_max = 7000 + stock_max = 2 + availability_prob = 20 + +/datum/blackmarket_item/weapon/saber_smg + name = "Saber 9mm SMG" + desc = "A prototype 9mm submachine gun. Most of these never got past the RND phase and into distribution. But we happen know a guy." + item = /obj/item/gun/ballistic/automatic/smg/proto + pair_item = /datum/blackmarket_item/weapon/saber_mag + + price_min = 2500 + price_max = 4200 + stock_max = 2 + availability_prob = 25 + +/datum/blackmarket_item/weapon/saber_mag + name = "Saber 9mm SMG Magazines" + desc = "Magazines for use in the Saber 9mm SMG. No, they don't work as swords." + item = /obj/item/ammo_box/magazine/smgm9mm + + price_min = 500 + price_max = 1000 + stock = 2 + availability_prob = 0 + +/datum/blackmarket_item/weapon/bg_16 + name = "BG-16 Beam Gun" + desc = "Not satisfied by Etherbor's civilian offerings? Try this military grade one we found!" + item = /obj/item/gun/energy/kalix/pgf + + price_min = 2500 + price_max = 5000 + stock = 2 + availability_prob = 20 + +/datum/blackmarket_item/weapon/sawn_illestren + name = "Sawn off Illestren Rifle" + desc = "We had to saw down the barrels on these to fit them in the smuggling compartment. They don't aim too good, but it still packs a good punch." + item = /obj/item/gun/ballistic/rifle/illestren/sawn + + price_min = 600 + price_max = 1250 + stock_min = 2 + stock_max = 5 + availability_prob = 60 + +/datum/blackmarket_item/weapon/combat_shotgun + name = "Combat Shotgun" + desc = "Are your arms tired from pumping Hunter's Pride shotguns? This semi-automatic combat shotgun will make killing a breeze." + item = /obj/item/gun/ballistic/shotgun/automatic/combat + + price_min = 2000 + price_max = 4000 + stock_max = 3 + availability_prob = 40 + +/datum/blackmarket_item/weapon/mecha_weapon_bay + name = "Concealed Weapons Bay" + desc = "Ripley with a laser cannon? Odysseus with a missile rack? Sky's the limit with this omni-compatible weapons bay! (Missiles and lasers not included)" + item = /obj/item/mecha_parts/concealed_weapon_bay + + price_min = 1000 + price_max = 2000 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/weapon/model_h + name = "Model H" + desc = "A Model H slug pistol. The H stands for Hurt. Chambered in ferromagnetic slugs." + item = /obj/item/gun/ballistic/automatic/powered/gauss/modelh + pair_item = /datum/blackmarket_item/weapon/model_h_mag + + price_min = 2000 + price_max = 3500 + stock = 2 + availability_prob = 35 + +/datum/blackmarket_item/weapon/model_h/spawn_item(loc) + var/model_h = pick(list(/obj/item/gun/ballistic/automatic/powered/gauss/modelh/suns, + /obj/item/gun/ballistic/automatic/powered/gauss/modelh)) + return new model_h(loc) + +/datum/blackmarket_item/weapon/model_h_mag + name = "Model H Magazine" + desc = "A 10 round magazine for Model H slug pistol." + item = /obj/item/ammo_box/magazine/modelh + + price_min = 500 + price_max = 1000 + stock_max = 4 + availability_prob = 0 + +/datum/blackmarket_item/weapon/sgg + name = "SSG-669C Rotary Sniper Rifle" + desc = "I could tell you it's full name, but we'd be here all day. It's a sniper rifle. It shoots people from far away. Chambered in 8x58mm." + item = /obj/item/gun/ballistic/rifle/solgov + pair_item = /datum/blackmarket_item/weapon/sgg_stripper + + price_min = 3000 + price_max = 6000 + stock = 1 + availability_prob = 20 + +/datum/blackmarket_item/weapon/sgg_stripper + name = "8x58mm Stripper Clip" + desc = "A five round 8x58mm stripper clip for use with the SGG-669C." + item = /obj/item/ammo_box/a858 + + price_min = 500 + price_max = 1000 + stock_min = 4 + stock_max = 6 + availability_prob = 0 + +/datum/blackmarket_item/weapon/pistole_c + name = "Pistole C" + desc = "Pistole Compact? Pistole Caseless? Pistole Cheese? Fuck if I know. All I know is these little numbers pack a nasty sting. Chambered in 5.56 caseless." + item = /obj/item/gun/ballistic/automatic/pistol/solgov/old + pair_item = /datum/blackmarket_item/weapon/pistole_c_mag + + price_min = 900 + price_max = 1250 + stock_max = 3 + availability_prob = 30 + +/datum/blackmarket_item/weapon/pistole_c_mag + name = "5.56 Caseless Magazine" + desc = "A 12 round magazine for the Pistole Cheese." + item = /obj/item/ammo_box/magazine/pistol556mm + + price_min = 250 + price_max = 750 + stock_max = 2 + availability_prob = 0 + +/datum/blackmarket_item/weapon/proto_gauss + name = "Prototype Gauss Rifle" + desc = "A prototype gauss rifle made by Nanotrasen. Perfect for making swiss cheese out of people. Chambered in ferromagnetic pellets." + item = /obj/item/gun/ballistic/automatic/powered/gauss + pair_item = /datum/blackmarket_item/weapon/proto_gauss_mag + + price_min = 3500 + price_max = 6000 + stock = 2 + availability_prob = 25 + +/datum/blackmarket_item/weapon/proto_gauss_mag + name = "Prototype Gauss Rifle Magazine" + desc = "A 25 round ferromagnetic pellet magazine for the prototype gauss rifle." + item = /obj/item/ammo_box/magazine/gauss + + price_min = 600 + price_max = 1100 + stock_min = 2 + stock_max = 4 + availability_prob = 0 + +/datum/blackmarket_item/weapon/tec + name = "TEC-9 Machine Pistol" + desc = "Hallelujah! It's raining lead! This 9mm machine pistol is capable of spitting out bullets at rapid pace." + item = /obj/item/gun/ballistic/automatic/pistol/tec9 + pair_item = /datum/blackmarket_item/weapon/tec_mag + + price_min = 1500 + price_max = 2750 + stock_max = 2 + availability_prob = 35 + +/datum/blackmarket_item/weapon/tec_mag + name = "TEC-9 AP Magazine" + desc = "A 20 round magazine of AP ammo for the TEC-9 machine pistol." + item = /obj/item/ammo_box/magazine/tec9 + + price_min = 600 + price_max = 1000 + stock_max = 2 + availability_prob = 0 + +/datum/blackmarket_item/weapon/scout + name = "HP Scout" + desc = "A scoped rifle chambered in .300 Magnum. As the name would imply, perfect for scouts. Try not to tunnel vision with the scope like the last guy." + item = /obj/item/gun/ballistic/rifle/scout + pair_item = /datum/blackmarket_item/weapon/scout_stripper + + price_min = 4000 + price_max = 6500 + stock = 1 + availability_prob = 20 + +/datum/blackmarket_item/weapon/scout_stripper + name = ".300 Magnum Stripper Clip" + desc = "A 5 round .300 Magnum stripper clips for use with the HP Scout." + item = /obj/item/ammo_box/a300 + + price_min = 500 + price_max = 1000 + stock_min = 4 + stock_max = 6 + availability_prob = 0 + + diff --git a/code/modules/cargo/blackmarket/blackmarket_market.dm b/code/modules/cargo/blackmarket/blackmarket_market.dm index 6979d62e1021..3e055048a85b 100644 --- a/code/modules/cargo/blackmarket/blackmarket_market.dm +++ b/code/modules/cargo/blackmarket/blackmarket_market.dm @@ -13,8 +13,8 @@ var/list/categories = list() /// Adds item to the available items and add it's category if it is not in categories yet. -/datum/blackmarket_market/proc/add_item(datum/blackmarket_item/item) - if(!prob(initial(item.availability_prob))) +/datum/blackmarket_market/proc/add_item(datum/blackmarket_item/item, paired) + if(!prob(initial(item.availability_prob)) && !paired) return FALSE if(ispath(item)) @@ -25,6 +25,10 @@ available_items[item.category] = list() available_items[item.category] += item + + if(item.pair_item) + add_item(item.pair_item, TRUE) + return TRUE /// Handles buying the item, this is mainly for future use and moving the code away from the uplink. @@ -49,5 +53,4 @@ /datum/blackmarket_market/blackmarket name = "Black Market" shipping = list(SHIPPING_METHOD_LTSRBT =50, - SHIPPING_METHOD_LAUNCH =10, - SHIPPING_METHOD_TELEPORT=75) + SHIPPING_METHOD_LAUNCH =10) diff --git a/code/modules/cargo/blackmarket/blackmarket_telepad.dm b/code/modules/cargo/blackmarket/blackmarket_telepad.dm index 0a77d9822bf3..14211cad6878 100644 --- a/code/modules/cargo/blackmarket/blackmarket_telepad.dm +++ b/code/modules/cargo/blackmarket/blackmarket_telepad.dm @@ -16,7 +16,7 @@ circuit = /obj/item/circuitboard/machine/ltsrbt density = TRUE - idle_power_usage = 200 + idle_power_usage = IDLE_DRAW_LOW /// Divider for power_usage_per_teleport. var/power_efficiency = 1 @@ -27,7 +27,7 @@ /// Current recharge progress. var/recharge_cooldown = 0 /// Base recharge time which is used to get recharge_time. - var/base_recharge_time = 100 + var/base_recharge_time = 10 /// Current /datum/blackmarket_purchase being recieved. var/recieving /// Current /datum/blackmarket_purchase being sent to the target uplink. @@ -37,10 +37,8 @@ /obj/machinery/ltsrbt/Initialize() . = ..() - SSblackmarket.telepads += src /obj/machinery/ltsrbt/Destroy() - SSblackmarket.telepads -= src // Bye bye orders. if(SSblackmarket.telepads.len) for(var/datum/blackmarket_purchase/P in queue) @@ -49,9 +47,9 @@ /obj/machinery/ltsrbt/RefreshParts() recharge_time = base_recharge_time - // On tier 4 recharge_time should be 20 and by default it is 80 as scanning modules should be tier 1. + // On tier 4 recharge_time should be 2 and by default it is 8 as scanning modules should be tier 1. for(var/obj/item/stock_parts/scanning_module/scan in component_parts) - recharge_time -= scan.rating * 10 + recharge_time -= scan.rating recharge_cooldown = recharge_time power_efficiency = 0 @@ -61,6 +59,16 @@ if(!power_efficiency) power_efficiency = 1 +/// Stores the LTSRBT Data in the uplink for linking +/obj/machinery/ltsrbt/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/blackmarket_uplink)) + var/obj/item/blackmarket_uplink/uplink = O + uplink.target = src + to_chat(user, "[src] linked to [O].") + return TRUE + + return ..() + /// Adds /datum/blackmarket_purchase to queue unless the machine is free, then it sets the purchase to be instantly recieved /obj/machinery/ltsrbt/proc/add_to_queue(datum/blackmarket_purchase/purchase) if(!recharge_cooldown && !recieving && !transmitting) diff --git a/code/modules/cargo/blackmarket/blackmarket_uplink.dm b/code/modules/cargo/blackmarket/blackmarket_uplink.dm index e8abd0424b2d..26363bf71b82 100644 --- a/code/modules/cargo/blackmarket/blackmarket_uplink.dm +++ b/code/modules/cargo/blackmarket/blackmarket_uplink.dm @@ -2,6 +2,7 @@ name = "Black Market Uplink" icon = 'icons/obj/blackmarket.dmi' icon_state = "uplink" + desc = "A jury rigged uplink capable of accessing illicit or grey market vendors. There's a port on side for linking it to a LTSRBT for more practical shipping." // UI variables. var/viewing_category @@ -13,6 +14,8 @@ var/money = 0 /// List of typepaths for "/datum/blackmarket_market"s that this uplink can access. var/list/accessible_markets = list(/datum/blackmarket_market/blackmarket) + // Linked LTSRBT for uplink to send to. + var/obj/machinery/ltsrbt/target /obj/item/blackmarket_uplink/Initialize() . = ..() @@ -53,6 +56,10 @@ user.put_in_hands(holochip) to_chat(user, "You withdraw [amount_to_remove] credits into a holochip.") +/obj/item/blackmarket_uplink/examine(mob/user) + . = ..() + . += "It's LTSRBT link [target ? "contains a [target]." : "is empty."]" + /obj/item/blackmarket_uplink/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) @@ -87,7 +94,7 @@ /obj/item/blackmarket_uplink/ui_static_data(mob/user) var/list/data = list() data["delivery_method_description"] = SSblackmarket.shipping_method_descriptions - data["ltsrbt_built"] = SSblackmarket.telepads.len + data["ltsrbt_built"] = target data["markets"] = list() for(var/M in accessible_markets) var/datum/blackmarket_market/BM = SSblackmarket.markets[M] @@ -155,7 +162,7 @@ time = 30 tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER, TOOL_MULTITOOL) reqs = list( - /obj/item/stock_parts/subspace/amplifier = 1, + /obj/item/stock_parts/scanning_module = 1, /obj/item/stack/cable_coil = 15, /obj/item/radio = 1, /obj/item/analyzer = 1 diff --git a/code/modules/cargo/bounties/special.dm b/code/modules/cargo/bounties/special.dm index af61a6698e44..fa581504ca89 100644 --- a/code/modules/cargo/bounties/special.dm +++ b/code/modules/cargo/bounties/special.dm @@ -19,12 +19,12 @@ return (Copy.copy_type && ispath(Copy.copy_type, /obj/item/documents/syndicate)) return TRUE -/datum/bounty/item/adamantine - name = "Adamantine" - description = "Nanotrasen's anomalous materials division is in desparate need for Adamantine. Send them a large shipment and we'll make it worth your while." +/datum/bounty/item/hellstone + name = "Hellstone" + description = "Nanotrasen's anomalous materials division is in desparate need for Hellstone. Send them a large shipment and we'll make it worth your while." reward = 35000 required_count = 10 - wanted_types = list(/obj/item/stack/sheet/mineral/adamantine) + wanted_types = list(/obj/item/stack/sheet/mineral/hidden/hellstone) /datum/bounty/item/trash name = "Trash" diff --git a/code/modules/cargo/bounty.dm b/code/modules/cargo/bounty.dm index 01efd57be70b..3807e9bd6984 100644 --- a/code/modules/cargo/bounty.dm +++ b/code/modules/cargo/bounty.dm @@ -166,7 +166,7 @@ GLOBAL_LIST_EMPTY(bounties_list) /********************************Low Priority Gens********************************/ var/list/low_priority_strict_type_list = list( /datum/bounty/item/alien_organs, /datum/bounty/item/syndicate_documents, - /datum/bounty/item/adamantine, + /datum/bounty/item/hellstone, /datum/bounty/item/trash, /datum/bounty/more_bounties) diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index 61e416e9d4f1..dfec659e1644 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -19,7 +19,7 @@ /client/proc/centcom_podlauncher() //Creates a verb for admins to open up the ui set name = "Config/Launch Supplypod" set desc = "Configure and launch a CentCom supplypod full of whatever your heart desires!" - set category = "Admin.Events" + set category = "Event" new /datum/centcom_podlauncher(usr)//create the datum //Variables declared to change how items in the launch bay are picked and launched. (Almost) all of these are changed in the ui_act proc diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm index cd1946265374..b330b0ec4bdc 100644 --- a/code/modules/cargo/exports/lavaland.dm +++ b/code/modules/cargo/exports/lavaland.dm @@ -58,40 +58,40 @@ /obj/item/guardiancreator/miner/choose,//this is basically the most valulable mining loot so good luck getting a miner to part ways /obj/item/gun/magic/staff/spellblade, ) - +/* /datum/export/lavaland/trophycommon cost = 1500 unit_name = "common hunting trophy" - export_types = list(/obj/item/crusher_trophy/legion_skull, - /obj/item/crusher_trophy/wolf_ear, - /obj/item/crusher_trophy/bear_paw, - /obj/item/crusher_trophy/goliath_tentacle, - /obj/item/crusher_trophy/watcher_wing) + export_types = list(/obj/item/mob_trophy/legion_skull, + /obj/item/mob_trophy/wolf_ear, + /obj/item/mob_trophy/bear_paw, + /obj/item/mob_trophy/goliath_tentacle, + /obj/item/mob_trophy/watcher_wing) /datum/export/lavaland/trophyrare cost = 5000 unit_name = "rare hunting trophy" - export_types = list(/obj/item/crusher_trophy/dwarf_skull, - /obj/item/crusher_trophy/fang, - /obj/item/crusher_trophy/war_paw, - /obj/item/crusher_trophy/elder_tentacle, - /obj/item/crusher_trophy/ice_crystal, - /obj/item/crusher_trophy/magma_wing, - /obj/item/crusher_trophy/tail_spike, - /obj/item/crusher_trophy/ice_wing) + export_types = list(/obj/item/mob_trophy/dwarf_skull, + /obj/item/mob_trophy/fang, + /obj/item/mob_trophy/war_paw, + /obj/item/mob_trophy/elder_tentacle, + /obj/item/mob_trophy/ice_crystal, + /obj/item/mob_trophy/magma_wing, + /obj/item/mob_trophy/tail_spike, + /obj/item/mob_trophy/ice_wing) /datum/export/lavaland/trophymega cost = 10000 unit_name = "big game hunting trophy" - export_types = list(/obj/item/crusher_trophy/legionnaire_spine, - /obj/item/crusher_trophy/ash_spike, - /obj/item/crusher_trophy/demon_claws, - /obj/item/crusher_trophy/broodmother_tongue, - /obj/item/crusher_trophy/ice_block_talisman, - /obj/item/crusher_trophy/king_goat, - /obj/item/crusher_trophy/miner_eye, - /obj/item/crusher_trophy/vortex_talisman, - /obj/item/crusher_trophy/blaster_tubes) + export_types = list(/obj/item/mob_trophy/legionnaire_spine, + /obj/item/mob_trophy/ash_spike, + /obj/item/mob_trophy/demon_claws, + /obj/item/mob_trophy/broodmother_tongue, + /obj/item/mob_trophy/ice_block_talisman, + /obj/item/mob_trophy/miner_eye, + /obj/item/mob_trophy/vortex_talisman, + /obj/item/mob_trophy/blaster_tubes) +*/ /datum/export/lavaland/megafauna/total_printout(datum/export_report/ex, notes = TRUE) //in the unlikely case a miner feels like selling megafauna loot . = ..() diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index 1bf35a94c440..f81654978ac2 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -26,11 +26,6 @@ // Materials. Prices have been heavily nerfed from the original values; mining is boring, so it shouldn't be a good way to make money. -/datum/export/material/bananium - cost = 250 - material_id = /datum/material/bananium - message = "cm3 of bananium" - /datum/export/material/diamond cost = 125 material_id = /datum/material/diamond @@ -62,15 +57,10 @@ material_id = /datum/material/titanium message = "cm3 of titanium" -/datum/export/material/adamantine +/datum/export/material/hellstone cost = 125 - material_id = /datum/material/adamantine - message = "cm3 of adamantine" - -/datum/export/material/mythril - cost = 375 - material_id = /datum/material/mythril - message = "cm3 of mythril" + material_id = /datum/material/hellstone + message = "cm3 of hellstone" /datum/export/material/bscrystal cost = 75 @@ -82,11 +72,6 @@ message = "cm3 of plastic" material_id = /datum/material/plastic -/datum/export/material/runite - cost = 150 - message = "cm3 of runite" - material_id = /datum/material/runite - /datum/export/material/metal cost = 2 message = "cm3 of metal" diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 53bfd35974e7..ab521998f07c 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -76,8 +76,8 @@ /datum/supply_pack/ammo/winchester_ammo name = "Flaming Arrow and Detective Special .38 Ammo Boxes" - desc = "Contains a 30 round ammo boxes for refilling .38 weapons." - cost = 500 + desc = "Contains two 50 round ammo boxes for refilling .38 weapons." + cost = 250 contains = list(/obj/item/ammo_box/c38_box, /obj/item/ammo_box/c38_box) crate_name = "ammo crate" @@ -143,6 +143,12 @@ contains = list(/obj/item/ammo_box/amagpellet_claris) cost = 1000 +/datum/supply_pack/ammo/a300 + name = ".300 Magnum Stripper Clip Crate" + desc = "Contains a five round .300 Magnum stripper clip for sniper rifles such as the HP Scout." + contains = list(/obj/item/ammo_box/a300) + cost = 750 + /datum/supply_pack/ammo/ebr_ammo name = "M514 EBR .308 Magazine Crate" desc = "Contains a .308 magazine for the M514 EBR rifle, containing ten rounds." @@ -173,6 +179,12 @@ contains = list(/obj/item/ammo_box/a762_40) cost = 500 +/datum/supply_pack/ammo/a357_ammo_box + name = ".357 Ammo Box Crate" + desc = "Contains a fifty-round .357 box for revolvers such as the Scarborough Revolver and the HP Firebrand." + contains = list(/obj/item/ammo_box/a357_box) + cost = 250 + /datum/supply_pack/ammo/c556mmHITP_ammo_box name = "5.56 Caseless Ammo Box Crate" desc = "Contains a fifty-round 5.56mm caseless box for SolGov sidearms like the Pistole C." @@ -209,6 +221,12 @@ contains = list(/obj/item/ammo_box/c9mm/ap) cost = 500 +/datum/supply_pack/ammo/a357match_ammo_box + name = ".357 Match Ammo Box Crate" + desc = "Contains a fifty-round .357 match box for better performance against armor." + contains = list(/obj/item/ammo_box/a357_box/match) + cost = 500 + /datum/supply_pack/ammo/c556mmHITPap_ammo_box name = "5.56 caseless AP Ammo Box Crate" desc = "Contains a fifty-round 5.56mm caseless boxloaded with armor piercing ammo." @@ -233,6 +251,12 @@ contains = list(/obj/item/ammo_box/c9mm/hp) cost = 500 +/datum/supply_pack/ammo/a357hp_ammo_box + name = ".357 HP Ammo Box Crate" + desc = "Contains a fifty-round .357 box loaded with hollow point ammo, great against unarmored targets." + contains = list(/obj/item/ammo_box/a357_box/hp) + cost = 500 + /datum/supply_pack/ammo/c10mmhp_ammo_box name = "10mm HP Ammo Box Crate" desc = "Contains a fifty-round 10mm box loaded with hollow point ammo, great against unarmored targets." @@ -305,6 +329,24 @@ contains = list(/obj/item/ammo_box/c8x50mmhp_box) cost = 500 +/datum/supply_pack/ammo/a300_box + name = ".300 Ammo Box Crate" + desc = "Contains a twenty-round .300 Magnum ammo box for sniper rifles such as the HP Scout." + contains = list(/obj/item/ammo_box/a300_box) + cost = 500 + +/datum/supply_pack/ammo/a4570_box + name = ".45-70 Ammo Box Crate" + desc = "Contains a twelve-round box containing devastatingly powerful .45-70 caliber ammunition." + contains = list(/obj/item/ammo_box/a4570) + cost = 500 + +/datum/supply_pack/ammo/a4570_box/match + name = ".45-70 Match Crate" + desc = "Contains a twelve-round box containing devastatingly powerful .45-70 caliber ammunition, that travels faster, pierces armour better, and ricochets off targets." + contains = list(/obj/item/ammo_box/a4570/match) + cost = 750 + /datum/supply_pack/ammo/ferropelletboxcrate name = "Ferromagnetic Pellet Box Crate" desc = "Contains a fifty-round ferromagnetic pellet ammo box for gauss guns such as the Claris." diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm index f383e4e706f1..bf16fb592e21 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -317,40 +317,3 @@ crate_name = "ration crate" crate_type = /obj/structure/closet/crate -/datum/supply_pack/food/syrup - name = "Coffee Syrups Box" - desc = "A packaged box of various syrups, perfect for making your delicious coffee even more diabetic." - cost = 200 - contains = list( - /obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/caramel, - /obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/liqueur, - ) - crate_name = "coffee syrups box" - crate_type = /obj/structure/closet/crate - -/datum/supply_pack/food/coffeekit - name = "Coffee Equipment Crate" - desc = "A complete kit to setup your own cozy coffee shop, the coffeemaker is for some reason not included." - cost = 1000 - contains = list( - /obj/item/storage/box/coffeepack/robusta, - /obj/item/storage/box/coffeepack, - /obj/item/reagent_containers/food/drinks/bottle/coffeepot, - /obj/item/storage/box/coffee_condi_display, - /obj/item/reagent_containers/food/condiment/milk, - /obj/item/reagent_containers/food/condiment/soymilk, - /obj/item/reagent_containers/food/condiment/sugar, - /obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/caramel, //one extra syrup as a treat - ) - crate_name = "coffee equipment crate" - -/datum/supply_pack/food/coffeemaker - name = "Impressa Coffeemaker Crate" - desc = "An assembled Impressa model coffeemaker." - cost = 500 - contains = list( - /obj/machinery/coffeemaker/impressa, - /obj/item/reagent_containers/food/drinks/bottle/coffeepot, - ) - crate_name = "coffeemaker crate" - crate_type = /obj/structure/closet/crate diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index 85a1cb0e0c3c..3424b48b941a 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -7,16 +7,19 @@ */ /datum/supply_pack/gun/disposable - name = "Disposable Guns Crate" - desc = "In some sectors, these disposable pistols are the only firearms that can be legally sold for less than 400cr. That price is still far too high; this pack contains five." - cost = 750 - contains = list(/obj/item/gun/ballistic/automatic/pistol/disposable, - /obj/item/gun/ballistic/automatic/pistol/disposable, - /obj/item/gun/ballistic/automatic/pistol/disposable, - /obj/item/gun/ballistic/automatic/pistol/disposable, - /obj/item/gun/ballistic/automatic/pistol/disposable) + name = "Disposable Gun Crate" + desc = "In some sectors, these disposable pistols are the only firearms that can be legally sold for less than 200cr. That price is still far too high." + cost = 150 + contains = list(/obj/item/gun/ballistic/automatic/pistol/disposable) crate_name = "disposable gun crate" +/datum/supply_pack/gun/derringer + name = ".38 Derringer Crate" + desc = "A cheap, concealable pistol manufactured by the reputable Hunter's Pride. At least it's better than a disposable pistol. Chambered in .38 rounds." + cost = 350 + contains = list(/obj/item/gun/ballistic/derringer) + crate_name = "derringer crate" + /datum/supply_pack/gun/commanders name = "Commander Pistol Crate" desc = "Contains a modified Candor 'Commander' pistol, produced by Nanotrasen and chambered in 9mm." @@ -27,19 +30,24 @@ name = "Stechkin Pistol Crate" desc = "Contains a concealable stechkin pistol, produced by Scarborough Arms and chambered in 10mm." cost = 1000 - contains = list(/obj/item/gun/ballistic/automatic/pistol, - /obj/item/gun/ballistic/automatic/pistol) + contains = list(/obj/item/gun/ballistic/automatic/pistol) + +/datum/supply_pack/gun/candors + name = "Candor Pistol Crate" + desc = "Contains a Candor pistol, the trusty sidearm of any spacer, produced by Hunter's Pride and chambered in .45 ACP." + cost = 1000 + contains = list(/obj/item/gun/ballistic/automatic/pistol/candor) -/datum/supply_pack/gun/revolver - name = "Scarborough Revolver Crate" - desc = "Contains a concealable Scarborough revolver, chambered in .357." +/datum/supply_pack/gun/pepperbox + name = "HP Firebrand Pepperbox Revolver Crate" + desc = "Contains a concealable pepperbox revolver manufactured by the Saint Roumain Militia, chambered in .357." cost = 1250 - contains = list(/obj/item/gun/ballistic/revolver) + contains = list(/obj/item/gun/ballistic/revolver/firebrand) /datum/supply_pack/gun/detrevolver name = "Hunter's Pride Detective Revolver Crate" - desc = "Contains a concealable Solarian revolver, chambered in .38." - cost = 1000 + desc = "Contains a concealable revolver favored by police departments around the sector, chambered in .38." + cost = 600 contains = list(/obj/item/gun/ballistic/revolver/detective) /datum/supply_pack/gun/shadowrevolver @@ -101,19 +109,26 @@ Shotguns */ +/datum/supply_pack/gun/doublebarrel_shotgun + name = "Double Barrel Shotgun Crate" + desc = "For when you need to deal with 2 drunkards the old-fashioned way. Contains a double-barreled shotgun, favored by Bartenders. Warranty voided if sawed off." + cost = 1000 + contains = list(/obj/item/gun/ballistic/shotgun/doublebarrel) + crate_name = "shotguns crate" + /datum/supply_pack/gun/hellfire_shotgun name = "Hellfire Shotgun Crate" - desc = "For when you need to deal with 7 hooligans. Contains a pump shotgun, with a 8-round capacity." + desc = "For when you need to deal with 8 hooligans. Contains a pump shotgun, with a 8-round capacity." cost = 2000 contains = list(/obj/item/gun/ballistic/shotgun/hellfire) - crate_name = "shotguns crate" + crate_name = "shotgun crate" /datum/supply_pack/gun/brimstone_shotgun name = "Brimstone Shotgun Crate" desc = "For when you need to deal with 5 hooligans, and QUICKLY. Contains a slamfire shotgun, with a 5-round capacity. Warranty voided if sawed off." cost = 2000 contains = list(/obj/item/gun/ballistic/shotgun/brimstone) - crate_name = "shotguns crate" + crate_name = "shotgun crate" /* Rifles @@ -121,25 +136,39 @@ /datum/supply_pack/gun/winchester name = "Flaming Arrow Lever Action Rifle Crate" - desc = "Contains a antiquated lever action rifle intended for hunting wildlife. Chambered in .38 rounds." + desc = "Contains an antiquated lever action rifle intended for hunting wildlife. Chambered in .38 rounds." cost = 750 contains = list(/obj/item/gun/ballistic/shotgun/flamingarrow) crate_name = "rifle crate" -/datum/supply_pack/gun/cobra20 - name = "Cobra-20 SMG Crate" - desc = "Contains a .45 submachine gun, manufactured by Scarborough Arms and chambered in .45" - cost = 3000 - contains = list(/obj/item/gun/ballistic/automatic/smg/c20r/cobra) - crate_name = "SMG crate" - /datum/supply_pack/gun/illestren name = "Illestren Rifle Crate" - desc = "Contains a expertly made bolt action rifle intended for hunting wildlife. Chambered in 8x50mmR rounds." + desc = "Contains an expertly made bolt action rifle intended for hunting wildlife. Chambered in 8x50mmR rounds." cost = 1250 contains = list(/obj/item/gun/ballistic/rifle/illestren) crate_name = "rifle crate" +/datum/supply_pack/gun/beacon + name = "Contender Break Action Rifle Crate" + desc = "Contains a single shot break action rifle to hunt wildlife that annoys you in particular. Chambered in devastating .45-70 rounds. Warranty voided if sawed off." + cost = 2250 + contains = list(/obj/item/gun/ballistic/shotgun/doublebarrel/beacon) + crate_name = "rifle crate" + +/datum/supply_pack/gun/scout + name = "Scout Sniper Rifle Crate" + desc = "Contains a traditional scoped rifle to hunt wildlife and big game from a respectful distance. Chambered in powerful .300 Magnum." + cost = 5500 + contains = list(/obj/item/gun/ballistic/rifle/scout) + crate_name = "rifle crate" + +/datum/supply_pack/gun/cobra20 + name = "Cobra-20 SMG Crate" + desc = "Contains a .45 submachine gun, manufactured by Scaraborough Arms and chambered in .45" + cost = 3000 + contains = list(/obj/item/gun/ballistic/automatic/smg/c20r/cobra) + crate_name = "SMG crate" + /datum/supply_pack/gun/wt550 name = "WT-550 Auto Rifle Crate" desc = "Contains a high-powered, automatic personal defense weapon chambered in 4.6x30mm." diff --git a/code/modules/cargo/packs/machinery.dm b/code/modules/cargo/packs/machinery.dm index 0bf718fffdd5..56ed7130738b 100644 --- a/code/modules/cargo/packs/machinery.dm +++ b/code/modules/cargo/packs/machinery.dm @@ -66,25 +66,22 @@ /datum/supply_pack/machinery/thermomachine name = "Thermomachine Crate" desc = "Freeze or heat your air." - cost = 2000 - contains = list(/obj/item/circuitboard/machine/thermomachine, - /obj/item/circuitboard/machine/thermomachine) + cost = 1000 + contains = list(/obj/item/circuitboard/machine/thermomachine) crate_name = "thermomachine crate" /datum/supply_pack/machinery/portapump name = "Portable Air Pump Crate" - desc = "Want to drain a room of air without losing a drop? We've got you covered. Contains two portable air pumps." - cost = 3000 - contains = list(/obj/machinery/portable_atmospherics/pump, - /obj/machinery/portable_atmospherics/pump) + desc = "Want to drain a room of air without losing a drop? We've got you covered. Contains a portable air pump." + cost = 1500 + contains = list(/obj/machinery/portable_atmospherics/pump) crate_name = "portable air pump crate" /datum/supply_pack/machinery/portascrubber name = "Portable Scrubber Crate" - desc = "Clean up that pesky plasma leak with your very own set of two portable scrubbers." - cost = 3000 - contains = list(/obj/machinery/portable_atmospherics/scrubber, - /obj/machinery/portable_atmospherics/scrubber) + desc = "Clean up that pesky plasma leak with your very own portable scrubber." + cost = 1500 + contains = list(/obj/machinery/portable_atmospherics/scrubber) crate_name = "portable scrubber crate" /datum/supply_pack/machinery/hugescrubber @@ -155,11 +152,9 @@ /datum/supply_pack/machinery/wall_shield_gen name = "Shield Generator Crate" - desc = "These four shield wall generators are guaranteed to keep any unwanted lifeforms on the outside, where they belong! Not rated for containing singularities or tesla balls." - cost = 2000 + desc = "These two shield wall generators are guaranteed to keep any unwanted lifeforms on the outside, where they belong! Not rated for containing singularities or tesla balls." + cost = 1000 contains = list(/obj/machinery/power/shieldwallgen, - /obj/machinery/power/shieldwallgen, - /obj/machinery/power/shieldwallgen, /obj/machinery/power/shieldwallgen) crate_name = "shield generators crate" crate_type = /obj/structure/closet/crate/secure/plasma @@ -176,7 +171,7 @@ /datum/supply_pack/machinery/blackmarket_telepad name = "Black Market LTSRBT" desc = "Need a faster and better way of transporting your illegal goods from and to the sector? Fear not, the Long-To-Short-Range-Bluespace-Transceiver (LTSRBT for short) is here to help. Contains a LTSRBT circuit, two bluespace crystals, and one ansible." - cost = 5000 + cost = 1000 contains = list( /obj/item/circuitboard/machine/ltsrbt, /obj/item/stack/ore/bluespace_crystal/artificial, diff --git a/code/modules/cargo/packs/mechs.dm b/code/modules/cargo/packs/mechs.dm index e184a8372627..376c22fc0db8 100644 --- a/code/modules/cargo/packs/mechs.dm +++ b/code/modules/cargo/packs/mechs.dm @@ -103,21 +103,17 @@ Mech Equipment /datum/supply_pack/mech/equipment/drill name = "Mech drill kit" - desc = "A trio of mechanized drills" - cost = 1500 + desc = "Contains one mechanized drill for heavy duty digging." + cost = 500 contains = list( - /obj/item/mecha_parts/mecha_equipment/drill, - /obj/item/mecha_parts/mecha_equipment/drill, /obj/item/mecha_parts/mecha_equipment/drill ) -/datum/supply_pack/mech/equipment/scanners +/datum/supply_pack/mech/equipment/scanner name = "Mech scanner kit" - desc = "A trio of electronic mining scanners, graded to interface with a mech" - cost = 1000 + desc = "An electronic mining scanner, graded to interface with a mech." + cost = 350 contains = list( - /obj/item/mecha_parts/mecha_equipment/mining_scanner, - /obj/item/mecha_parts/mecha_equipment/mining_scanner, /obj/item/mecha_parts/mecha_equipment/mining_scanner ) @@ -131,10 +127,9 @@ Mech Equipment /datum/supply_pack/mech/equipment/clamp name = "Mech clamp kit" - desc = "Two clamps designed for mechanized freight hauling." - cost = 700 + desc = "Contains a clamp designed for mechanized freight hauling." + cost = 350 contains = list( - /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp ) @@ -148,7 +143,7 @@ Mech Equipment /datum/supply_pack/mech/equipment/ripley_upgrade name = "APLU upgrade kit" - desc = "The components needed to upgrade an APLU MK-I to be spaceworthy" + desc = "Contains an APLU MK II upgrade kit. The upgrade will replace the cockpit with a spaceworthy canopy, but the added weight makes it slower." cost = 1500 contains = list( /obj/item/mecha_parts/mecha_equipment/conversion_kit/ripley @@ -159,7 +154,7 @@ weapons */ /datum/supply_pack/mech/equipment/pka - name = "Proto-Kinetic Accelerator kit" + name = "Mech Mounted Proto-Kinetic Accelerator kit" desc = "A ranged mining attachment for any mech." cost = 1500 contains = list( @@ -174,7 +169,7 @@ weapons /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser ) -/datum/supply_pack/mech/equipment/laser +/datum/supply_pack/mech/equipment/biglaser name = "Solaris kit" desc = "A heavy laser cannon designed for combat usage." cost = 2000 diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index d49e9760da81..08b576937138 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -61,10 +61,9 @@ /datum/supply_pack/medical/defibs name = "Defibrillator Crate" - desc = "Contains two defibrillators for bringing the recently deceased back to life." - cost = 1500 - contains = list(/obj/item/defibrillator/loaded, - /obj/item/defibrillator/loaded) + desc = "Contains a defibrillator for bringing the recently deceased back to life." + cost = 750 + contains = list(/obj/item/defibrillator/loaded) crate_name = "defibrillator crate" /datum/supply_pack/medical/surgery diff --git a/code/modules/cargo/packs/sec_supply.dm b/code/modules/cargo/packs/sec_supply.dm index 023ab5ee853f..8ff09a5dc38a 100644 --- a/code/modules/cargo/packs/sec_supply.dm +++ b/code/modules/cargo/packs/sec_supply.dm @@ -56,11 +56,9 @@ /datum/supply_pack/sec_supply/riotshields name = "Riot Shields Crate" - desc = "For when the greytide gets really uppity. Contains three riot shields." - cost = 2000 - contains = list(/obj/item/shield/riot, - /obj/item/shield/riot, - /obj/item/shield/riot) + desc = "Contains a riot shield, effective at holding back hostile fauna, xenofauna, or large crowds." + cost = 600 + contains = list(/obj/item/shield/riot) crate_name = "riot shields crate" /datum/supply_pack/sec_supply/survknives diff --git a/code/modules/cargo/packs/spacesuit_armor.dm b/code/modules/cargo/packs/spacesuit_armor.dm index 78e7d0fb1ff0..8346ea00b06e 100644 --- a/code/modules/cargo/packs/spacesuit_armor.dm +++ b/code/modules/cargo/packs/spacesuit_armor.dm @@ -34,8 +34,7 @@ name = "Medical Hardsuit Crate" desc = "One medical hardsuit, resistant to diseases and useful for retrieving patients in space." cost = 1500 - contains = list(/obj/item/clothing/suit/space/hardsuit/medical, - /obj/item/clothing/suit/space/hardsuit/medical) + contains = list(/obj/item/clothing/suit/space/hardsuit/medical) crate_name = "medical hardsuit crate" crate_type = /obj/structure/closet/crate/medical diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index 92726a3ab6a6..6b43448a5d81 100644 --- a/code/modules/cargo/packs/tools.dm +++ b/code/modules/cargo/packs/tools.dm @@ -67,14 +67,11 @@ ) crate_name = "basic mining crate" -/datum/supply_pack/tools/jackhammers +/datum/supply_pack/tools/jackhammer name = "Jackhammer Crate" - desc = "Contains two jackhammers, ideal for breaking rocks and breaking hull." - cost = 3500 - contains = list( - /obj/item/pickaxe/drill/jackhammer, - /obj/item/pickaxe/drill/jackhammer, - ) + desc = "Contains a jackhammer, ideal for breaking rocks and breaking hull." + cost = 1750 + contains = list(/obj/item/pickaxe/drill/jackhammer) crate_name = "jackhammer crate" @@ -87,10 +84,9 @@ /datum/supply_pack/tools/insulated_gloves name = "Insulated Gloves Crate" - desc = "The backbone of modern society. Barely ever ordered for actual engineering. Contains two insulated gloves." - cost = 1500 - contains = list(/obj/item/clothing/gloves/color/yellow, - /obj/item/clothing/gloves/color/yellow) + desc = "The backbone of modern society. Barely ever ordered for actual engineering. Contains a pair of insulated gloves." + cost = 750 + contains = list(/obj/item/clothing/gloves/color/yellow) crate_name = "insulated gloves crate" /datum/supply_pack/tools/jetpack @@ -101,13 +97,12 @@ crate_name = "jetpack crate" crate_type = /obj/structure/closet/crate/secure/plasma -/datum/supply_pack/tools/transfer_valves +/datum/supply_pack/tools/transfer_valve name = "Tank Transfer Valves Crate" - desc = "The key ingredient for making a lot of people very angry very fast. Contains two tank transfer valves." - cost = 6000 - contains = list(/obj/item/transfer_valve, - /obj/item/transfer_valve) - crate_name = "tank transfer valves crate" + desc = "The key ingredient for making a lot of people very angry very fast. Contains a tank transfer valve." + cost = 3000 + contains = list(/obj/item/transfer_valve) + crate_name = "tank transfer valve crate" crate_type = /obj/structure/closet/crate/secure/science /* diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 4153a2f409e5..0fd922a2856a 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -1087,7 +1087,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( return var/list/verblist = list() var/list/verbstoprocess = verbs.Copy() - if(mob?.client?.prefs.broadcast_login_logout) + if(mob) verbstoprocess += mob.verbs for(var/atom/movable/thing as anything in mob.contents) verbstoprocess += thing.verbs diff --git a/code/modules/client/loadout/loadout_accessories.dm b/code/modules/client/loadout/loadout_accessories.dm index 40702e5fc2be..b81588c8e72e 100644 --- a/code/modules/client/loadout/loadout_accessories.dm +++ b/code/modules/client/loadout/loadout_accessories.dm @@ -77,6 +77,11 @@ description = "Standard hand coverings for everyday use." path = /obj/item/clothing/gloves/color/white +/datum/gear/accessory/gloves/fingerless + display_name = "fingerless gloves" + description = "Radical hand coverings for everyday use." + path = /obj/item/clothing/gloves/fingerless + /datum/gear/accessory/gloves/evening display_name = "evening gloves" description = "Excessively fancy elbow-length gloves." diff --git a/code/modules/client/loadout/loadout_general.dm b/code/modules/client/loadout/loadout_general.dm index 5b8df328e6e2..4c081a67e92f 100644 --- a/code/modules/client/loadout/loadout_general.dm +++ b/code/modules/client/loadout/loadout_general.dm @@ -30,17 +30,13 @@ display_name = "bandana, red" path = /obj/item/clothing/mask/bandana/red -/datum/gear/bible - display_name = "bible" - path = /obj/item/storage/book/bible - /datum/gear/flask display_name = "flask" path = /obj/item/reagent_containers/food/drinks/flask /datum/gear/mug display_name = "coffee mug" - path = /obj/item/reagent_containers/food/drinks/britcup + path = /obj/item/reagent_containers/food/drinks/mug /datum/gear/rilena_mug display_name = "coffee mug, rilena" @@ -150,6 +146,10 @@ display_name = "hair dye" path = /obj/item/dyespray +/datum/gear/colorsalve + display_name = "Elzuose color salve" + path = /obj/item/colorsalve + /datum/gear/tablebell display_name = "table bell, brass" path = /obj/item/table_bell/brass diff --git a/code/modules/client/loadout/loadout_suit.dm b/code/modules/client/loadout/loadout_suit.dm index ec9fc916723e..8c758145f71e 100644 --- a/code/modules/client/loadout/loadout_suit.dm +++ b/code/modules/client/loadout/loadout_suit.dm @@ -111,3 +111,7 @@ display_name = "worn shirt" path = /obj/item/clothing/suit/ianshirt +/datum/gear/suit/hawaiian + display_name = "floral shirt" + description = "From grills to guns, this shirt's seen it all." + path = /obj/item/clothing/suit/hawaiian diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f4584749609c..662a549ca631 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -154,6 +154,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) ) var/fbp = FALSE var/phobia = "spiders" + var/preferred_smoke_brand = PREF_CIG_SPACE var/list/alt_titles_preferences = list() var/list/custom_names = list() var/preferred_ai_core_display = "Blue" @@ -839,6 +840,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[phobia]
" + if("Smoker" in all_quirks) + dat += "

Smoker

" + + dat += "[preferred_smoke_brand]
" + if("body_size" in pref_species.default_features) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -1670,9 +1676,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) age = clamp(round(text2num(new_age)), pref_species.species_age_min, pref_species.species_age_max) if("flavor_text") - var/msg = sanitize(stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", features["flavor_text"], 4096, TRUE)) + var/msg = stripped_multiline_input(usr, "A snippet of text shown when others examine you, describing what you may look like. This can also be used for OOC notes.", "Flavor Text", html_decode(features["flavor_text"]), MAX_FLAVOR_LEN, TRUE) if(msg) //WS edit - "Cancel" does not clear flavor text - features["flavor_text"] = html_decode(msg) + features["flavor_text"] = msg if("hair") var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference","#"+hair_color) as color|null @@ -2078,6 +2084,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/phobiaType = input(user, "What are you scared of?", "Character Preference", phobia) as null|anything in SStraumas.phobia_types if(phobiaType) phobia = phobiaType + if("preferred_smoke_brand") + var/smokeBrand = input(user, "What cigarettes are your favorite?", "Character Preference", preferred_smoke_brand) as null|anything in GLOB.valid_smoke_types + if(smokeBrand) + preferred_smoke_brand = smokeBrand if("generic_adjective") var/selectAdj @@ -2507,20 +2517,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) /datum/preferences/proc/get_default_name(name_id) switch(name_id) - if("human") - return random_unique_name() if("ai") return pick(GLOB.ai_names) if("cyborg") return DEFAULT_CYBORG_NAME - if("clown") - return pick(GLOB.clown_names) - if("mime") - return pick(GLOB.mime_names) - if("religion") - return DEFAULT_RELIGION - if("deity") - return DEFAULT_DEITY return random_unique_name() /datum/preferences/proc/ask_for_custom_name(mob/user,name_id) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index cce6b66ac612..b53d761c41da 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -405,6 +405,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car READ_FILE(S["jumpsuit_style"], jumpsuit_style) READ_FILE(S["uplink_loc"], uplink_spawn_loc) READ_FILE(S["phobia"], phobia) + READ_FILE(S["preferred_smoke_brand"], preferred_smoke_brand) READ_FILE(S["generic_adjective"], generic_adjective) READ_FILE(S["randomise"], randomise) READ_FILE(S["body_size"], features["body_size"]) @@ -594,6 +595,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc) WRITE_FILE(S["randomise"] , randomise) WRITE_FILE(S["species"] , pref_species.id) + WRITE_FILE(S["preferred_smoke_brand"] , preferred_smoke_brand) WRITE_FILE(S["phobia"] , phobia) WRITE_FILE(S["generic_adjective"] , generic_adjective) WRITE_FILE(S["body_size"] , features["body_size"]) diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index b12e7cdf3d00..b40e1702652e 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -443,7 +443,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS //Admin Preferences /client/proc/toggleadminhelpsound() set name = "Hear/Silence Adminhelps" - set category = "Prefs - Admin" + set category = "Preferences.Admin" set desc = "Toggle hearing a notification when admin PMs are received" if(!holder) return @@ -454,7 +454,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/toggleannouncelogin() set name = "Do/Don't Announce Login" - set category = "Prefs - Admin" + set category = "Preferences.Admin" set desc = "Toggle if you want an announcement to admins when you login during a round" if(!holder) return @@ -465,7 +465,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/toggle_hear_radio() set name = "Show/Hide Radio Chatter" - set category = "Prefs - Admin" + set category = "Preferences.Admin" set desc = "Toggle seeing radiochatter from nearby radios and speakers" if(!holder) return @@ -487,7 +487,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/deadchat() set name = "Show/Hide Deadchat" - set category = "Prefs - Admin" + set category = "Preferences.Admin" set desc ="Toggles seeing deadchat" if(!holder) return @@ -498,7 +498,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/toggleprayers() set name = "Show/Hide Prayers" - set category = "Prefs - Admin" + set category = "Preferences.Admin" set desc = "Toggles seeing prayers" if(!holder) return @@ -509,7 +509,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/toggle_prayer_sound() set name = "Hear/Silence Prayer Sounds" - set category = "Prefs - Admin" + set category = "Preferences.Admin" set desc = "Hear Prayer Sounds" if(!holder) return @@ -520,7 +520,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/colorasay() set name = "Set Admin Say Color" - set category = "Prefs - Admin" + set category = "Preferences.Admin" set desc = "Set the color of your ASAY messages" if(!holder) return @@ -537,7 +537,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/resetasaycolor() set name = "Reset your Admin Say Color" set desc = "Returns your ASAY Color to default" - set category = "Prefs - Admin" + set category = "Preferences.Admin" if(!holder) return if(!CONFIG_GET(flag/allow_admin_asaycolor)) diff --git a/code/modules/clothing/factions/clip.dm b/code/modules/clothing/factions/clip.dm index b44c899f40c6..97eed2728fb6 100644 --- a/code/modules/clothing/factions/clip.dm +++ b/code/modules/clothing/factions/clip.dm @@ -6,6 +6,7 @@ icon = 'icons/obj/clothing/faction/clip/uniforms.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/uniforms.dmi' + vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi' icon_state = "clip_deck" item_state = "b_suit" @@ -16,7 +17,7 @@ dying_key = DYE_REGISTRY_UNDER //??? // it's for washing machines don't worry about it can_adjust = FALSE - supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION | KEPORI_VARIATION // a new record! + supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE | VOX_VARIATION // a new record! UPDATE 2 MONTHS LATER: :'( /obj/item/clothing/under/clip/minutemen name = "clip minutemen fatigues" @@ -28,7 +29,7 @@ strip_delay = 50 can_adjust = FALSE - supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION | KEPORI_VARIATION + supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE | VOX_VARIATION /obj/item/clothing/under/clip/formal name = "formal clip outfit" @@ -37,7 +38,7 @@ icon_state = "clip_formal" armor = null - supports_variations = null + supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE | VOX_VARIATION /obj/item/clothing/under/clip/formal/alt name = "formal clip outfit" @@ -62,6 +63,8 @@ icon_state = "clip_medic" + supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE | VOX_VARIATION + /obj/item/clothing/under/clip/officer name = "clip minutemen officer uniform" desc = "A uniform used by higher ranking officers of the CLIP Minutemen." @@ -69,6 +72,8 @@ item_state = "g_suit" can_adjust = FALSE + supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE | VOX_VARIATION + /obj/item/clothing/under/clip/officer/alt name = "clip minutemen officer uniform" desc = "A uniform with a pencil skirt used by higher ranking officers of the CLIP Minutemen." @@ -109,6 +114,8 @@ icon_state = "clip_general" item_state = "clip_general" + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + /obj/item/clothing/suit/armor/vest/capcarapace/clip/admiral name = "CLIP Minutemen admiral trenchcoat" desc = "A very fancy trenchcoat used by admirals of the CLIP Minutemen." @@ -137,7 +144,8 @@ armor = list("melee" = 25, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) cold_protection = CHEST|LEGS|ARMS heat_protection = CHEST|LEGS|ARMS - supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + + supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE /obj/item/clothing/suit/armor/clip_capcoat name = "\improper CLIP Minutemen captain's coat" @@ -152,23 +160,28 @@ armor = list("melee" = 25, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) cold_protection = CHEST|LEGS|ARMS heat_protection = CHEST|LEGS|ARMS - supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + + supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE //spacesuits -/obj/item/clothing/suit/space/hardsuit/security/independent/clip //TODO: replace - name = "\improper CMM Patroller hardsuit" - desc = "A hardsuit used by the CLIP Minutemen. To reduce costs, its a modified version of a more popular model from a independent manufacturer, and given to patrol vessels. As should be obvious, it's not extremely armored, as it's made for reconnaissance and speed." +/obj/item/clothing/suit/space/hardsuit/clip_patroller + name = "\improper CM-410 'Patroller' EVA Hardsuit" + desc = "A CLIP produced hardsuit adapted from an existing design. Intended for reconnaissance and speed, it's not extremely armored, that job goes to the Spotter hardsuit." icon = 'icons/obj/clothing/faction/clip/suits.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/suits.dmi' icon_state = "hardsuit-clip-patrol" hardsuit_type = "hardsuit-clip-patrol" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/independent/clip + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clip_patroller -/obj/item/clothing/head/helmet/space/hardsuit/security/independent/clip //TODO: replace - name = "\improper CMM Patroller hardsuit helmet" - desc = "A hardsuit used by the CLIP Minutemen. To reduce costs, its a modified version of a more popular model from a independent manufacturer, and given to patrol vessels. As should be obvious, it's not extremely armored, as it's made for reconnaissance and speed." + supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE + + armor = list("melee" = 35, "bullet" = 25, "laser" = 20,"energy" = 40, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) + +/obj/item/clothing/head/helmet/space/hardsuit/clip_patroller + name = "\improper CM-410 'Patroller' EVA Hardsuit helmet" + desc = "A CLIP produced hardsuit adapted from an existing design. Intended for reconnaissance and speed, it's not extremely armored, that job goes to the Spotter hardsuit." icon = 'icons/obj/clothing/faction/clip/head.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/head.dmi' @@ -176,6 +189,10 @@ icon_state = "hardsuit0-clip-patrol" hardsuit_type = "clip-patrol" + supports_variations = SNOUTED_VARIATION + + armor = list("melee" = 35, "bullet" = 25, "laser" = 20,"energy" = 40, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) + /obj/item/clothing/suit/space/hardsuit/clip_spotter name = "CM-490 'Spotter' Combat Hardsuit" desc = "CLIP's standard EVA combat hardsuit. Due to CLIP's doctrine on range, it doesn't have advanced components that allow swift movement, and thus slows down the user despite the heavy armor." @@ -193,6 +210,8 @@ resistance_flags = null slowdown = 1 + supports_variations = DIGITIGRADE_VARIATION_SAME_ICON_FILE + /obj/item/clothing/head/helmet/space/hardsuit/clip_spotter name = "CM-490 'Spotter' Combat Hardsuit Helmet" desc = "CLIP's standard EVA combat hardsuit. Due to CLIP's doctrine on range, it doesn't have advanced components that allow swift movement, and thus slows down the user despite the heavy armor." @@ -206,6 +225,7 @@ armor = list("melee" = 50, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 60, "fire" = 50, "acid" = 80) resistance_flags = null + supports_variations = SNOUTED_VARIATION //hats /obj/item/clothing/head/clip @@ -213,59 +233,78 @@ desc = "A standard issue soft cap dating back to the original Zohil colonial peroid. While usually given to recruits and volunteers, it's sometimes used by occasionally by some Minutemen." icon = 'icons/obj/clothing/faction/clip/head.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/head.dmi' + vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi' // lefthand_file = 'icons/mob/inhands/faction/clip/gezena_lefthand.dmi' // righthand_file = 'icons/mob/inhands/faction/clip/gezena_righthand.dmi' icon_state = "clip_cap" item_state = "bluecloth" + supports_variations = VOX_VARIATION + /obj/item/clothing/head/clip/corpsman name = "\improper CLIP Minutemen corpsman cap" desc = "A standard issue soft cap dating back to the original Zohil colonial peroid. This one is in corpsman colors." icon_state = "clip_mediccap" item_state = "whitecloth" + supports_variations = VOX_VARIATION + /obj/item/clothing/head/clip/slouch name = "CLIP Minutemen slouch hat" desc = "A commanding slouch hat used by the CLIP Minutemen." icon_state = "clip_slouch_hat" + supports_variations = VOX_VARIATION + /obj/item/clothing/head/clip/slouch/officer name = "CLIP Minutemen officer's slouch hat" desc = "A commanding slouch hat adorned with a officer's badge, used by the CLIP Minutemen." icon_state = "clip_officer_hat" + supports_variations = VOX_VARIATION + /obj/item/clothing/head/clip/boonie name = "CLIP Minutemen boonie hat" desc = "A wide brimmed cap to keep yourself cool during blistering hot weather." icon_state = "clip_boonie" + supports_variations = VOX_VARIATION + /obj/item/clothing/head/clip/bicorne name = "general's bicorne" desc = "A fancy bicorne used by generals of the CLIP Minutemen." icon_state = "clip_general_hat" + supports_variations = VOX_VARIATION + /obj/item/clothing/head/helmet/bulletproof/x11/clip name = "\improper Minutemen X11 Helmet" desc = "A bulletproof helmet worn by members of the CLIP Minutemen." icon = 'icons/obj/clothing/faction/clip/head.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/head.dmi' + vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi' icon_state = "clip_x11" allow_post_reskins = FALSE unique_reskin = null + supports_variations = VOX_VARIATION + /obj/item/clothing/head/helmet/bulletproof/m10/clip_vc name = "\improper Minutemen Vehicle Crewman M10 Helmet" desc = "A light bulletproof helmet worn by Vehicle Crewmen of the CLIP Minutemen. The ear padding protects the ears from loud noises and the microphone automatically connects with a headset." icon = 'icons/obj/clothing/faction/clip/head.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/head.dmi' + vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi' icon_state = "clip_m10_vc" allow_post_reskins = FALSE unique_reskin = null + supports_variations = VOX_VARIATION + /obj/item/clothing/head/helmet/bulletproof/m10/clip_vc/ComponentInitialize() . = ..() AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_HEAD)) @@ -278,6 +317,8 @@ mob_overlay_icon = 'icons/mob/clothing/faction/clip/head.dmi' icon_state = "riot_clip" + supports_variations = SNOUTED_VARIATION + //GOLD /obj/item/clothing/head/fedora/det_hat/clip name = "GOLD fedora" @@ -285,19 +326,25 @@ icon = 'icons/obj/clothing/faction/clip/head.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/head.dmi' + vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi' icon_state = "clip_fedora" item_state = "detective" + supports_variations = VOX_VARIATION + /obj/item/clothing/head/flatcap/clip name = "GOLD flatcap" desc = "A hat issued by the GOLD division of the CLIP Minutemen. An office worker's hat." icon = 'icons/obj/clothing/faction/clip/head.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/head.dmi' + vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi' icon_state = "flatcap_clip" item_state = "detective" + + supports_variations = VOX_VARIATION //mask /obj/item/clothing/mask/gas/clip @@ -310,6 +357,10 @@ icon_state = "clip-gasmask" strip_delay = 60 + flags_inv = HIDEEARS|HIDEFACE|HIDEFACIALHAIR + + supports_variations = SNOUTED_VARIATION + //gloves /obj/item/clothing/gloves/color/latex/nitrile/clip @@ -318,10 +369,13 @@ icon = 'icons/obj/clothing/faction/clip/hands.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/hands.dmi' + vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi' icon_state = "nitrile_clip" item_state = "nitrile_clip" + supports_variations = VOX_VARIATION + //boots //belt @@ -331,12 +385,15 @@ icon = 'icons/obj/clothing/faction/clip/belt.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/belt.dmi' + vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi' icon_state = "clipwebbing" item_state = "clipwebbing" unique_reskin = null + supports_variations = VOX_VARIATION + /obj/item/storage/belt/military/clip/p16/PopulateContents() for(var/i in 1 to 4) new /obj/item/ammo_box/magazine/p16(src) @@ -383,9 +440,12 @@ icon = 'icons/obj/clothing/faction/clip/belt.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/clip/belt.dmi' + vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi' icon_state = "clip-medwebbing" + supports_variations = VOX_VARIATION + /obj/item/storage/belt/medical/webbing/clip/prefilled/PopulateContents() new /obj/item/reagent_containers/medigel/styptic(src) new /obj/item/reagent_containers/medigel/styptic(src) @@ -402,6 +462,8 @@ icon_state = "clippack" + supports_variations = VOX_VARIATION + /obj/item/storage/backpack/satchel/sec/clip name = "clip satchel" desc = "A robust satchel for anti-piracy related needs." diff --git a/code/modules/clothing/factions/gezena.dm b/code/modules/clothing/factions/gezena.dm index b6b0839509fa..fe6a6d9bdb6a 100644 --- a/code/modules/clothing/factions/gezena.dm +++ b/code/modules/clothing/factions/gezena.dm @@ -1,5 +1,4 @@ //Jumpsuits -//thgvr TODO: Make more stuff (backpacks, headsets, doodads, part 2?) /obj/item/clothing/under/gezena name = "gezenan navywear" desc = "Made of a slick synthetic material that is both breathable, and resistant to scale and thorn alike." diff --git a/code/modules/clothing/factions/nanotrasen.dm b/code/modules/clothing/factions/nanotrasen.dm new file mode 100644 index 000000000000..664c534d236e --- /dev/null +++ b/code/modules/clothing/factions/nanotrasen.dm @@ -0,0 +1,391 @@ +// Uniforms // + +/obj/item/clothing/under/nanotrasen + name = "deckhand's uniform" + desc = "A plain grey work uniform with a Nanotrasen, Inc. logo embroidered on the front. Typical of entry-level employees." + icon = 'icons/obj/clothing/faction/nanotrasen/uniforms.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/nanotrasen/uniforms.dmi' + lefthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi' + icon_state = "deckhand" + item_state = "graycloth" + supports_variations = DIGITIGRADE_VARIATION + +// Engineering uniforms +/obj/item/clothing/under/nanotrasen/engineering + name = "engineering jumpsuit" + desc = "A dirty grey jumpsuit with reflective blue flashes on the limbs and a wrench icon on the back. A Nanotrasen, Inc. logo is stitched into the collar." + icon_state = "engi" + item_state = "greycloth" + +/obj/item/clothing/under/nanotrasen/engineering/atmos + name = "atmospherics jumpsuit" + desc = "A thick grey jumpsuit with black stripes and an 'O2' icon on the back. A Nanotrasen, Inc. logo is stitched into the collar." + icon_state = "atmos_tech" + item_state = "greycloth" + +/obj/item/clothing/under/nanotrasen/engineering/director + name = "engineering director's overalls" + desc = "Thick black overalls over a blue office shirt. Unlike most managerial staff, Nanotrasen engineering directors still need to get hands-on with their work." + icon_state = "engi_director" + item_state = "blackcloth" + +//Supply uniforms +/obj/item/clothing/under/nanotrasen/supply + name = "cargo handler shorts" + desc = "A cheap work shirt and black shorts, typical of cargo handlers and clerks at N+S Logistics." + icon_state = "supply" + item_state = "browncloth" + +/obj/item/clothing/under/nanotrasen/supply/qm + name = "supply director slacks" + desc = "Crisp slacks and a pressed brown shirt that any supply director could be proud of. N+S Logistics' compass rose logo is embossed on every button." + icon_state = "supply_director" + item_state = "browncloth" + +/obj/item/clothing/under/nanotrasen/supply/miner + name = "mining overalls" + desc = "Cheap brown overalls over a grey jumpsuit, already slightly frayed and saturated with rock dust. N+S Logistics logos are prominently sewn on in several places." + icon_state = "miner" + item_state = "browncloth" + +//Science uniforms +/obj/item/clothing/under/nanotrasen/science + name = "science slacks" + desc = "A thick buttoned shirt and slacks for some protection against low-level lab hazards. The basic uniform of Nanotrasen, Inc.'s research division." + icon_state = "sci" + item_state = "whitecloth" + +/obj/item/clothing/under/nanotrasen/science/robotics + name = "robotics jumpsuit" + desc = "A cheap black jumpsuit with blue arm flashes. Expendable armor against oil and sparks, issued en masse to Nanotrasen robotics technicians." + icon_state = "robotics" + item_state = "blackcloth" + +/obj/item/clothing/under/nanotrasen/science/director + name = "science director's slacks" + desc = "A well-made black shirt with blue slacks, practically begging to be paired with a garish tie of some description. Nanotrasen logos are neatly stitched into the collar and cuffs." + icon_state = "sci_director" + item_state = "blackcloth" + +//Medical uniforms +/obj/item/clothing/under/nanotrasen/medical + name = "medical slacks" + desc = "A crisp white shirt with blue stripes on the arms, identifying the owner as trained Nanotrasen medical staff. The faint smell of antiseptic won't wash out." + icon_state = "doctor" + item_state = "whitecloth" + +/obj/item/clothing/under/nanotrasen/medical/paramedic + name = "paramedic uniform" + desc = "Tough synthetic pants and a white uniform shirt, designed to handle all manner of scrapes and splashes in the line of duty. The tag identifies this as property of Nanotrasen, Inc." + icon_state = "paramedic" + item_state = "whitecloth" + +/obj/item/clothing/under/nanotrasen/medical/director + name = "medical director's slacks" + desc = "A neat blue shirt with white arm bands and comfortable black slacks. Nanotrasen logos are finely stitched into the collar and cuffs. It smells like burnt coffee and antiseptic." + icon_state = "medical_director" + item_state = "bluecloth" + +//Security/civilian uniforms + +/obj/item/clothing/under/nanotrasen/janitor + name = "custodial jumpsuit" + desc = "A grey jumpsuit with purple sleeves and faint stains on the elbows and knees. It looks stiff and cheap, but is surprisingly comfortable." + icon_state = "janitor" + item_state = "graycloth" + +/obj/item/clothing/under/nanotrasen/affairs + name = "neatly pleated slacks" + desc = "Flawlessly pleated slacks and a linen shirt with the Nanotrasen logo stitched repeatedly into the cuffs and collar. It exudes an aura of quiet authority." + icon_state = "affairs" + item_state = "whitecloth" + +/obj/item/clothing/under/nanotrasen/security + name = "security slacks" + desc = "A starched grey uniform with red arm flashes, of a type seen throughout the core worlds. The Vigilitas Interstellar logo is proudly emblazoned on the front." + icon_state = "security" + item_state = "graycloth" + +/obj/item/clothing/under/nanotrasen/security/director + name = "security director's slacks" + desc = "A robust crimson uniform, heavily starched, with a Vigilitas logo neatly stitched onto either end of the collar. The last line of defense for Vigilitas's managerial staff." + icon_state = "security_director" + item_state = "redcloth" + +//Command uniforms +/obj/item/clothing/under/nanotrasen/captain + name = "blue captain's slacks" + desc = "A quality uniform in Nanotrasen Blue, with gold trim. Gold Nanotrasen logo pins adorn the collar and cuffs. The fine fabrics and comfortable fit set this apart from the more utilitarian uniforms worn by lower-level employees." + icon_state = "nt_captain" + item_state = "bluecloth" + +/obj/item/clothing/under/nanotrasen/captain/skirt + name = "blue captain's skirt" + desc = "A quality uniform in Nanotrasen Blue, with gold trim. Gold Nanotrasen logo pins adorn the collar and cuffs. The fine fabrics and comfortable fit set this apart from the more utilitarian uniforms worn by lower-level employees." + icon_state = "nt_captain_skirt" + body_parts_covered = CHEST|GROIN|ARMS + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + +/* +/obj/item/clothing/under/nanotrasen/captain/parade + name = "" + desc = "" + icon_state = "captain_parade" + can_adjust = FALSE +*/ + +/obj/item/clothing/under/nanotrasen/officer + name = "officer's slacks" + desc = "An unadorned uniform in Nanotrasen Blue. While it isn't as nice as a captain's uniform, the color and quality still mark its owner as part of Nanotrasen's managerial class." + icon_state = "officer" + item_state = "bluecloth" + +/obj/item/clothing/under/nanotrasen/officer/skirt + name = "officer's skirt" + desc = "An unadorned uniform in Nanotrasen Blue. While it isn't as nice as a captain's uniform, the color and quality still mark its owner as part of Nanotrasen's managerial class." + icon_state = "officer_skirt" + body_parts_covered = CHEST|GROIN|ARMS + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + +// Suits // + +/obj/item/clothing/suit/nanotrasen //Base type, do not use + name = "Suit" + desc = "You shouldn't be here." + icon = 'icons/obj/clothing/faction/nanotrasen/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/nanotrasen/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi' + +/obj/item/clothing/suit/nanotrasen/medical_smock + name = "surgical smock" + desc = "A thick fluid-repelling smock rendered in what is unmistakeably Nanotrasen Blue. The tag on the inside declares it property of Nanotrasen, Inc." + icon_state = "med_smock" + item_state = "bluecloth" + +/obj/item/clothing/suit/nanotrasen/suitjacket + name = "fancy black suit jacket" + desc = "A fine black linen suit jacket with blue markings and a Nanotrasen lapel pin. It has a strangely menacing aura." + icon_state = "suit_jacket" + item_state = "blackcloth" + +/obj/item/clothing/suit/nanotrasen/vest + name = "black hazard vest" + desc = "A thin black vest with reflective markings, worn to guarantee visibility when operating around industrial equipment or in dark or dusty conditions. Property of Nanotrasen, Inc." + icon_state = "engi_vest" + item_state = "blackcloth" + +/obj/item/clothing/suit/nanotrasen/vest/blue + name = "blue hazard vest" + desc = "A thin vest with reflective stripes, worn to guarantee visibility in dangerous conditions. The vest itself is an offensively bright shade of Nanotrasen Blue. Property of Nanotrasen, Inc." + icon_state = "atmos_vest" + item_state = "bluecloth" + +/obj/item/clothing/suit/toggle/nanotrasen + name = "officer's coat" + desc = "A smart blue uniform jacket with red silk accents and a large buckle with an engraved Nanotrasen logo. Standard wear for command officers aboard Nanotrasen, Inc. ships." + icon = 'icons/obj/clothing/faction/nanotrasen/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/nanotrasen/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi' + icon_state = "officer_formal" + item_state = "bluecloth" + +/obj/item/clothing/suit/toggle/labcoat/nanotrasen + name = "corporate labcoat" + desc = "A standardized white labcoat used by Nanotrasen, Inc.'s medical and research divisions. A simplified Nanotrasen logo is stitched on the front." + icon = 'icons/obj/clothing/faction/nanotrasen/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/nanotrasen/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi' + icon_state = "labcoat" + item_state = "whitecloth" + +/obj/item/clothing/suit/toggle/labcoat/nanotrasen/blue + name = "medical director's labcoat" + desc = "A well-made, fitted labcoat, crafted from high-quality materials and sporting blue markings around the arms and hem. A Nanotrasen logo is neatly embroidered on the front. Stylish, practical, and exceptionally professional." + icon_state = "med_labcoat" + item_state = "whitecloth" + +/obj/item/clothing/suit/toggle/labcoat/nanotrasen/black + name = "science director's labcoat" + desc = "An overdesigned and rather intimidating black labcoat with a very high collar, as impervious to lab hazards as one can get without a full-body suit. Nanotrasen, Inc.'s logo is proudly emblazoned on the chest." + icon_state = "black_labcoat" + item_state = "blackcloth" + +/obj/item/clothing/suit/toggle/labcoat/nanotrasen/paramedic + name = "bright blue paramedic jacket" + desc = "A thick, protective blue jacket with reflective visibility stripes and a Nanotrasen logo stitched into the chest. Safe against all manner of scrapes and splashes." + icon_state = "med_jacket" + item_state = "bluecloth" + +/obj/item/clothing/suit/armor/nanotrasen + name = "armor vest" + desc = "A sturdy vest designed to protect Vigilitas Interstellar officers from a variety of basic threats. Sports a stylish red stripe down the front." + icon = 'icons/obj/clothing/faction/nanotrasen/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/nanotrasen/suits.dmi' + lefthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi' + icon_state = "armor" + item_state = "blackcloth" + body_parts_covered = CHEST|GROIN + armor = list("melee" = 30, "bullet" = 40, "laser" = 30, "energy" = 50, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/armor/nanotrasen/slim + name = "slim armor vest" + icon_state = "armor_slim" + +/obj/item/clothing/suit/armor/nanotrasen/sec_director + name = "security director's overcoat" + desc = "A tailored black overcoat, made from cutting-edge ballistic fabrics and composites. Vigilitas's 'VI' logo is embossed on every button. Intimidating and profoundly stylish." + icon_state = "command_coat" + body_parts_covered = CHEST|GROIN|ARMS + armor = list("melee" = 30, "bullet" = 0, "laser" = 30, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) + +/obj/item/clothing/suit/armor/nanotrasen/captain + name = "captain's jacket" + desc = "A sturdy jacket in Nanotrasen Blue, accentuated with gold thread and lined with a layer of ballistic fabric. Its large, shiny belt buckle is embossed with Nanotrasen's corporate logo." + icon_state = "armor_captain" + item_state = "bluecloth" + body_parts_covered = CHEST|GROIN + armor = list("melee" = 50, "bullet" = 60, "laser" = 60, "energy" = 50, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/armor/nanotrasen/captain/parade + name = "ostentatious captain's coat" + desc = "An exquisitely-decorated fine blue jacket, suitable for especially formal situations, or for a commanding officer who wants to flaunt their status even more than usual. Richly decorated with gold thread and embroidered Nanotrasen logos." + icon_state = "captain_formal" + item_state = "bluecloth" + body_parts_covered = CHEST|GROIN|ARMS + armor = list("melee" = 30, "bullet" = 0, "laser" = 30, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 90) + +// Hats // + +/obj/item/clothing/head/nanotrasen + name = "blue flatcap" + desc = "A simple blue flat cap with a Nanotrasen logo on the side. Not standard uniform, but occasionally worn by Nanotrasen office workers." + icon = 'icons/obj/clothing/faction/nanotrasen/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/nanotrasen/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi' + icon_state = "com_flatcap" + item_state = "bluecloth" + +/obj/item/clothing/head/nanotrasen/beret + name = "fancy blue beret" + desc = "A well-made beret in Nanotrasen Blue with a corporate logo on the side, often seen topping the heads of Nanotrasen, Inc. managerial staff." + icon_state = "beret_blue" + item_state = "bluecloth" + +/obj/item/clothing/head/nanotrasen/beret/security + name = "fancy red beret" + desc = "A cherry-red beret issued to Vigilitas security officers for formal occasions. Vigilitas Interstellar's 'VI' logo is stitched into the side." + icon_state = "beret_red" + item_state = "redcloth" + +/obj/item/clothing/head/nanotrasen/beret/security/command + name = "fancy black beret" + desc = "A deep black beret with a Vigilitas Interstellar 'VI' badge on the front. An unmistakeable hallmark of Vigilitas managerial staff." + icon_state = "beret_black" + item_state = "blackcloth" + +/obj/item/clothing/head/nanotrasen/surgical + name = "white surgical cap" + desc = "A white surgical cap with a Nanotrasen Blue stripe down the middle." + icon_state = "surgical_white" + item_state = "whitecloth" + +/obj/item/clothing/head/nanotrasen/surgical/blue + name = "blue surgical cap" + desc = "A Nanotrasen Blue surgical cap with a white stripe down the middle, issued to NT medical directors as the last line of recognizability, should their uniforms, coats, and unflappable nature ever fail." + icon_state = "surgical_blue" + item_state = "bluecloth" + +/obj/item/clothing/head/nanotrasen/cap // Base type, do not use + name = "generic cap" + desc = "You don't belong here." + +/obj/item/clothing/head/nanotrasen/cap/security + name = "red softcap" + desc = "A cherry red cap with a white 'VI' logo embroidered on the front. Issued to Vigilitas security guards as casual wear and low-threat workwear. Surprisingly durable, and very popular among current and retired employees." + icon_state = "cap_red" + item_state = "redcloth" + +/obj/item/clothing/head/nanotrasen/cap/supply + name = "brown softcap" + desc = "A brown cap with N+S Logistics' compass rose logo on the front. Issued to almost every N+S employee, although its wear is optional." + icon_state = "cap_brown" + item_state = "browncloth" + +/obj/item/clothing/head/nanotrasen/cap/janitor + name = "purple softcap" + desc = "A rich purple soft cap with a Nanotrasen logo on the front. For some reason, this peculiar shade of purple is only used by custodial personnel instead of the Nanotrasen Blue used by every other division. It's already slightly stained." + icon_state = "cap_purple" + //item_state = "purplecloth" //todo: purple + +/obj/item/clothing/head/nanotrasen/cap/medical + name = "blue medical softcap" + desc = "A soft cap in Nanotrasen Blue, with a large white cross on the front marking the wearer as a trained medical worker. Wearing this without medical training is a violation of Nanotrasen, Inc. employee guidelines." + icon_state = "cap_blue" + item_state = "bluecloth" + +/obj/item/clothing/head/nanotrasen/officer + name = "officer's hat" + desc = "A blue peaked hat with red silk decoration and an embroidered Nanotrasen logo, worn exclusively by management." + icon_state = "officer_peaked" + item_state = "bluecloth" + +/obj/item/clothing/head/nanotrasen/officer + name = "officer's fedora" + desc = "A fedora in a violent shade of Nanotrasen Blue, with a red silk band." + icon_state = "officer_fedora" + item_state = "bluecloth" + +/obj/item/clothing/head/nanotrasen/captain + name = "captain's broad hat" + desc = "A curious rounded hat, decorated with gold thread and a Nanotrasen logo badge. Particular to Nanotrasen, Inc. captains, though nobody is quite certain where this distinctive design originated." + icon_state = "com_hat" + item_state = "bluecloth" + +/obj/item/clothing/head/nanotrasen/captain/peaked + name = "captain's peaked cap" + desc = "A decorated blue peaked cap, rife with laurels and gold thread, with a large badge on the front displaying the Nanotrasen, Inc. logo. This hat practically oozes authority." + icon_state = "com_peaked" + item_state = "bluecloth" + +/obj/item/clothing/head/hardhat/nanotrasen //TODO: inhands for hardhats + name = "black heavy-duty hat" + desc = "A tough plastic helmet with a suspension rig, designed to protect against blunt impacts. This one is a sober shade of black, with a Nanotrasen logo on the front." + icon = 'icons/obj/clothing/faction/nanotrasen/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/nanotrasen/head.dmi' + lefthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi' + icon_state = "hardhat_black" + item_state = "blackcloth" + +/obj/item/clothing/head/hardhat/nanotrasen/blue + name = "blue heavy-duty hat" + desc = "A tough plastic helmet with suspension rig, designed to protect against blunt impacts. This one is brightly colored in Nanotrasen Blue, with the company logo on the front." + icon_state = "hardhat_blue" + item_state = "bluecloth" + +/obj/item/clothing/head/hardhat/nanotrasen/white + name = "white heavy-duty hat" + desc = "An extremely tough plastic helmet with suspension rig, designed to protect against blunt impacts. This one is colored bright white, typical of managerial staff, and has a Nanotrasen logo on the front." + icon_state = "hardhat_white" + item_state = "graycloth" + + +// Neck // + +/obj/item/clothing/neck/cloak/nanotrasen + name = "command sash" + desc = "A fine red silk sash that would pair nicely with a formal uniform. A small tag inside declares this property of Nanotrasen, Inc." + icon = 'icons/obj/clothing/faction/nanotrasen/neck.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/nanotrasen/neck.dmi' + lefthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi' + righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi' + icon_state = "sash" + item_state = "redcloth" diff --git a/code/modules/clothing/factions/ngr.dm b/code/modules/clothing/factions/ngr.dm new file mode 100644 index 000000000000..7892a098b50d --- /dev/null +++ b/code/modules/clothing/factions/ngr.dm @@ -0,0 +1,244 @@ +////////////// +//Jumpsuits// +///////////// + +/obj/item/clothing/under/syndicate/ngr + name = "\improper NGR uniform" + desc = "A button-up in a tasteful beige with black pants, used as the basic uniform of the New Gorlex Republic." + icon_state = "ngr" + item_state = "ngr" + armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) + can_adjust = FALSE + icon = 'icons/obj/clothing/faction/ngr/uniforms.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/uniforms.dmi' + +/obj/item/clothing/under/syndicate/ngr/fatigues + name = "\improper NGR fatigues" + desc = "Beige fatigues used primarily by the ship and mech pilots of the New Gorlex Republic." + icon_state = "ngr_fatigues" + item_state = "ngr_fatigues" + +/obj/item/clothing/under/syndicate/ngr/jumpsuit + name = "\improper NGR jumpsuit" + desc = "A beige jumpsuit with black overalls used by wreckers of the New Gorlex Republic. A reminder of Gorlex VII's history as a mining colony, prior to its destruction." + icon_state = "ngr_jumpsuit" + item_state = "ngr_jumpsuit" + +/obj/item/clothing/under/syndicate/ngr/officer + name = "\improper NGR officer uniform" + desc = "A button-up in a tasteful black with beige pants, used by officers of the New Gorlex Republic." + icon_state = "ngr_officer" + item_state = "ngr_officer" + +/obj/item/clothing/under/plasmaman/ngr + name = "\improper NGR phorid envirosuit" + desc = "A button-up envirosuit with use intended for phorids of the New Gorlex Republic. Ensures they don't die of combustion." + icon_state = "ngr_envirosuit" + item_state = "ngr_envirosuit" + icon = 'icons/obj/clothing/faction/ngr/uniforms.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/uniforms.dmi' + + +//////////////////// +//Unarmored suits// +/////////////////// + +/obj/item/clothing/suit/ngr + name = "foreman's jacket" + desc = "A beige high-visibility jacket worn by the Foreman of the New Gorlex Republic." + icon = 'icons/obj/clothing/faction/ngr/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' + icon_state = "ngr_foreman" + item_state = "blackcloth" + +/obj/item/clothing/suit/ngr/smock + name = "blood red smock" + desc = "A blood-red surgical smock typically worn by field medics of the New Gorlex Republic. It hides red blood really well!" + icon_state = "ngr_apron" + item_state = "redcloth" + +/obj/item/clothing/suit/hazardvest/ngr + name = "blood-red hazard vest" + desc = "A blood-red high-visibility vest typically used in work zones by the New Gorlex Republic." + icon = 'icons/obj/clothing/faction/ngr/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' + icon_state = "ngr_hazard" + item_state = "redcloth" + +////////////////// +//Armored suits// +///////////////// + +/obj/item/clothing/suit/armor/ngr + name = "NGR armor vest" + desc = "A slim Type I armored vest, utilized by the 2nd Battlegroup of the New Gorlex Republic that provides decent protection against most types of damage." + icon_state = "ngr_vest" + item_state = "armor" + icon = 'icons/obj/clothing/faction/ngr/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' + blood_overlay_type = "armor" + +/obj/item/clothing/suit/armor/ngr/lieutenant + name = "\improper 2nd Battlegroup overcoat" + desc = "An armored overcoat worn by the lieutenants of the New Gorlex Republic's 2nd Battlegroup." + body_parts_covered = CHEST|GROIN|ARMS + icon_state = "ngr_lieutenant" + item_state = "ngr_lieutenant" + blood_overlay_type = "coat" + armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/obj/item/clothing/suit/armor/ngr/captain + name = "\improper 2nd Battlegroup coat" + desc = "An armored coat worn by captains the New Gorlex Republic's 2nd Battlegroup." + body_parts_covered = CHEST|GROIN|ARMS + icon_state = "ngr_captain" + item_state = "ngr_captain" + blood_overlay_type = "coat" + armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/////////////// +//Spacesuits// +////////////// + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/ngr + name = "beige-red hardsuit helmet" + desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." + alt_desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in combat mode. Manufactured by Second Battlegroup." + icon_state = "hardsuit1-ngr" + item_state = "hardsuit1-ngr" + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + hardsuit_type = "ngr" + +/obj/item/clothing/suit/space/hardsuit/syndi/ngr + name = "beige-red hardsuit" + desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." + alt_desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in combat mode. Manufactured by the Second Battlegroup." + icon_state = "hardsuit1-ngr" + item_state = "hardsuit1-ngr" + hardsuit_type = "ngr" + icon = 'icons/obj/clothing/faction/ngr/suits.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi' + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/ngr + lightweight = 1 + jetpack = null + +/obj/item/clothing/head/helmet/space/plasmaman/ngr + name = "NGR phorid envirosuit helmet" + desc = "An envirohelmet designed for phorids of the New Gorlex Republic, with intimidating blood-red stripes." + icon_state = "ngr_envirohelm" + item_state = "ngr_envirohelm" + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + +///////// +//Hats// +//////// + +/obj/item/clothing/head/ngr + name = "beige garrison cap" + desc = "A garrison cap used by low-ranking members of the New Gorlex Republic's 2nd Battlegroup when off-duty." + icon_state = "ngr_garrison" + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/obj/item/clothing/head/ngr/flap + name = "beige flap cap" + desc = "A flap cap used by soldiers of the New Gorlex Republic's 2nd Battlegroup in desert environments." + icon_state = "ngr_flap" + +/obj/item/clothing/head/ngr/surgical + name = "blood-red surgical cap" + desc = "A surgical cap used by field medics of the New Gorlex Republic's 2nd Battlegroup." + icon_state = "ngr_surgery" + +/obj/item/clothing/head/hardhat/ngr + name = "blood-red hard hat" + desc = "A blood-red hardhat typically used by Wreckers and Ship Engineers of the New Gorlex Republic." + icon_state = "ngr_hardhat" + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + +/obj/item/clothing/head/hardhat/ngr/foreman + name = "beige hard hat" + desc = "A beige hardhat used exclusively by the Foreman of the New Gorlex Republic." + icon_state = "ngr_foreman" + +/obj/item/clothing/head/ngr/peaked + name = "2nd Battlegroup peaked cap" + desc = "A cap worn by officers of the New Gorlex Republic's 2nd Battlegroup." + icon_state = "ngr_officer" + item_state = "ngr_officer" + +/obj/item/clothing/head/helmet/ngr + name = "\improper NGR X-11 helmet" + desc = "A well-armored helmet utilized by the New Gorlex Republic's 2nd Battlegroup, far better at protecting one's head than the softer caps." + icon = 'icons/obj/clothing/faction/ngr/head.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/head.dmi' + armor = list("melee" = 40, "bullet" = 60, "laser" = 35, "energy" = 35, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) // The guys who specialize in ballistics would probably have better bullet armor. Maybe. + icon_state = "ngr_x11" + item_state = "ngr_x11" + +/obj/item/clothing/head/helmet/ngr/swat + name = "\improper NGR pilot helmet" + desc = "A modified X-11 helmet utilized by the pilots of the New Gorlex Republic's 2nd Battlegroup. The attached visor helps protect against sudden flashes from explosions." + flash_protect = FLASH_PROTECTION_WELDER + icon_state = "ngr_pilot" + item_state = "ngr_pilot" + +//////////// +//Glasses// +/////////// + +/obj/item/clothing/glasses/hud/security/sunglasses/ngr + name = "NGR modified mesons" + desc = "A modified version of widely-used optical meson scanners, with a flash-proof tint and integrated security HUD. Unfortunately, the opaque visor disables the meson functionality." + icon_state = "ngr_goggles" + item_state = "ngr_goggles" + icon = 'icons/obj/clothing/faction/ngr/eyes.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/eyes.dmi' + glass_colour_type = /datum/client_colour/glass_colour/green + +////////// +//Masks// +///////// + +/obj/item/clothing/mask/gas/sechailer/balaclava/ngr + name = "NGR combat balaclava" + desc = "A surprisingly advanced balaclava. while it doesn't muffle your voice it has a miniature rebreather for internals. Comfy to boot! This version is commonly used by the soldiers of the New Gorlex Republic to protect against sandstorms." + icon_state = "ngr_balaclava" + item_state = "ngr_balaclava" + icon = 'icons/obj/clothing/faction/ngr/mask.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/mask.dmi' + +/obj/item/clothing/mask/gas/syndicate/ngr + name = "NGR face mask" + desc = "A face mask that covers the nose, mouth and neck of those who wear it. Favored by field medics over the balaclava due to lessened heat while wearing." + icon_state = "ngr_facemask" + item_state = "ngr_facemask" + icon = 'icons/obj/clothing/faction/ngr/mask.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/mask.dmi' + +////////// +//Neck// +///////// + +/obj/item/clothing/neck/shemagh/ngr + name = "shemagh" + desc = "An oversized shemagh, in a tacticool blood-red for use in the 2nd Battlegroup." + icon_state = "ngr_shemagh" + icon = 'icons/obj/clothing/faction/ngr/neck.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/neck.dmi' + +////////// +//Belts// +///////// + +/obj/item/storage/belt/security/webbing/ngr + name = "NGR webbing" + desc = "A set of tactical webbing for operators of the New Gorlex Republic, can hold security gear." + icon_state = "ngr_webbing" + item_state = "ngr_webbing" + icon = 'icons/obj/clothing/faction/ngr/belt.dmi' + mob_overlay_icon = 'icons/mob/clothing/faction/ngr/belt.dmi' diff --git a/code/modules/clothing/head/berets.dm b/code/modules/clothing/head/berets.dm index d2b1789589a4..8d6f97eb4bd2 100644 --- a/code/modules/clothing/head/berets.dm +++ b/code/modules/clothing/head/berets.dm @@ -232,6 +232,8 @@ /obj/item/clothing/head/beret/centcom_formal name = "\improper CentCom Formal Beret" desc = "Sometimes, a compromise between fashion and defense needs to be made. Thanks to Nanotrasen's most recent nano-fabric durability enhancements, this time, it's not the case." + icon = 'icons/obj/clothing/head/spacesuits.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/spacesuits.dmi' icon_state = "beret_badge" greyscale_colors = "#46b946#f2c42e" armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "fire" = 100, "acid" = 90) diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index f44e133360e6..036d6ffbd417 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -46,6 +46,8 @@ /obj/item/clothing/head/collectable/police name = "collectable police officer's hat" desc = "A collectable police officer's Hat. This hat emphasizes that you are THE LAW." + icon = 'icons/obj/clothing/head/armor.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/armor.dmi' icon_state = "policehelm" dog_fashion = /datum/dog_fashion/head/warden @@ -77,6 +79,8 @@ /obj/item/clothing/head/collectable/pirate name = "collectable pirate hat" desc = "You'd make a great Dread Syndie Roberts!" + icon = 'icons/obj/clothing/head/spacesuits.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/spacesuits.dmi' icon_state = "pirate" dog_fashion = /datum/dog_fashion/head/pirate @@ -121,6 +125,8 @@ /obj/item/clothing/head/collectable/thunderdome name = "collectable Thunderdome helmet" desc = "Go Red! I mean Green! I mean Red! No Green!" + icon = 'icons/obj/clothing/head/armor.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/armor.dmi' icon_state = "thunderdome" clothing_flags = SNUG_FIT flags_inv = HIDEHAIR @@ -128,6 +134,8 @@ /obj/item/clothing/head/collectable/swat name = "collectable SWAT helmet" desc = "That's not real blood. That's red paint." //Reference to the actual description + icon = 'icons/obj/clothing/head/armor.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/armor.dmi' icon_state = "swat" item_state = "swat" clothing_flags = SNUG_FIT diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 22baf7d2ae86..dee6b0d0c9ee 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -1,6 +1,8 @@ /obj/item/clothing/head/helmet name = "helmet" desc = "Standard Security gear. Protects the head from impacts." + icon = 'icons/obj/clothing/head/armor.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/armor.dmi' icon_state = "helmet" item_state = "helmet" var/flashlight_state = "helmet_flight_overlay" @@ -16,10 +18,15 @@ dog_fashion = /datum/dog_fashion/head/helmet - var/can_flashlight = FALSE //if a flashlight can be mounted. if it has a flashlight and this is false, it is permanently attached. + //if a flashlight can be mounted. if it has a flashlight and this is false, it is permanently attached. + var/can_flashlight = FALSE var/obj/item/flashlight/seclite/attached_light var/datum/action/item_action/toggle_helmet_flashlight/action_light + pocket_storage_component_path = /datum/component/storage/concrete/pockets/helmet + // should we overlay the items inside our helmet + var/content_overlays = FALSE + /obj/item/clothing/head/helmet/Initialize() . = ..() if(attached_light) @@ -171,16 +178,21 @@ var/mutable_appearance/flashlightlight_overlay if(isinhands) return - if(!attached_light) - return - if(attached_light.on) - flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', "[flashlight_state]_on") + if(attached_light) + if(attached_light.on) + flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', "[flashlight_state]_on") + else + flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', flashlight_state) + . += flashlightlight_overlay + if(content_overlays) + for(var/obj/item/I in contents) + . += I.get_helmet_overlay() else - flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', flashlight_state) - . += flashlightlight_overlay + return /obj/item/clothing/head/helmet/sec can_flashlight = TRUE + content_overlays = TRUE /obj/item/clothing/head/helmet/sec/attackby(obj/item/I, mob/user, params) if(issignaler(I)) @@ -214,6 +226,7 @@ "Snow" = "helmetalt_snow", "Urban" = "helmetalt_urban", ) + content_overlays = TRUE /obj/item/clothing/head/helmet/marine name = "tactical combat helmet" @@ -469,16 +482,6 @@ armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 40, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 50) strip_delay = 60 -/obj/item/clothing/head/helmet/r_trapper - name = "reinforced trapper hat" - desc = "An occasional sight on the heads of Frontiersmen stationed on cold worlds. 200% bear." - icon_state = "rus_ushanka" - item_state = "rus_ushanka" - body_parts_covered = HEAD - cold_protection = HEAD - min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT - armor = list("melee" = 25, "bullet" = 20, "laser" = 20, "energy" = 30, "bomb" = 20, "bio" = 50, "rad" = 20, "fire" = -10, "acid" = 50) - /obj/item/clothing/head/helmet/infiltrator name = "infiltrator helmet" desc = "The galaxy isn't big enough for the two of us." @@ -497,6 +500,7 @@ icon_state = "inteq_swat" item_state = "inteq_swat" flags_inv = HIDEHAIR + content_overlays = TRUE /obj/item/clothing/head/helmet/inteq name = "inteq helmet" @@ -504,6 +508,7 @@ icon_state = "inteq_helmet" icon_state = "inteq_helmet" can_flashlight = TRUE + content_overlays = TRUE /obj/item/clothing/head/solgov name = "\improper SolGov officer's cap" @@ -545,6 +550,7 @@ desc = "A robust combat helmet commonly employed by Syndicate forces, regardless of alignment." icon_state = "operator" item_state = "operator" + content_overlays = TRUE /obj/item/clothing/head/helmet/medical name = "\improper trauma team helmet" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 3ac80e9efa23..f81b5a8b8259 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -23,14 +23,11 @@ flags_inv = 0 dog_fashion = /datum/dog_fashion/head/captain -//Captain: This is no longer space-worthy /obj/item/clothing/head/caphat/parade name = "captain's parade cap" desc = "Worn only by Captains with an abundance of class." icon_state = "capcap" - dog_fashion = null - /obj/item/clothing/head/caphat/cowboy name = "general's hat" desc = "A commanding white stetson adorned with a general's badge. Why this belongs to a captain is anybody's guess." @@ -180,6 +177,8 @@ /obj/item/clothing/head/warden name = "warden's police hat" desc = "It's a special hat issued to the Warden of a security force. A classic symbol of middling authority." + icon = 'icons/obj/clothing/head/armor.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/armor.dmi' icon_state = "policehelm" dog_fashion = /datum/dog_fashion/head/warden diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 3fcd65635718..61f032b5ef61 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -70,6 +70,8 @@ /obj/item/clothing/head/syndicatefake name = "black space-helmet replica" + icon = 'icons/obj/clothing/head/spacesuits.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/spacesuits.dmi' icon_state = "syndicate-helm-black-red" item_state = "syndicate-helm-black-red" desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" @@ -129,6 +131,8 @@ /obj/item/clothing/head/pirate name = "pirate hat" desc = "Yarr." + icon = 'icons/obj/clothing/head/spacesuits.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/spacesuits.dmi' icon_state = "pirate" item_state = "pirate" dog_fashion = /datum/dog_fashion/head/pirate @@ -161,6 +165,8 @@ /obj/item/clothing/head/bandana name = "pirate bandana" desc = "Yarr." + icon = 'icons/obj/clothing/head/spacesuits.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/spacesuits.dmi' icon_state = "bandana" item_state = "bandana" @@ -446,13 +452,6 @@ icon_state = "JackFrostHat" item_state = "JackFrostHat" -/obj/item/clothing/head/ngrcap - name = "2nd Battlegroup peaked cap" - desc = "A cap worn by officers of the New Gorlex Republic's 2nd Battlegroup." - icon_state = "ngrcap" - item_state = "ngrcap" - flags_inv = 0 - /obj/item/clothing/head/maidheadband/syndicate name = "tactical maid headband" desc = "Tacticute." diff --git a/code/modules/clothing/outfits/factions/frontiersmen.dm b/code/modules/clothing/outfits/factions/frontiersmen.dm index c30de3d40432..e8119ddffac4 100644 --- a/code/modules/clothing/outfits/factions/frontiersmen.dm +++ b/code/modules/clothing/outfits/factions/frontiersmen.dm @@ -30,6 +30,7 @@ jobtype = /datum/job/assistant head = /obj/item/clothing/head/beret/sec/frontier + shoes = /obj/item/clothing/shoes/sneakers/black // you do not get jackboots!!!! fuck you!!!! // Atmospheric Technician @@ -64,11 +65,9 @@ ears = /obj/item/radio/headset/pirate/alt/captain uniform = /obj/item/clothing/under/rank/security/officer/frontier/officer head = /obj/item/clothing/head/caphat/frontier - mask = /obj/item/clothing/mask/gas/sechailer suit = /obj/item/clothing/suit/armor/frontier shoes = /obj/item/clothing/shoes/cowboy/black gloves = /obj/item/clothing/gloves/combat - glasses = /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch /datum/outfit/job/frontiersmen/captain/admiral name = "Frontiersmen - Admiral" @@ -80,8 +79,6 @@ ears = /obj/item/radio/headset/pirate/captain gloves = /obj/item/clothing/gloves/color/evening suit = null - mask = null - glasses = null // Chief Engineer /datum/outfit/job/frontiersmen/ce @@ -106,13 +103,10 @@ jobtype = /datum/job/engineer accessory = /obj/item/clothing/accessory/armband/engine - belt = /obj/item/storage/belt/utility/full/engi - suit = /obj/item/clothing/suit/toggle/industrial + suit = /obj/item/clothing/suit/hazardvest shoes = /obj/item/clothing/shoes/workboots - glasses = /obj/item/clothing/glasses/welding - head = /obj/item/clothing/head/beret/sec/frontier + head = /obj/item/clothing/head/hardhat - l_pocket = /obj/item/radio r_pocket = /obj/item/analyzer // Cook @@ -167,7 +161,6 @@ jobtype = /datum/job/officer accessory = /obj/item/clothing/accessory/armband - head = /obj/item/clothing/head/beret/sec/frontier mask = /obj/item/clothing/mask/gas/sechailer/balaclava suit = null uniform = /obj/item/clothing/under/rank/security/officer/frontier @@ -188,6 +181,5 @@ accessory = /obj/item/clothing/accessory/armband/med uniform = /obj/item/clothing/under/rank/security/officer/frontier - glasses = /obj/item/clothing/glasses/hud/health/prescription + glasses = /obj/item/clothing/glasses/hud/health r_pocket = /obj/item/kitchen/knife/combat/survival - backpack_contents = list(/obj/item/storage/firstaid/medical) diff --git a/code/modules/clothing/outfits/factions/independent.dm b/code/modules/clothing/outfits/factions/independent.dm index eeb6a1d8c7f3..c819246f7cae 100644 --- a/code/modules/clothing/outfits/factions/independent.dm +++ b/code/modules/clothing/outfits/factions/independent.dm @@ -729,7 +729,6 @@ /datum/outfit/job/independent/chemist/pharma name = "Independent - Chemist (Pharmacology Student)" - uniform = /obj/item/clothing/under/rank/medical shoes = /obj/item/clothing/shoes/sneakers/white accessory = /obj/item/clothing/neck/scarf/orange l_pocket = /obj/item/pda/medical diff --git a/code/modules/clothing/outfits/factions/nanotrasen.dm b/code/modules/clothing/outfits/factions/nanotrasen.dm index f0fdb0e4ac1d..93f1ee3a347c 100644 --- a/code/modules/clothing/outfits/factions/nanotrasen.dm +++ b/code/modules/clothing/outfits/factions/nanotrasen.dm @@ -1,3 +1,9 @@ +/* + * OUTFIT DATUMS THAT NEED MAKING: + * Research Director + * Medical Director +*/ + /datum/outfit/job/nanotrasen name = "Nanotrasen - Base Outfit" faction_icon = "bg_nanotrasen" @@ -5,26 +11,15 @@ box = /obj/item/storage/box/survival id = /obj/item/card/id - /datum/outfit/job/nanotrasen/post_equip(mob/living/carbon/human/H, visualsOnly) . = ..() if(visualsOnly) return H.faction |= list(FACTION_PLAYER_NANOTRASEN) -// Assistant - -/datum/outfit/job/nanotrasen/assistant - name = "Nanotrasen - Assistant" - jobtype = /datum/job/assistant - job_icon = "assistant" - - uniform = /obj/item/clothing/under/color/grey - shoes = /obj/item/clothing/shoes/sneakers/black - belt = /obj/item/pda +// Command // // Captain - /datum/outfit/job/nanotrasen/captain name = "Nanotrasen - Captain" job_icon = "captain" @@ -34,11 +29,14 @@ belt = /obj/item/pda/captain gloves = /obj/item/clothing/gloves/color/captain/nt ears = /obj/item/radio/headset/nanotrasen/captain - uniform = /obj/item/clothing/under/rank/command/captain/nt - alt_uniform = /obj/item/clothing/under/rank/command/captain/parade + uniform = /obj/item/clothing/under/nanotrasen/captain + alt_uniform = /obj/item/clothing/under/nanotrasen/captain/skirt + suit = /obj/item/clothing/suit/armor/nanotrasen/captain + alt_suit = /obj/item/clothing/suit/armor/nanotrasen/captain/parade dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain shoes = /obj/item/clothing/shoes/laceup - head = /obj/item/clothing/head/caphat/nt + neck = /obj/item/clothing/neck/cloak/nanotrasen + head = /obj/item/clothing/head/nanotrasen/captain/peaked backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1) backpack = /obj/item/storage/backpack/captain @@ -50,24 +48,17 @@ chameleon_extras = list(/obj/item/gun/energy/e_gun, /obj/item/stamp/captain) -/datum/outfit/job/nanotrasen/captain/lp - name = "Nanotrasen - Loss Prevention Lieutenant" - id_assignment = "Lieutenant" +/datum/outfit/job/nanotrasen/captain/ns + name = "Nanotrasen - Captain (N+S Logistics)" - implants = list(/obj/item/implant/mindshield) - ears = /obj/item/radio/headset/nanotrasen/alt/captain - id = /obj/item/card/id/lplieu - belt = /obj/item/pda/captain - gloves = /obj/item/clothing/gloves/color/black - uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/lp - alt_uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp - dcoat = /obj/item/clothing/suit/jacket - shoes = /obj/item/clothing/shoes/jackboots - head = /obj/item/clothing/head/beret/command + head = /obj/item/clothing/head/nanotrasen/cap/supply + uniform = /obj/item/clothing/under/nanotrasen/supply/qm + dcoat = /obj/item/clothing/suit/hooded/wintercoat/cargo + shoes = /obj/item/clothing/shoes/sneakers/brown + glasses = /obj/item/clothing/glasses/sunglasses + l_hand = /obj/item/clipboard - satchel = /obj/item/storage/backpack/satchel/cap - duffelbag = /obj/item/storage/backpack/duffelbag/captain - courierbag = /obj/item/storage/backpack/messenger/com + chameleon_extras = /obj/item/stamp/qm /datum/outfit/job/nanotrasen/captain/centcom name = "Nanotrasen - Captain (Central Command)" @@ -77,7 +68,6 @@ head = /obj/item/clothing/head/centhat // Head of Personnel - /datum/outfit/job/nanotrasen/hop name = "Nanotrasen - Head of Personnel" job_icon = "headofpersonnel" @@ -86,23 +76,30 @@ belt = /obj/item/pda/heads/head_of_personnel id = /obj/item/card/id/silver ears = /obj/item/radio/headset/headset_com - uniform = /obj/item/clothing/under/rank/command/head_of_personnel/nt - alt_suit = /obj/item/clothing/suit/ianshirt + uniform = /obj/item/clothing/under/nanotrasen/officer + alt_uniform = /obj/item/clothing/under/nanotrasen/officer/skirt + suit = /obj/item/clothing/suit/toggle/nanotrasen dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain shoes = /obj/item/clothing/shoes/laceup - head = /obj/item/clothing/head/hopcap/nt - backpack_contents = list(/obj/item/storage/box/ids=1,\ - /obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) + head = /obj/item/clothing/head/nanotrasen/officer + + backpack_contents = list( + /obj/item/storage/box/ids=1, + /obj/item/melee/classic_baton/telescopic=1, + /obj/item/modular_computer/tablet/preset/advanced = 1, + ) backpack = /obj/item/storage/backpack/captain satchel = /obj/item/storage/backpack/satchel/cap duffelbag = /obj/item/storage/backpack/duffelbag/captain courierbag = /obj/item/storage/backpack/messenger/com - chameleon_extras = list(/obj/item/gun/energy/e_gun, /obj/item/stamp/head_of_personnel) + chameleon_extras = list( + /obj/item/gun/energy/e_gun, + /obj/item/stamp/head_of_personnel, + ) // Head of Security - /datum/outfit/job/nanotrasen/hos name = "Nanotrasen - Head of Security" job_icon = "headofsecurity" @@ -111,14 +108,14 @@ id = /obj/item/card/id/silver belt = /obj/item/pda/heads/hos ears = /obj/item/radio/headset/nanotrasen/alt - uniform = /obj/item/clothing/under/rank/security/head_of_security/nt + uniform = /obj/item/clothing/under/nanotrasen/security/director alt_uniform = null shoes = /obj/item/clothing/shoes/jackboots - suit = /obj/item/clothing/suit/armor/hos/trenchcoat - alt_suit = /obj/item/clothing/suit/armor/vest/security/hos + suit = /obj/item/clothing/suit/armor/nanotrasen/slim + alt_suit = /obj/item/clothing/suit/armor/nanotrasen/sec_director dcoat = /obj/item/clothing/suit/hooded/wintercoat/security gloves = /obj/item/clothing/gloves/color/black - head = /obj/item/clothing/head/beret/sec/hos + head = /obj/item/clothing/head/nanotrasen/beret/security/command glasses = /obj/item/clothing/glasses/hud/security/sunglasses suit_store = null r_pocket = /obj/item/assembly/flash/handheld @@ -135,74 +132,18 @@ chameleon_extras = list(/obj/item/gun/energy/e_gun/hos, /obj/item/stamp/hos) -// Roboticist - -/datum/outfit/job/nanotrasen/roboticist - name = "Nanotrasen - Mech Technician" - id_assignment = "Mech Technician" - job_icon = "roboticist" - jobtype = /datum/job/roboticist - - uniform = /obj/item/clothing/under/rank/rnd/roboticist - suit = /obj/item/clothing/suit/longcoat/robowhite - ears = /obj/item/radio/headset/nanotrasen - glasses = /obj/item/clothing/glasses/welding - - backpack_contents = list(/obj/item/weldingtool/hugetank) - -// Pilot. idk - -/datum/outfit/job/nanotrasen/pilot - name = "Nanotrasen - Pilot" - id_assignment = "Pilot" - - uniform = /obj/item/clothing/under/rank/security/officer/military - suit = /obj/item/clothing/suit/jacket/leather/duster - glasses = /obj/item/clothing/glasses/hud/spacecop - accessory = /obj/item/clothing/accessory/holster - head = /obj/item/clothing/head/beret/command - -// Lawyer - -/datum/outfit/job/nanotrasen/lawyer - name = "Nanotrasen - Lawyer" - job_icon = "lawyer" - jobtype = /datum/job/lawyer - - ears = /obj/item/radio/headset/headset_srvsec - uniform = /obj/item/clothing/under/suit/navy - suit = /obj/item/clothing/suit/toggle/lawyer/navy - shoes = /obj/item/clothing/shoes/laceup - l_hand = /obj/item/storage/briefcase/lawyer - l_pocket = /obj/item/laser_pointer - r_pocket = /obj/item/clothing/accessory/lawyers_badge - - chameleon_extras = /obj/item/stamp/law - -/datum/outfit/job/nanotrasen/lawyer/corporaterepresentative - name = "Nanotrasen - Corporate Representative" - id_assignment = "Corporate Representative" - job_icon = "nanotrasen" - - uniform = /obj/item/clothing/under/rank/command/head_of_personnel/suit - suit = null - ears = /obj/item/radio/headset/headset_cent - l_hand = /obj/item/clipboard - r_pocket = /obj/item/pen/fountain - // Security Officer - /datum/outfit/job/nanotrasen/security name = "Nanotrasen - Security Officer" jobtype = /datum/job/officer job_icon = "securityofficer" ears = /obj/item/radio/headset/alt - uniform = /obj/item/clothing/under/rank/security/officer/nt + uniform = /obj/item/clothing/under/nanotrasen/security gloves = /obj/item/clothing/gloves/color/black - head = /obj/item/clothing/head/helmet/sec - suit = /obj/item/clothing/suit/armor/vest - alt_suit = /obj/item/clothing/suit/armor/vest/security/officer + head = /obj/item/clothing/head/nanotrasen/cap/security + suit = /obj/item/clothing/suit/armor/nanotrasen + alt_suit = /obj/item/clothing/suit/armor/nanotrasen/slim dcoat = /obj/item/clothing/suit/hooded/wintercoat/security shoes = /obj/item/clothing/shoes/jackboots l_pocket = /obj/item/restraints/handcuffs @@ -218,73 +159,36 @@ chameleon_extras = list(/obj/item/gun/energy/disabler, /obj/item/clothing/glasses/hud/security/sunglasses, /obj/item/clothing/head/helmet) //The helmet is necessary because /obj/item/clothing/head/helmet/sec is overwritten in the chameleon list by the standard helmet, which has the same name and icon state -/datum/outfit/job/nanotrasen/security/ert - name = "Nanotrasen - ERT Officer" - - uniform = /obj/item/clothing/under/rank/security/officer/camo - head = null - backpack = /obj/item/storage/backpack/ert/security - belt = /obj/item/storage/belt/military - id = /obj/item/card/id/ert/security - r_pocket = /obj/item/kitchen/knife/combat/survival - backpack_contents = list(/obj/item/radio, /obj/item/flashlight/seclite) - -/datum/outfit/job/nanotrasen/security/ert/engi - name = "Nanotrasen - ERT Engineering Officer" - - uniform = /obj/item/clothing/under/rank/security/officer/camo - head = null - backpack = /obj/item/storage/backpack/ert/engineer - belt = /obj/item/storage/belt/utility/full/ert - id = /obj/item/card/id/ert/security - r_pocket = /obj/item/kitchen/knife/combat/survival - backpack_contents = list(/obj/item/radio, /obj/item/flashlight/seclite) - accessory = /obj/item/clothing/accessory/armband/engine - glasses = /obj/item/clothing/glasses/hud/diagnostic/sunglasses - -/datum/outfit/job/nanotrasen/security/ert/med - name = "Nanotrasen - ERT Medical Officer" - - uniform = /obj/item/clothing/under/rank/security/officer/camo - head = /obj/item/clothing/head/beret/med - backpack = /obj/item/storage/backpack/ert/medical - belt = /obj/item/storage/belt/medical/webbing/paramedic - id = /obj/item/card/id/ert/security - r_pocket = /obj/item/kitchen/knife/combat/survival - backpack_contents = list(/obj/item/radio, /obj/item/flashlight/seclite) - accessory = /obj/item/clothing/accessory/armband/med - glasses = /obj/item/clothing/glasses/hud/health/night - -/datum/outfit/job/nanotrasen/security/mech_pilot - name = "Nanotrasen - Mech Pilot" - id_assignment = "Mech Pilot" - - uniform = /obj/item/clothing/under/rank/security/officer/military/eng - head = /obj/item/clothing/head/beret/sec/officer - suit = /obj/item/clothing/suit/armor/vest/bulletproof - backpack_contents = list(/obj/item/radio, /obj/item/flashlight/seclite) - -/datum/outfit/job/nanotrasen/security/lp - name = "Nanotrasen - LP Security Specialist" - id_assignment = "Security Specialist" +// Warden +/datum/outfit/job/nanotrasen/warden + name = "Nanotrasen - Warden" + job_icon = "warden" + jobtype = /datum/job/warden - implants = list(/obj/item/implant/mindshield) - ears = /obj/item/radio/headset/nanotrasen/alt/captain - id = /obj/item/card/id/lpsec - belt = /obj/item/pda/security - gloves = /obj/item/clothing/gloves/color/black - uniform = /obj/item/clothing/under/rank/security/head_of_security/nt/lp - alt_uniform = /obj/item/clothing/under/rank/security/head_of_security/nt/skirt/lp - dcoat = /obj/item/clothing/suit/hooded/wintercoat/security + ears = /obj/item/radio/headset/headset_sec/alt + uniform = /obj/item/clothing/under/rank/security/warden/nt shoes = /obj/item/clothing/shoes/jackboots - head = /obj/item/clothing/head/beret/sec + suit = /obj/item/clothing/suit/armor/vest/security/warden/alt/nt + dcoat = /obj/item/clothing/suit/hooded/wintercoat/security + gloves = /obj/item/clothing/gloves/color/black + head = /obj/item/clothing/head/warden/red + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + r_pocket = /obj/item/assembly/flash/handheld + l_pocket = /obj/item/restraints/handcuffs + suit_store = null + backpack_contents = list(/obj/item/melee/classic_baton) + backpack = /obj/item/storage/backpack/security satchel = /obj/item/storage/backpack/satchel/sec duffelbag = /obj/item/storage/backpack/duffelbag/sec courierbag = /obj/item/storage/backpack/messenger/sec + box = /obj/item/storage/box/survival/security -// Engineer + chameleon_extras = /obj/item/gun/ballistic/shotgun/automatic/combat/compact + +// Engineering // +// Engineer /datum/outfit/job/nanotrasen/engineer name = "Nanotrasen - Engineer" job_icon = "stationengineer" @@ -293,10 +197,11 @@ belt = /obj/item/storage/belt/utility/full/engi l_pocket = /obj/item/pda/engineering ears = /obj/item/radio/headset/headset_eng - uniform = /obj/item/clothing/under/rank/engineering/engineer/nt + uniform = /obj/item/clothing/under/nanotrasen/engineering + head = /obj/item/clothing/head/hardhat/nanotrasen + suit = /obj/item/clothing/suit/nanotrasen/vest dcoat = /obj/item/clothing/suit/hooded/wintercoat/engineering shoes = /obj/item/clothing/shoes/workboots - head = /obj/item/clothing/head/hardhat r_pocket = /obj/item/t_scanner backpack = /obj/item/storage/backpack/industrial @@ -307,53 +212,7 @@ box = /obj/item/storage/box/survival/engineer backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) -/datum/outfit/job/nanotrasen/engineer/lp - name = "Nanotrasen - LP Engineering Specialist" - - implants = list(/obj/item/implant/mindshield) - ears = /obj/item/radio/headset/nanotrasen/alt/captain - id = /obj/item/card/id/lpengie - gloves = /obj/item/clothing/gloves/color/yellow - uniform = /obj/item/clothing/under/rank/engineering/engineer/nt/lp - alt_uniform = /obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp - dcoat = /obj/item/clothing/suit/hooded/wintercoat/engineering - shoes = /obj/item/clothing/shoes/jackboots - head = /obj/item/clothing/head/beret/eng - - satchel = /obj/item/storage/backpack/satchel/eng - duffelbag = /obj/item/storage/backpack/duffelbag/engineering - courierbag = /obj/item/storage/backpack/messenger/engi - -// Warden - -/datum/outfit/job/nanotrasen/warden - name = "Nanotrasen - Warden" - job_icon = "warden" - jobtype = /datum/job/warden - - ears = /obj/item/radio/headset/headset_sec/alt - uniform = /obj/item/clothing/under/rank/security/warden/nt - shoes = /obj/item/clothing/shoes/jackboots - suit = /obj/item/clothing/suit/armor/vest/security/warden/alt/nt - dcoat = /obj/item/clothing/suit/hooded/wintercoat/security - gloves = /obj/item/clothing/gloves/color/black - head = /obj/item/clothing/head/warden/red - glasses = /obj/item/clothing/glasses/hud/security/sunglasses - r_pocket = /obj/item/assembly/flash/handheld - l_pocket = /obj/item/restraints/handcuffs - suit_store = null - backpack_contents = list(/obj/item/melee/classic_baton) - - backpack = /obj/item/storage/backpack/security - satchel = /obj/item/storage/backpack/satchel/sec - duffelbag = /obj/item/storage/backpack/duffelbag/sec - courierbag = /obj/item/storage/backpack/messenger/sec - box = /obj/item/storage/box/survival/security - - chameleon_extras = /obj/item/gun/ballistic/shotgun/automatic/combat/compact - // Chief Engineer - /datum/outfit/job/nanotrasen/ce name = "Nanotrasen - Chief Engineer" jobtype = /datum/job/chief_engineer @@ -363,12 +222,16 @@ belt = /obj/item/storage/belt/utility/chief/full l_pocket = /obj/item/storage/wallet ears = /obj/item/radio/headset/headset_com - uniform = /obj/item/clothing/under/rank/engineering/chief_engineer + uniform = /obj/item/clothing/under/nanotrasen/engineering/director dcoat = /obj/item/clothing/suit/hooded/wintercoat/engineering shoes = /obj/item/clothing/shoes/sneakers/brown - head = /obj/item/clothing/head/hardhat/white + head = /obj/item/clothing/head/hardhat/nanotrasen/white gloves = /obj/item/clothing/gloves/color/black - backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced=1) + + backpack_contents = list( + /obj/item/melee/classic_baton/telescopic=1, + /obj/item/modular_computer/tablet/preset/advanced=1, + ) backpack = /obj/item/storage/backpack/industrial satchel = /obj/item/storage/backpack/satchel/eng @@ -378,49 +241,91 @@ box = /obj/item/storage/box/survival/engineer chameleon_extras = /obj/item/stamp/ce -// Medical Doctor +// Atmos Tech +/datum/outfit/job/nanotrasen/atmos + name = "Nanotrasen - Atmos Tech" + jobtype = /datum/job/atmos + job_icon = "atmospherictechnician" -/datum/outfit/job/nanotrasen/doctor - name = "Nanotrasen - Medical Doctor" - job_icon = "medicaldoctor" - jobtype = /datum/job/doctor + belt = /obj/item/storage/belt/utility/atmostech + ears = /obj/item/radio/headset/headset_eng + uniform = /obj/item/clothing/under/nanotrasen/engineering/atmos + head = /obj/item/clothing/head/hardhat/nanotrasen/blue + suit = /obj/item/clothing/suit/nanotrasen/vest/blue + dcoat = /obj/item/clothing/suit/hooded/wintercoat/engineering - belt = /obj/item/pda/medical - ears = /obj/item/radio/headset/headset_med - uniform = /obj/item/clothing/under/rank/medical/doctor - shoes = /obj/item/clothing/shoes/sneakers/white - suit = /obj/item/clothing/suit/toggle/labcoat - alt_suit = /obj/item/clothing/suit/apron/surgical - dcoat = /obj/item/clothing/suit/hooded/wintercoat/medical + backpack = /obj/item/storage/backpack/industrial + satchel = /obj/item/storage/backpack/satchel/eng + duffelbag = /obj/item/storage/backpack/duffelbag/engineering + courierbag = /obj/item/storage/backpack/messenger/engi + box = /obj/item/storage/box/survival/engineer + backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) - backpack = /obj/item/storage/backpack/medic - satchel = /obj/item/storage/backpack/satchel/med - duffelbag = /obj/item/storage/backpack/duffelbag/med - courierbag = /obj/item/storage/backpack/messenger/med - box = /obj/item/storage/box/survival/medical +// Brig Physician -/datum/outfit/job/nanotrasen/doctor/lp - name = "Nanotrasen - LP Medical Specialist" - id_assignment = "Medical Specialist" +/datum/outfit/job/nanotrasen/brig_phys + name = "Nanotrasen - Brig Physician" + jobtype = /datum/job/brig_phys + job_icon = "brigphysician" - implants = list(/obj/item/implant/mindshield) - ears = /obj/item/radio/headset/nanotrasen/alt/captain - id = /obj/item/card/id/lpmed - belt = /obj/item/pda/medical - gloves = /obj/item/clothing/gloves/color/latex/nitrile - uniform = /obj/item/clothing/under/rank/medical/paramedic/lp - alt_uniform = /obj/item/clothing/under/rank/medical/paramedic/skirt/lp - dcoat = /obj/item/clothing/suit/hooded/wintercoat/medical - shoes = /obj/item/clothing/shoes/sneakers/white - head = /obj/item/clothing/head/beret/med + ears = /obj/item/radio/headset/headset_medsec/alt + uniform = /obj/item/clothing/under/rank/security/brig_phys/nt + shoes = /obj/item/clothing/shoes/jackboots + glasses = /obj/item/clothing/glasses/hud/health/sunglasses + suit = /obj/item/clothing/suit/toggle/labcoat/brig_phys + dcoat = /obj/item/clothing/suit/hooded/wintercoat/security + head = /obj/item/clothing/head/soft/sec/brig_phys + implants = list(/obj/item/implant/mindshield) - satchel = /obj/item/storage/backpack/satchel/med - duffelbag = /obj/item/storage/backpack/duffelbag/med - courierbag = /obj/item/storage/backpack/messenger/med - box = /obj/item/storage/box/survival/medical +// Supply // -// Cargo Tech +// Quartermaster +/datum/outfit/job/nanotrasen/quartermaster + name = "Nanotrasen - Quartermaster" + jobtype = /datum/job/qm + job_icon = "quartermaster" + + ears = /obj/item/radio/headset/headset_cargo + head = /obj/item/clothing/head/nanotrasen/cap/supply + uniform = /obj/item/clothing/under/nanotrasen/supply/qm + dcoat = /obj/item/clothing/suit/hooded/wintercoat/cargo + shoes = /obj/item/clothing/shoes/sneakers/brown + glasses = /obj/item/clothing/glasses/sunglasses + l_hand = /obj/item/clipboard + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cargo=1) + chameleon_extras = /obj/item/stamp/qm + +//Miner +/datum/outfit/job/nanotrasen/miner + name = "Nanotrasen - Miner" + jobtype = /datum/job/mining + job_icon = "shaftminer" + + ears = /obj/item/radio/headset/headset_cargo/mining + shoes = /obj/item/clothing/shoes/workboots/mining + head = /obj/item/clothing/head/hardhat/nanotrasen + gloves = /obj/item/clothing/gloves/color/black + uniform = /obj/item/clothing/under/nanotrasen/supply/miner + suit = /obj/item/clothing/suit/nanotrasen/vest + dcoat = /obj/item/clothing/suit/hooded/wintercoat/miner + r_pocket = /obj/item/storage/bag/ore + + backpack_contents = list( + /obj/item/flashlight/seclite=1, + /obj/item/kitchen/knife/combat/survival=1, + /obj/item/stack/marker_beacon/ten=1, + /obj/item/radio/weather_monitor=1, + ) + + backpack = /obj/item/storage/backpack/explorer + satchel = /obj/item/storage/backpack/satchel/explorer + duffelbag = /obj/item/storage/backpack/duffelbag + box = /obj/item/storage/box/survival/mining + + chameleon_extras = /obj/item/gun/energy/kinetic_accelerator + +// Cargo Tech /datum/outfit/job/nanotrasen/cargo_tech name = "Nanotrasen - Cargo Tech" jobtype = /datum/job/cargo_tech @@ -428,126 +333,264 @@ belt = /obj/item/pda/cargo ears = /obj/item/radio/headset/headset_cargo - uniform = /obj/item/clothing/under/rank/cargo/tech + head = /obj/item/clothing/head/nanotrasen/cap/supply + uniform = /obj/item/clothing/under/nanotrasen/supply dcoat = /obj/item/clothing/suit/hooded/wintercoat/cargo backpack_contents = list(/obj/item/modular_computer/tablet/preset/cargo=1) -// Atmos Tech +// Medical // -/datum/outfit/job/nanotrasen/atmos - name = "Nanotrasen - Atmos Tech" - jobtype = /datum/job/atmos - job_icon = "atmospherictechnician" +// Medical Doctor +/datum/outfit/job/nanotrasen/doctor + name = "Nanotrasen - Medical Doctor" + job_icon = "medicaldoctor" + jobtype = /datum/job/doctor - belt = /obj/item/storage/belt/utility/atmostech - ears = /obj/item/radio/headset/headset_eng - uniform = /obj/item/clothing/under/rank/engineering/atmospheric_technician - alt_suit = /obj/item/clothing/suit/hazardvest - dcoat = /obj/item/clothing/suit/hooded/wintercoat/engineering + belt = /obj/item/pda/medical + ears = /obj/item/radio/headset/headset_med + head = /obj/item/clothing/head/nanotrasen/surgical + uniform = /obj/item/clothing/under/nanotrasen/medical + shoes = /obj/item/clothing/shoes/sneakers/white + suit = /obj/item/clothing/suit/nanotrasen/medical_smock + alt_suit = /obj/item/clothing/suit/toggle/labcoat/nanotrasen + dcoat = /obj/item/clothing/suit/hooded/wintercoat/medical - backpack = /obj/item/storage/backpack/industrial - satchel = /obj/item/storage/backpack/satchel/eng - duffelbag = /obj/item/storage/backpack/duffelbag/engineering - courierbag = /obj/item/storage/backpack/messenger/engi - box = /obj/item/storage/box/survival/engineer - backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) + backpack = /obj/item/storage/backpack/medic + satchel = /obj/item/storage/backpack/satchel/med + duffelbag = /obj/item/storage/backpack/duffelbag/med + courierbag = /obj/item/storage/backpack/messenger/med + box = /obj/item/storage/box/survival/medical -// Scientist +// Paramedic +/datum/outfit/job/nanotrasen/paramedic + name = "Nanotrasen - Paramedic" + jobtype = /datum/job/paramedic + job_icon = "paramedic" + + ears = /obj/item/radio/headset/headset_med + uniform = /obj/item/clothing/under/nanotrasen/medical/paramedic + head = /obj/item/clothing/head/nanotrasen/cap/medical + shoes = /obj/item/clothing/shoes/sneakers/blue + suit = /obj/item/clothing/suit/toggle/labcoat/nanotrasen/paramedic + dcoat = /obj/item/clothing/suit/hooded/wintercoat/medical/paramedic + gloves = /obj/item/clothing/gloves/color/latex/nitrile + id = /obj/item/card/id + + backpack_contents = list(/obj/item/roller=1) + + backpack = /obj/item/storage/backpack/medic + satchel = /obj/item/storage/backpack/satchel/med + duffelbag = /obj/item/storage/backpack/duffelbag/med + courierbag = /obj/item/storage/backpack/messenger/para + box = /obj/item/storage/box/survival/medical + + chameleon_extras = /obj/item/gun/syringe + +// Civilian // + +// Assistant +/datum/outfit/job/nanotrasen/assistant + name = "Nanotrasen - Assistant" + jobtype = /datum/job/assistant + job_icon = "assistant" + + uniform = /obj/item/clothing/under/nanotrasen + shoes = /obj/item/clothing/shoes/sneakers/black + belt = /obj/item/pda + +// Lawyer +/datum/outfit/job/nanotrasen/lawyer + name = "Nanotrasen - Lawyer" + job_icon = "lawyer" + jobtype = /datum/job/lawyer + + ears = /obj/item/radio/headset/headset_srvsec + uniform = /obj/item/clothing/under/nanotrasen/affairs + suit = /obj/item/clothing/suit/nanotrasen/suitjacket + shoes = /obj/item/clothing/shoes/laceup + l_hand = /obj/item/storage/briefcase/lawyer + l_pocket = /obj/item/laser_pointer + r_pocket = /obj/item/clothing/accessory/lawyers_badge + + chameleon_extras = /obj/item/stamp/law + +// Corp. Rep +/datum/outfit/job/nanotrasen/lawyer/corporaterepresentative + name = "Nanotrasen - Corporate Representative" + id_assignment = "Corporate Representative" + job_icon = "nanotrasen" + + uniform = /obj/item/clothing/under/rank/command/head_of_personnel/suit + suit = null + ears = /obj/item/radio/headset/headset_cent + l_hand = /obj/item/clipboard + r_pocket = /obj/item/pen/fountain +// Science // + +// Scientist /datum/outfit/job/nanotrasen/scientist name = "Nanotrasen - Scientist" jobtype = /datum/job/scientist job_icon = "scientist" ears = /obj/item/radio/headset/headset_sci - uniform = /obj/item/clothing/under/rank/rnd/scientist + uniform = /obj/item/clothing/under/nanotrasen/science shoes = /obj/item/clothing/shoes/sneakers/white - suit = /obj/item/clothing/suit/toggle/labcoat/science + suit = /obj/item/clothing/suit/toggle/labcoat/nanotrasen dcoat = /obj/item/clothing/suit/hooded/wintercoat/science backpack = /obj/item/storage/backpack/science satchel = /obj/item/storage/backpack/satchel/tox courierbag = /obj/item/storage/backpack/messenger/tox -// Brig Physician +// Roboticist +/datum/outfit/job/nanotrasen/roboticist + name = "Nanotrasen - Roboticist" + id_assignment = "Roboticist" + job_icon = "roboticist" + jobtype = /datum/job/roboticist -/datum/outfit/job/nanotrasen/brig_phys - name = "Nanotrasen - Brig Physician" - jobtype = /datum/job/brig_phys - job_icon = "brigphysician" + uniform = /obj/item/clothing/under/nanotrasen/science/robotics + suit = /obj/item/clothing/suit/toggle/labcoat/nanotrasen + ears = /obj/item/radio/headset/nanotrasen + glasses = /obj/item/clothing/glasses/welding - ears = /obj/item/radio/headset/headset_medsec/alt - uniform = /obj/item/clothing/under/rank/security/brig_phys/nt + backpack_contents = list(/obj/item/weldingtool/hugetank) + +// Pilot. idk +/datum/outfit/job/nanotrasen/pilot + name = "Nanotrasen - Pilot" + id_assignment = "Pilot" + + uniform = /obj/item/clothing/under/rank/security/officer/military + suit = /obj/item/clothing/suit/jacket/leather/duster + glasses = /obj/item/clothing/glasses/hud/spacecop + accessory = /obj/item/clothing/accessory/holster + head = /obj/item/clothing/head/beret/command + +// Mech Pilot +/datum/outfit/job/nanotrasen/security/mech_pilot + name = "Nanotrasen - Mech Pilot" + id_assignment = "Mech Pilot" + + uniform = /obj/item/clothing/under/rank/security/officer/military/eng + head = /obj/item/clothing/head/beret/sec/officer + suit = /obj/item/clothing/suit/armor/vest/bulletproof + backpack_contents = list(/obj/item/radio, /obj/item/flashlight/seclite) + +// LP - for Ranger ship // + +/datum/outfit/job/nanotrasen/captain/lp + name = "Nanotrasen - Loss Prevention Lieutenant" + id_assignment = "Lieutenant" + + implants = list(/obj/item/implant/mindshield) + ears = /obj/item/radio/headset/nanotrasen/alt/captain + id = /obj/item/card/id/lplieu + belt = /obj/item/pda/captain + gloves = /obj/item/clothing/gloves/color/black + uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/lp + alt_uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp + dcoat = /obj/item/clothing/suit/jacket shoes = /obj/item/clothing/shoes/jackboots - glasses = /obj/item/clothing/glasses/hud/health/sunglasses - suit = /obj/item/clothing/suit/toggle/labcoat/brig_phys + head = /obj/item/clothing/head/beret/command + + satchel = /obj/item/storage/backpack/satchel/cap + duffelbag = /obj/item/storage/backpack/duffelbag/captain + courierbag = /obj/item/storage/backpack/messenger/com + +/datum/outfit/job/nanotrasen/security/lp + name = "Nanotrasen - LP Security Specialist" + id_assignment = "Security Specialist" + + implants = list(/obj/item/implant/mindshield) + ears = /obj/item/radio/headset/nanotrasen/alt/captain + id = /obj/item/card/id/lpsec + belt = /obj/item/pda/security + gloves = /obj/item/clothing/gloves/color/black + uniform = /obj/item/clothing/under/rank/security/head_of_security/nt/lp + alt_uniform = /obj/item/clothing/under/rank/security/head_of_security/nt/skirt/lp dcoat = /obj/item/clothing/suit/hooded/wintercoat/security - head = /obj/item/clothing/head/soft/sec/brig_phys + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/beret/sec + + satchel = /obj/item/storage/backpack/satchel/sec + duffelbag = /obj/item/storage/backpack/duffelbag/sec + courierbag = /obj/item/storage/backpack/messenger/sec + +/datum/outfit/job/nanotrasen/engineer/lp + name = "Nanotrasen - LP Engineering Specialist" + implants = list(/obj/item/implant/mindshield) + ears = /obj/item/radio/headset/nanotrasen/alt/captain + id = /obj/item/card/id/lpengie + gloves = /obj/item/clothing/gloves/color/yellow + uniform = /obj/item/clothing/under/rank/engineering/engineer/nt/lp + alt_uniform = /obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp + dcoat = /obj/item/clothing/suit/hooded/wintercoat/engineering + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/beret/eng -// Paramedic + satchel = /obj/item/storage/backpack/satchel/eng + duffelbag = /obj/item/storage/backpack/duffelbag/engineering + courierbag = /obj/item/storage/backpack/messenger/engi -/datum/outfit/job/nanotrasen/paramedic - name = "Nanotrasen - Paramedic" - jobtype = /datum/job/paramedic - job_icon = "paramedic" +/datum/outfit/job/nanotrasen/doctor/lp + name = "Nanotrasen - LP Medical Specialist" + id_assignment = "Medical Specialist" - ears = /obj/item/radio/headset/headset_med - uniform = /obj/item/clothing/under/rank/medical/paramedic - head = /obj/item/clothing/head/soft/paramedic - shoes = /obj/item/clothing/shoes/sneakers/blue - suit = /obj/item/clothing/suit/toggle/labcoat/paramedic - dcoat = /obj/item/clothing/suit/hooded/wintercoat/medical/paramedic + implants = list(/obj/item/implant/mindshield) + ears = /obj/item/radio/headset/nanotrasen/alt/captain + id = /obj/item/card/id/lpmed + belt = /obj/item/pda/medical gloves = /obj/item/clothing/gloves/color/latex/nitrile - id = /obj/item/card/id - backpack_contents = list(/obj/item/roller=1) + uniform = /obj/item/clothing/under/rank/medical/paramedic/lp + alt_uniform = /obj/item/clothing/under/rank/medical/paramedic/skirt/lp + dcoat = /obj/item/clothing/suit/hooded/wintercoat/medical + shoes = /obj/item/clothing/shoes/sneakers/white + head = /obj/item/clothing/head/beret/med - backpack = /obj/item/storage/backpack/medic satchel = /obj/item/storage/backpack/satchel/med duffelbag = /obj/item/storage/backpack/duffelbag/med - courierbag = /obj/item/storage/backpack/messenger/para + courierbag = /obj/item/storage/backpack/messenger/med box = /obj/item/storage/box/survival/medical - chameleon_extras = /obj/item/gun/syringe +// ERT // -// Quartermaster - -/datum/outfit/job/nanotrasen/quartermaster - name = "Nanotrasen - Quartermaster" - jobtype = /datum/job/qm - job_icon = "quartermaster" - - ears = /obj/item/radio/headset/headset_cargo - uniform = /obj/item/clothing/under/rank/cargo/qm - dcoat = /obj/item/clothing/suit/hooded/wintercoat/cargo - shoes = /obj/item/clothing/shoes/sneakers/brown - glasses = /obj/item/clothing/glasses/sunglasses - l_hand = /obj/item/clipboard - backpack_contents = list(/obj/item/modular_computer/tablet/preset/cargo=1) +/datum/outfit/job/nanotrasen/security/ert + name = "Nanotrasen - ERT Officer" - chameleon_extras = /obj/item/stamp/qm + uniform = /obj/item/clothing/under/rank/security/officer/camo + head = null + backpack = /obj/item/storage/backpack/ert/security + belt = /obj/item/storage/belt/military + id = /obj/item/card/id/ert/security + r_pocket = /obj/item/kitchen/knife/combat/survival + backpack_contents = list(/obj/item/radio, /obj/item/flashlight/seclite) -/datum/outfit/job/nanotrasen/miner - name = "Nanotrasen - Miner" - jobtype = /datum/job/mining - job_icon = "shaftminer" +/datum/outfit/job/nanotrasen/security/ert/engi + name = "Nanotrasen - ERT Engineering Officer" - ears = /obj/item/radio/headset/headset_cargo/mining - shoes = /obj/item/clothing/shoes/workboots/mining - gloves = /obj/item/clothing/gloves/explorer - uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland - suit = /obj/item/clothing/suit/hazardvest - dcoat = /obj/item/clothing/suit/hooded/wintercoat/miner - r_pocket = /obj/item/storage/bag/ore - backpack_contents = list( - /obj/item/flashlight/seclite=1,\ - /obj/item/kitchen/knife/combat/survival=1,\ - /obj/item/stack/marker_beacon/ten=1,\ - /obj/item/radio/weather_monitor=1) + uniform = /obj/item/clothing/under/rank/security/officer/camo + head = null + backpack = /obj/item/storage/backpack/ert/engineer + belt = /obj/item/storage/belt/utility/full/ert + id = /obj/item/card/id/ert/security + r_pocket = /obj/item/kitchen/knife/combat/survival + backpack_contents = list(/obj/item/radio, /obj/item/flashlight/seclite) + accessory = /obj/item/clothing/accessory/armband/engine + glasses = /obj/item/clothing/glasses/hud/diagnostic/sunglasses - backpack = /obj/item/storage/backpack/explorer - satchel = /obj/item/storage/backpack/satchel/explorer - duffelbag = /obj/item/storage/backpack/duffelbag - box = /obj/item/storage/box/survival/mining +/datum/outfit/job/nanotrasen/security/ert/med + name = "Nanotrasen - ERT Medical Officer" - chameleon_extras = /obj/item/gun/energy/kinetic_accelerator + uniform = /obj/item/clothing/under/rank/security/officer/camo + head = /obj/item/clothing/head/beret/med + backpack = /obj/item/storage/backpack/ert/medical + belt = /obj/item/storage/belt/medical/webbing/paramedic + id = /obj/item/card/id/ert/security + r_pocket = /obj/item/kitchen/knife/combat/survival + backpack_contents = list(/obj/item/radio, /obj/item/flashlight/seclite) + accessory = /obj/item/clothing/accessory/armband/med + glasses = /obj/item/clothing/glasses/hud/health/night diff --git a/code/modules/clothing/outfits/factions/syndicate.dm b/code/modules/clothing/outfits/factions/syndicate.dm index 44199ac361a3..8f13554f4b00 100644 --- a/code/modules/clothing/outfits/factions/syndicate.dm +++ b/code/modules/clothing/outfits/factions/syndicate.dm @@ -59,6 +59,16 @@ uniform = /obj/item/clothing/under/syndicate/gorlex alt_uniform = /obj/item/clothing/under/syndicate +/datum/outfit/job/syndicate/assistant/ngr + name = "Syndicate - Initiate (New Gorlex Republic)" + id_assignment = "Initiate" + + head = /obj/item/clothing/head/ngr + uniform = /obj/item/clothing/under/syndicate/ngr + shoes = /obj/item/clothing/shoes/combat + + alt_uniform = null + /datum/outfit/job/syndicate/assistant/gec name = "Syndicate - Deckhand (GEC)" id_assignment = "Deckhand" @@ -299,8 +309,16 @@ name = "Syndicate - Captain (Gorlex Marauders)" uniform = /obj/item/clothing/under/syndicate/ngr/officer - head = /obj/item/clothing/head/ngrcap - suit = /obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain + head = /obj/item/clothing/head/ngr/peaked + suit = /obj/item/clothing/suit/armor/ngr/captain + +/datum/outfit/job/syndicate/captain/ngr + name = "Syndicate - Captain (New Gorlex Republic)" + + uniform = /obj/item/clothing/under/syndicate/ngr/officer + head = /obj/item/clothing/head/ngr/peaked + suit = /obj/item/clothing/suit/armor/ngr/captain + shoes = /obj/item/clothing/shoes/combat /datum/outfit/job/syndicate/captain/cybersun name = "Syndicate - Captain (Cybersun)" @@ -421,6 +439,19 @@ shoes = /obj/item/clothing/shoes/jackboots gloves = /obj/item/clothing/gloves/combat +/datum/outfit/job/syndicate/ce/ngr + name = "Syndicate - Foreman (New Gorlex Republic)" + + head = /obj/item/clothing/head/hardhat/ngr/foreman + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/ngr/officer + alt_uniform = null + suit = /obj/item/clothing/suit/ngr + alt_suit = null + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + + //Chief Medical Officer /datum/outfit/job/syndicate/cmo @@ -538,6 +569,22 @@ name = "Syndicate - Sergeant (Gorlex)" id_assignment = "Sergeant" +/datum/outfit/job/syndicate/hos/ngr + name = "Syndicate - Lieutenant (New Gorlex Republic)" + id_assignment = "Lieutenant" + + ears = /obj/item/radio/headset/syndicate/alt + uniform = /obj/item/clothing/under/syndicate/ngr/officer + head = /obj/item/clothing/head/ngr/peaked + suit =/obj/item/clothing/suit/armor/ngr/lieutenant + id = /obj/item/card/id/syndicate_command/crew_id + shoes = /obj/item/clothing/shoes/combat + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + suit_store = /obj/item/gun/ballistic/automatic/pistol + r_pocket = /obj/item/assembly/flash/handheld + l_pocket = /obj/item/restraints/handcuffs + backpack_contents = list(/obj/item/melee/baton/loaded=1) + /datum/outfit/job/syndicate/hos/twink name = "Syndicate - Lieutenant (Twinkleshine, NGR)" id_assignment = "Lieutenant" @@ -656,6 +703,18 @@ id = /obj/item/card/id/syndicate_command/crew_id backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/storage/firstaid/medical,) +/datum/outfit/job/syndicate/doctor/ngr + name = "Syndicate - Medical Doctor (New Gorlex Republic)" + + uniform = /obj/item/clothing/under/syndicate/ngr + head = /obj/item/clothing/head/ngr/surgical + suit = /obj/item/clothing/suit/ngr/smock + glasses = /obj/item/clothing/glasses/hud/health + r_pocket = /obj/item/kitchen/knife/combat/survival + back = /obj/item/storage/backpack/duffelbag/syndie/med + id = /obj/item/card/id/syndicate_command/crew_id + backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/storage/firstaid/medical,) + //paramedics @@ -847,6 +906,20 @@ /datum/outfit/job/syndicate/security/gorlex name = "Syndicate - Assault Operative (Gorlex)" +/datum/outfit/job/syndicate/security/ngr + name = "Syndicate - Operative (New Gorlex Republic)" + id_assignment = "Operative" + job_icon = "securityofficer" + + uniform = /obj/item/clothing/under/syndicate/ngr + belt = /obj/item/storage/belt/security/webbing/ngr + suit = /obj/item/clothing/suit/armor/ngr + gloves = /obj/item/clothing/gloves/color/black + head = /obj/item/clothing/head/helmet/ngr + shoes = /obj/item/clothing/shoes/combat + l_pocket = /obj/item/restraints/handcuffs + r_pocket = /obj/item/assembly/flash/handheld + /datum/outfit/job/syndicate/security/twink name = "Syndicate - Operative (Twinkleshine)" @@ -918,6 +991,18 @@ id_assignment = "Wrecker" uniform = /obj/item/clothing/under/syndicate/gorlex + accessory = /obj/item/clothing/accessory/armband/cargo + shoes = /obj/item/clothing/shoes/workboots + ears = /obj/item/radio/headset/alt + +/datum/outfit/job/syndicate/miner/ngr + name = "Syndicate - Wrecker (New Gorlex Republic)" + id_assignment = "Wrecker" + + head = /obj/item/clothing/head/hardhat/ngr + suit = /obj/item/clothing/suit/hazardvest/ngr + uniform = /obj/item/clothing/under/syndicate/ngr/jumpsuit + accessory = /obj/item/clothing/accessory/armband/cargo shoes = /obj/item/clothing/shoes/workboots ears = /obj/item/radio/headset/alt @@ -1012,6 +1097,16 @@ shoes = /obj/item/clothing/shoes/workboots glasses = null +/datum/outfit/job/syndicate/engineer/ngr + name = "Syndicate - Mechanic (New Gorlex Republic)" + id_assignment = "Mechanic" + + head = /obj/item/clothing/head/hardhat/ngr + suit = /obj/item/clothing/suit/hazardvest/ngr + uniform = /obj/item/clothing/under/syndicate/ngr + shoes = /obj/item/clothing/shoes/workboots + glasses = null + /datum/outfit/job/syndicate/engineer/twink name = "Syndicate - Ship Engineer (Twinkleshine, GEC)" diff --git a/code/modules/clothing/outfits/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm index ba38a4a9240b..05b8c0e1a42c 100644 --- a/code/modules/clothing/outfits/plasmaman.dm +++ b/code/modules/clothing/outfits/plasmaman.dm @@ -217,3 +217,9 @@ head = /obj/item/clothing/head/helmet/space/plasmaman/solgov uniform = /obj/item/clothing/under/plasmaman/solgov gloves = /obj/item/clothing/gloves/color/plasmaman/white + +/datum/outfit/plasmaman/ngr + name = "Plasmangr" + head = /obj/item/clothing/head/helmet/space/plasmaman/ngr + uniform= /obj/item/clothing/under/plasmaman/ngr + gloves = /obj/item/clothing/gloves/color/plasmaman/black diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 1b5f0ae58fae..336ac43c7d4d 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -134,9 +134,12 @@ return if(user == loc && tied != SHOES_TIED) // if they're our own shoes, go tie-wards + if(DOING_INTERACTION_WITH_TARGET(user, our_guy)) + to_chat(user, span_warning("You're already interacting with [src]!")) + return user.visible_message("[user] begins [tied ? "unknotting" : "tying"] the laces of [user.p_their()] [src.name].", "You begin [tied ? "unknotting" : "tying"] the laces of your [src.name]...") - if(do_after(user, lace_time, needhand=TRUE, target=our_guy, extra_checks=CALLBACK(src, PROC_REF(still_shoed), our_guy))) + if(do_after(user, lace_time, target = our_guy, extra_checks = CALLBACK(src, PROC_REF(still_shoed), our_guy))) to_chat(user, "You [tied ? "unknot" : "tie"] the laces of your [src.name].") if(tied == SHOES_UNTIED) adjust_laces(SHOES_TIED, user) @@ -151,13 +154,16 @@ if(tied == SHOES_KNOTTED) to_chat(user, "The laces on [loc]'s [src.name] are already a hopelessly tangled mess!") return + if(DOING_INTERACTION_WITH_TARGET(user, our_guy)) + to_chat(user, span_warning("You're already interacting with [src]!")) + return var/mod_time = lace_time to_chat(user, "You quietly set to work [tied ? "untying" : "knotting"] [loc]'s [src.name]...") if(HAS_TRAIT(user, TRAIT_CLUMSY)) // based clowns trained their whole lives for this mod_time *= 0.75 - if(do_after(user, mod_time, needhand=TRUE, target=our_guy, extra_checks=CALLBACK(src, PROC_REF(still_shoed), our_guy), hidden = TRUE)) + if(do_after(user, mod_time, target = our_guy, extra_checks = CALLBACK(src, PROC_REF(still_shoed), our_guy))) to_chat(user, "You [tied ? "untie" : "knot"] the laces on [loc]'s [src.name].") if(tied == SHOES_UNTIED) adjust_laces(SHOES_KNOTTED, user) @@ -232,8 +238,12 @@ /obj/item/clothing/shoes/attack_self(mob/user) . = ..() + if(DOING_INTERACTION_WITH_TARGET(user, src)) + to_chat(user, "You're already interacting with [src]!") + return + to_chat(user, "You begin [tied ? "untying" : "tying"] the laces on [src]...") - if(do_after(user, lace_time, needhand=TRUE, target=src,extra_checks=CALLBACK(src, PROC_REF(still_shoed), user))) + if(do_after(user, lace_time, target = src,extra_checks = CALLBACK(src, PROC_REF(still_shoed), user))) to_chat(user, "You [tied ? "untie" : "tie"] the laces on [src].") adjust_laces(tied ? SHOES_TIED : SHOES_UNTIED, user) diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm index a09ea07a3250..4ed246a587be 100644 --- a/code/modules/clothing/shoes/bananashoes.dm +++ b/code/modules/clothing/shoes/bananashoes.dm @@ -16,7 +16,7 @@ /obj/item/clothing/shoes/clown_shoes/banana_shoes/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) - AddComponent(/datum/component/material_container, list(/datum/material/bananium), 200000, TRUE, /obj/item/stack) + AddComponent(/datum/component/material_container, list(/datum/material/hellstone), 200000, TRUE, /obj/item/stack) AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75, falloff_exponent = 20) /obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action() @@ -24,7 +24,7 @@ var/mob/wearer = loc var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) if(on && istype(wearer)) - if(bananium.get_material_amount(/datum/material/bananium) < 100) + if(bananium.get_material_amount(/datum/material/hellstone) < 100) on = !on if(!always_noslip) clothing_flags &= ~NOSLIP @@ -32,7 +32,7 @@ to_chat(loc, "You ran out of bananium!") else new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(wearer.dir, 180))) //honk - bananium.use_amount_mat(100, /datum/material/bananium) + bananium.use_amount_mat(100, /datum/material/hellstone) /obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user) var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) @@ -48,7 +48,7 @@ /obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user) var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - if(bananium.get_material_amount(/datum/material/bananium)) + if(bananium.get_material_amount(/datum/material/hellstone)) on = !on update_appearance() to_chat(user, "You [on ? "activate" : "deactivate"] the prototype shoes.") diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 4b19735b5f62..bd1817e1bf45 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -2,6 +2,8 @@ // Meaning the the suit is defined directly after the corrisponding helmet. Just like below! /obj/item/clothing/head/helmet/space name = "space helmet" + icon = 'icons/obj/clothing/head/spacesuits.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/spacesuits.dmi' icon_state = "spaceold" desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays." clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS //WS Port - Cit Internals @@ -19,6 +21,8 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF resistance_flags = NONE dog_fashion = null + content_overlays = FALSE + pocket_storage_component_path = null /obj/item/clothing/suit/space name = "space suit" diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 1ea5af9f1ea4..c07841cdba5a 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -444,26 +444,6 @@ combat_slowdown = 0.5 jetpack = null -//2nd Battlegroup Syndie suit -/obj/item/clothing/head/helmet/space/hardsuit/syndi/sbg - name = "beige-red hardsuit helmet" - desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." - alt_desc = "A standardized dual-mode helmet derived from ICW-era advanced special operations helmets, its red partly replaced by beige. It is in combat mode. Manufactured by Second Battlegroup." - icon_state = "hardsuit1-sbg" - item_state = "hardsuit1-sbg" - hardsuit_type = "sbg" - -/obj/item/clothing/suit/space/hardsuit/syndi/sbg - name = "beige-red hardsuit" - desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in EVA mode. Manufactured by Second Battlegroup." - alt_desc = "A standardized dual-mode hardsuit derived from ICW-era advanced special operations hardsuits, its red partly replaced by beige. It is in combat mode. Manufactured by the Second Battlegroup." - icon_state = "hardsuit1-sbg" - item_state = "hardsuit1-sbg" - hardsuit_type = "sbg" - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/sbg - lightweight = 1 - jetpack = null - //Hardliner Syndie suit /obj/item/clothing/head/helmet/space/hardsuit/syndi/hl name = "white-red hardsuit helmet" diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index e999caf7624b..ae6ebb525a64 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -281,28 +281,6 @@ Contains: flash_protect = FLASH_PROTECTION_NONE armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 65) -/obj/item/clothing/head/helmet/space/freedom - name = "eagle helmet" - desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle." - icon_state = "griffinhat" - item_state = "griffinhat" - armor = list("melee" = 20, "bullet" = 40, "laser" = 30, "energy" = 40, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80) - strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - resistance_flags = ACID_PROOF | FIRE_PROOF - -/obj/item/clothing/suit/space/freedom - name = "eagle suit" - desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be integrated into the suit and the wings appear to be stuck in 'freedom' mode." - icon_state = "freedom" - item_state = "freedom" - allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals) - armor = list("melee" = 20, "bullet" = 40, "laser" = 30,"energy" = 40, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80) - strip_delay = 130 - max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - resistance_flags = ACID_PROOF | FIRE_PROOF - slowdown = 0 - //Carpsuit, bestsuit, lovesuit /obj/item/clothing/head/helmet/space/hardsuit/carp name = "carp helmet" @@ -581,14 +559,3 @@ Contains: icon_state = "space-inteq" armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 15, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) w_class = WEIGHT_CLASS_NORMAL - -/obj/item/clothing/suit/space/scar - name = "Scar Suit" - desc = "A heavily modified eva suit, custom made for the captain of the ember." - icon_state = "hostile_env" - item_state = "hostile_env" - max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - resistance_flags = FIRE_PROOF - slowdown = 0.5 - armor = list("melee" = 40, "bullet" = 35, "laser" = 30, "energy" = 25, "bomb" = 70, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy, /obj/item/tank/internals) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 953899ca40ce..889bcc0420f2 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -15,6 +15,8 @@ greyscale_colors = list(list(18, 19), list(13, 18), list(20, 15)) greyscale_icon_state = "armor" + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION + /obj/item/clothing/suit/armor/Initialize() . = ..() if(!allowed) @@ -157,21 +159,6 @@ desc = "An extraordinarily fashionable haori, utilized by Cybersun captains. Weaved with armored fabric to protect the user from gunshots." icon_state = "carapace_cybersun" -/obj/item/clothing/suit/armor/vest/capcarapace/ngr_captain - name = "\improper 2nd Battlegroup jacket" - desc = "An armored jacket worn by the New Gorlex Republic's 2nd Battlegroup." - body_parts_covered = CHEST|GROIN|ARMS|HANDS - icon_state = "carapace_ngr" - item_state = "carapace_ngr" - blood_overlay_type = "coat" - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) - -/obj/item/clothing/suit/armor/vest/capcarapace/alt - name = "captain's parade jacket" - desc = "For when an armoured vest isn't fashionable enough." - icon_state = "carapace_ntformal" - item_state = "capspacesuit" - /obj/item/clothing/suit/armor/vest/capcarapace/captunic name = "captain's parade coat" desc = "Worn by a captain to show their class." diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index bce5d5bd2445..4e3f6d5e3a9c 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -67,6 +67,11 @@ desc = "Worn by high ranking vampires of the transylvanian society of vampires." icon_state = "trans" +/obj/item/clothing/neck/cloak/bi + name = "solarian marine biologist cloak" + desc = "Commonly worn by members of the Solarian Marine Biologist Society, dedicated to the study and preservation of marine wildlife." + icon_state = "bi" + /obj/item/clothing/suit/hooded/cloak/goliath name = "goliath cloak" icon_state = "goliath_cloak" diff --git a/code/modules/clothing/suits/hoodies.dm b/code/modules/clothing/suits/hoodies.dm index b9e7ebb218c0..f58d445c53f0 100644 --- a/code/modules/clothing/suits/hoodies.dm +++ b/code/modules/clothing/suits/hoodies.dm @@ -85,11 +85,13 @@ /obj/item/clothing/head/hooded/hood/fbp name = "\improper FBP kepori hood" desc = "A hood for your FBP hoodie." + icon_state = "hoodie_fbp" item_state = "hoodie_fbp" /obj/item/clothing/suit/hooded/hoodie/rilena name = "K4L1 hoodie" desc = "A hoodie themed to look like K4L1 from the popular webseries RILENA. It has a comfy pocket for keeping your hands warm." + icon_state = "hoodie_rilena" item_state = "hoodie_rilena" hoodtype = /obj/item/clothing/head/hooded/hood/rilena @@ -110,5 +112,6 @@ /obj/item/clothing/head/hooded/hood/rilena name = "RILENA: LMR K4L1 hood" desc = "A hood for your RILENA themed hoodie." + icon_state = "hoodie_rilena" item_state = "hoodie_rilena" diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 43c349d6e095..79aaf15c4d34 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -129,6 +129,8 @@ body_parts_covered = CHEST|ARMS togglename = "buttons" + supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON + /obj/item/clothing/suit/toggle/lawyer/purple name = "purple suit jacket" desc = "A foppish dress jacket." diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 24836f6f2404..f95a91ab27fe 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -4,7 +4,7 @@ icon_state = "labcoat" item_state = "labcoat" blood_overlay_type = "coat" - body_parts_covered = CHEST|ARMS + body_parts_covered = CHEST|ARMS|GROIN allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/soap, /obj/item/sensor_device, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50) togglename = "buttons" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 64b4c656bb1f..f8e8c3f69909 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -326,6 +326,8 @@ /obj/item/clothing/head/hooded/human_head name = "bloated human head" desc = "A horribly bloated and mismatched human head." + icon = 'icons/obj/clothing/head/spacesuits.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/spacesuits.dmi' icon_state = "lingspacehelmet" body_parts_covered = HEAD flags_cover = HEADCOVERSEYES @@ -661,8 +663,8 @@ flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK /obj/item/clothing/suit/hawaiian - name = "hawaiian overshirt" - desc = "A cool shirt for chilling on the beach." + name = "floral shirt" + desc = "From grills to guns, this shirt's seen it all." icon_state = "hawaiian_blue" item_state = "hawaiian_blue" diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 8bc5646f2218..451d428760f3 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -55,6 +55,8 @@ /obj/item/clothing/head/wizard/santa name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" + icon = 'icons/obj/clothing/head/spacesuits.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/spacesuits.dmi' icon_state = "santahat" flags_inv = HIDEHAIR|HIDEFACIALHAIR dog_fashion = null @@ -146,39 +148,6 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = FLAMMABLE -/obj/item/clothing/suit/wizrobe/paper - name = "papier-mache robe" // no non-latin characters! - desc = "A robe held together by various bits of clear-tape and paste." - icon_state = "wizard-paper" - item_state = "wizard-paper" - var/robe_charge = TRUE - actions_types = list(/datum/action/item_action/stickmen) - - -/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, action) - stickmen() - - -/obj/item/clothing/suit/wizrobe/paper/verb/stickmen() - set category = "Object" - set name = "Summon Stick Minions" - set src in usr - if(!isliving(usr)) - return - if(!robe_charge) - to_chat(usr, "The robe's internal magic supply is still recharging!") - return - - usr.say("Rise, my creation! Off your page into this realm!", forced = "stickman summoning") - playsound(src.loc, 'sound/magic/summon_magic.ogg', 50, TRUE, TRUE) - var/mob/living/M = new /mob/living/simple_animal/hostile/stickman(get_turf(usr)) - var/list/factions = usr.faction - M.faction = factions - src.robe_charge = FALSE - sleep(30) - src.robe_charge = TRUE - to_chat(usr, "The robe hums, its internal magic supply restored.") - /obj/item/clothing/suit/space/hardsuit/shielded/wizard name = "battlemage armour" desc = "Not all wizards are afraid of getting up close and personal." diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 7a8e21ae2bea..a28d6d323a83 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -86,7 +86,6 @@ if(attached_accessory && slot != ITEM_SLOT_HANDS && ishuman(user)) var/mob/living/carbon/human/H = user attached_accessory.on_uniform_equip(src, user) - H.fan_hud_set_fandom() if(attached_accessory.above_suit) H.update_inv_wear_suit() @@ -101,7 +100,6 @@ attached_accessory.on_uniform_dropped(src, user) if(ishuman(user)) var/mob/living/carbon/human/H = user - H.fan_hud_set_fandom() if(attached_accessory.above_suit) H.update_inv_wear_suit() @@ -136,7 +134,6 @@ var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() H.update_inv_wear_suit() - H.fan_hud_set_fandom() return TRUE @@ -158,7 +155,6 @@ var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() H.update_inv_wear_suit() - H.fan_hud_set_fandom() /obj/item/clothing/under/examine(mob/user) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index ed1d12be3fcb..76de51b173cd 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -376,45 +376,6 @@ for(var/i in 1 to 3) new /obj/item/lipstick/random(src) -//////////////// -//REAL BIG FAN// -//////////////// - -/obj/item/clothing/accessory/fan_clown_pin - name = "Clown Pin" - desc = "A pin to show off your appreciation for clowns and clowning" - icon_state = "fan_clown_pin" - above_suit = FALSE - minimize_when_attached = TRUE - attachment_slot = CHEST - -/obj/item/clothing/accessory/fan_clown_pin/on_uniform_equip(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(HAS_TRAIT(L, TRAIT_FAN_CLOWN)) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "fan_clown_pin", /datum/mood_event/fan_clown_pin) - -/obj/item/clothing/accessory/fan_clown_pin/on_uniform_dropped(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(HAS_TRAIT(L, TRAIT_FAN_CLOWN)) - SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "fan_clown_pin") - -/obj/item/clothing/accessory/fan_mime_pin - name = "Mime Pin" - desc = "A pin to show off your appreciation for mimes and miming" - icon_state = "fan_mime_pin" - above_suit = FALSE - minimize_when_attached = TRUE - attachment_slot = CHEST - -/obj/item/clothing/accessory/fan_mime_pin/on_uniform_equip(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(HAS_TRAIT(L, TRAIT_FAN_MIME)) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "fan_mime_pin", /datum/mood_event/fan_mime_pin) - -/obj/item/clothing/accessory/fan_mime_pin/on_uniform_dropped(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(HAS_TRAIT(L, TRAIT_FAN_MIME)) - SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "fan_mime_pin") //////////////// //OONGA BOONGA// diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm index c5426e63883e..2341da5567a9 100644 --- a/code/modules/clothing/under/jobs/cargo.dm +++ b/code/modules/clothing/under/jobs/cargo.dm @@ -46,7 +46,7 @@ supports_variations = KEPORI_VARIATION /obj/item/clothing/under/rank/cargo/miner/lavaland - desc = "A light uniform for operating in hazardous environments, manufactured en-masse by EXOCON for the profitable frontier prospector market. Adventurous khaki jeans included." + desc = "A light uniform for operating in hazardous environments, manufactured en-masse by EXOCOM for the profitable frontier prospector market. Adventurous khaki jeans included." name = "prospector jumpsuit" icon_state = "explorer" item_state = "explorer" diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 55b20b328ac8..c2584679cb5c 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -50,12 +50,6 @@ can_adjust = FALSE supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION -/obj/item/clothing/under/rank/command/captain/parade - name = "captain's parade uniform" - desc = "A captain's luxury-wear, for special occasions." - icon_state = "captain_parade" - item_state = "b_suit" - can_adjust = FALSE //Head of Personnel @@ -73,16 +67,6 @@ can_adjust = FALSE supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION -/obj/item/clothing/under/rank/command/head_of_personnel/nt - icon_state = "hop_nt" - -/obj/item/clothing/under/rank/command/head_of_personnel/nt/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_nt" - body_parts_covered = CHEST|GROIN|ARMS - supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION - /obj/item/clothing/under/rank/command/head_of_personnel/suit name = "head of personnel's suit" desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble." @@ -98,15 +82,3 @@ body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION - -/obj/item/clothing/under/rank/command/captain/nt - desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"." - icon_state = "captain_nt" - item_state = "b_suit" - -/obj/item/clothing/under/rank/command/captain/nt/skirt - name = "captain's jumpskirt" - desc = "It's a blue jumpskirt with some gold markings denoting the rank of \"Captain\"." - icon_state = "captain_nt_skirt" - body_parts_covered = CHEST|GROIN|ARMS - supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index 7a95273c22f2..bf462c7fda4d 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -136,7 +136,7 @@ /obj/item/clothing/under/rank/medical/paramedic desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained paramedic." name = "paramedic jumpsuit" - icon_state = "paramedic" + icon_state = "pmedic" item_state = "w_suit" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) @@ -144,7 +144,7 @@ /obj/item/clothing/under/rank/medical/paramedic/skirt name = "paramedic jumpskirt" desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained paramedic." - icon_state = "paramedic_skirt" + icon_state = "pmedic_skirt" item_state = "w_suit" body_parts_covered = CHEST|GROIN|ARMS supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 36cc7c96220e..9eb76ee6bf5e 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -93,22 +93,6 @@ armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE -/obj/item/clothing/under/syndicate/ngr/officer - name = "NGR officer uniform" - desc = "A black uniform worn by officers of the New Gorlex Republic." - icon_state = "ngr_officer" - can_adjust = FALSE - armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) - alt_covers_chest = TRUE - -/obj/item/clothing/under/syndicate/ngr - name = "NGR uniform" - desc = "A button-up in a tasteful shade of gray with red pants, used as the basic uniform of the New Gorlex Republic." - icon_state = "ngr_grunt" - can_adjust = FALSE - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) - alt_covers_chest = TRUE - /obj/item/clothing/under/syndicate/gorlex name = "Gorlex Marauder uniform" desc = "Originally worn by the miners of the Gorlex VII colony, it is now donned by veteran Gorlex Marauders." diff --git a/code/modules/donator/_donator.dm b/code/modules/donator/_donator.dm index b18dbe8f78b3..dd4df369cfea 100644 --- a/code/modules/donator/_donator.dm +++ b/code/modules/donator/_donator.dm @@ -23,7 +23,7 @@ GLOBAL_PROTECT(donators) /client/proc/do_donator_redemption() set name = "Redeem Donator Reward" - set category = "Donator" + set category = "OOC.Donator" set desc = "Redeem a reward" var/mob/client_mob = mob @@ -38,7 +38,7 @@ GLOBAL_PROTECT(donators) /client/proc/do_donator_wcir() set name = "What Can I Redeem" - set category = "Donator" + set category = "OOC.Donator" set desc = "Currently available redemptions" donator?.what_can_i_redeem(src.mob) diff --git a/code/modules/fishing/fishing_portal_machine.dm b/code/modules/fishing/fishing_portal_machine.dm index 0cbeae7c3dac..a070e7b7f797 100644 --- a/code/modules/fishing/fishing_portal_machine.dm +++ b/code/modules/fishing/fishing_portal_machine.dm @@ -6,7 +6,7 @@ icon_state = "portal_off" idle_power_usage = 0 - active_power_usage = 2000 + active_power_usage = ACTIVE_DRAW_HIGH anchored = FALSE density = TRUE @@ -35,12 +35,12 @@ /obj/machinery/fishing_portal_generator/proc/activate() active = AddComponent(/datum/component/fishing_spot, fishing_source) - use_power = ACTIVE_POWER_USE + set_active_power() update_appearance() /obj/machinery/fishing_portal_generator/proc/deactivate() QDEL_NULL(active) - use_power = IDLE_POWER_USE + set_idle_power() update_appearance() /obj/machinery/fishing_portal_generator/on_set_is_operational(old_value) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 258e9a56217f..ced086e1dfc6 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -525,11 +525,11 @@ GLOBAL_LIST_INIT(hallucination_list, list( /datum/hallucination/delusion var/list/image/delusions = list() -/datum/hallucination/delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = 300,skip_nearby = TRUE, custom_icon = null, custom_icon_file = null, custom_name = null) +/datum/hallucination/delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = rand(30,300),skip_nearby = TRUE, custom_icon = null, custom_icon_file = null, custom_name = null) set waitfor = FALSE . = ..() var/image/A = null - var/kind = force_kind ? force_kind : pick("nothing","monkey","corgi","carp","skeleton","demon","zombie") + var/kind = force_kind ? force_kind : pick("doe","mi-go","carp","hermit","frontiersman","ramzi") feedback_details += "Type: [kind]" var/list/nearby if(skip_nearby) @@ -540,27 +540,24 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(skip_nearby && (H in nearby)) continue switch(kind) - if("nothing") - A = image('icons/effects/effects.dmi',H,"nothing") - A.name = "..." - if("monkey")//Monkey - A = image('icons/mob/monkey.dmi',H,"monkey1") - A.name = "Monkey ([rand(1,999)])" + if("doe")//Doe + A = image('icons/mob/animal.dmi',H,"deer-doe") + A.name = "Doe" if("carp")//Carp A = image('icons/mob/carp.dmi',H,"carp") A.name = "Space Carp" - if("corgi")//Corgi - A = image('icons/mob/pets.dmi',H,"corgi") - A.name = "Corgi" - if("skeleton")//Skeletons - A = image('icons/mob/human.dmi',H,"skeleton") - A.name = "Skeleton" - if("zombie")//Zombies - A = image('icons/mob/human.dmi',H,"zombie") - A.name = "Zombie" - if("demon")//Demon - A = image('icons/mob/mob.dmi',H,"daemon") - A.name = "Demon" + if("mi-go")//Mi-go + A = image('icons/mob/animal.dmi',H,"mi-go") + A.name = "Mi-go" + if("hermit")//Hermit + A = image('icons/mob/simple_human.dmi',H,"survivor_gunslinger") + A.name = "Hermit Soldier" + if("frontiersman")//Frontiersman + A = image('icons/mob/simple_human.dmi',H,"frontiersmanrangedminigun") + A.name = "Frontiersman" + if("ramzi")//Ramzi + A = image('icons/mob/simple_human.dmi',H,"ramzi_base") + A.name = "Ramzi Commando" if("custom") A = image(custom_icon_file, H, custom_icon) A.name = custom_name @@ -568,8 +565,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(target.client) delusions |= A target.client.images |= A - if(duration) - QDEL_IN(src, duration) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), duration) /datum/hallucination/delusion/Destroy() for(var/image/I in delusions) @@ -580,25 +576,28 @@ GLOBAL_LIST_INIT(hallucination_list, list( /datum/hallucination/self_delusion var/image/delusion -/datum/hallucination/self_delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = 300, custom_icon = null, custom_icon_file = null, wabbajack = TRUE) //set wabbajack to false if you want to use another fake source +/datum/hallucination/self_delusion/New(mob/living/carbon/C, forced, force_kind = null , duration = rand(30,300), custom_icon = null, custom_icon_file = null, wabbajack = TRUE) //set wabbajack to false if you want to use another fake source set waitfor = FALSE ..() var/image/A = null - var/kind = force_kind ? force_kind : pick("monkey","corgi","carp","skeleton","demon","zombie","robot") + var/kind = force_kind ? force_kind : pick("doe","mi-go","carp","hermit","frontiersman","ramzi","pai","robot") feedback_details += "Type: [kind]" switch(kind) - if("monkey")//Monkey - A = image('icons/mob/monkey.dmi',target,"monkey1") + if("doe")//Doe + A = image('icons/mob/animal.dmi',target,"deer-doe") if("carp")//Carp A = image('icons/mob/animal.dmi',target,"carp") - if("corgi")//Corgi - A = image('icons/mob/pets.dmi',target,"corgi") - if("skeleton")//Skeletons - A = image('icons/mob/human.dmi',target,"skeleton") - if("zombie")//Zombies - A = image('icons/mob/human.dmi',target,"zombie") - if("demon")//Demon - A = image('icons/mob/mob.dmi',target,"daemon") + if("mi-go")//Mi-go + A = image('icons/mob/animal.dmi',target,"mi-go") + if("hermit")//Hermit + A = image('icons/mob/simple_human.dmi',target,"survivor_base") + if("frontiersman")//Frontiersman + A = image('icons/mob/simple_human.dmi',target,"frontiersmanranged") + if("ramzi")//Ramzi + A = image('icons/mob/simple_human.dmi',target,"ramzi_base") + if("pai")//pAI + A = image('icons/mob/pai.dmi',target,"repairbot") + target.playsound_local(target,'sound/effects/pai_boot.ogg', 75, 1) if("robot")//Cyborg A = image('icons/mob/robots.dmi',target,"robot") target.playsound_local(target,'sound/voice/liveagain.ogg', 75, 1) @@ -610,7 +609,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( to_chat(target, "...you look down and notice... you aren't the same as you used to be...") delusion = A target.client.images |= A - QDEL_IN(src, duration) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), duration) /datum/hallucination/self_delusion/Destroy() if(target.client) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 8f88924930f4..d6a281a2b925 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -39,7 +39,7 @@ else M.visible_message("[user] attempts to feed [M] the contents of [src].", \ "[user] attempts to feed you the contents of [src].") - if(!do_mob(user, M)) + if(!do_after(user, target = M)) return if(!reagents || !reagents.total_volume) return // The drink might be empty after the delay, such as by spam-feeding @@ -120,27 +120,36 @@ if(!.) //if the bottle wasn't caught smash(hit_atom, throwingdatum?.thrower, TRUE) -/obj/item/reagent_containers/food/drinks/proc/smash(atom/target, mob/thrower, ranged = FALSE) +/obj/item/reagent_containers/food/drinks/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + smash() + ..() + +/obj/item/reagent_containers/food/drinks/proc/smash(atom/target = FALSE, mob/thrower = FALSE, ranged = FALSE) if(!isGlass) return - if(QDELING(src) || !target || !(flags_1 & INITIALIZED_1)) //Invalid loc - return - if(bartender_check(target) && ranged) + if(QDELING(src) || !(flags_1 & INITIALIZED_1)) //Invalid loc return - var/obj/item/broken_bottle/B = new (loc) - B.icon_state = icon_state - var/icon/I = new(icon, icon_state) - I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1) - I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0)) - B.icon = I - B.name = "broken [name]" + if(target) + if(bartender_check(target) && ranged) + return + var/obj/item/broken_bottle/smashed_bottle = new (loc) + if(!ranged && thrower) + thrower.put_in_hands(smashed_bottle) + smashed_bottle.icon_state = icon_state + var/icon/new_icon = new(icon, icon_state) + new_icon.Blend(smashed_bottle.broken_outline, ICON_OVERLAY, rand(5), 1) + new_icon.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0)) + smashed_bottle.icon = new_icon + smashed_bottle.name = "broken [name]" if(prob(33)) - var/obj/item/shard/S = new(drop_location()) - target.Bumped(S) + var/obj/item/shard/new_shard = new(drop_location()) + if(target) + target.Bumped(new_shard) playsound(src, "shatter", 70, TRUE) - transfer_fingerprints_to(B) + transfer_fingerprints_to(smashed_bottle) qdel(src) - target.Bumped(B) + if(target) + target.Bumped(smashed_bottle) /obj/item/reagent_containers/food/drinks/bullet_act(obj/projectile/P) . = ..() diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 4da78a5989a1..c19fd9dd3baa 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -34,39 +34,7 @@ volume = 50 custom_price = 55 -/obj/item/reagent_containers/food/drinks/bottle/smash(mob/living/target, mob/thrower, ranged = FALSE) - if(QDELING(src) || !target || !(flags_1 & INITIALIZED_1)) //Invalid loc - return - //Creates a shattering noise and replaces the bottle with a broken_bottle - if(bartender_check(target) && ranged) - return - var/obj/item/broken_bottle/B = new (loc) - if(!ranged && thrower) - thrower.put_in_hands(B) - B.icon_state = icon_state - - var/icon/I = new('icons/obj/drinks/drinks.dmi', src.icon_state) - I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1) - I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0)) - B.icon = I - - if(isGlass) - if(prob(33)) - var/obj/item/shard/S = new(drop_location()) - target.Bumped(S) - playsound(src, "shatter", 70, TRUE) - else - B.force = 0 - B.throwforce = 0 - B.desc = "A carton with the bottom half burst open. Might give you a papercut." - B.name = "broken [name]" - transfer_fingerprints_to(B) - - qdel(src) - target.Bumped(B) - /obj/item/reagent_containers/food/drinks/bottle/attack(mob/living/target, mob/living/user) - if(!target) return diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 589e986aaeeb..0adf98ba5666 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -79,7 +79,7 @@ else M.visible_message("[user] attempts to feed [M] from [src].", \ "[user] attempts to feed you from [src].") - if(!do_mob(user, M)) + if(!do_after(user, target = M)) return if(!reagents || !reagents.total_volume) return // The condiment might be empty after the delay. @@ -322,14 +322,3 @@ desc = "A delicious oil used in cooking" icon_state = "oliveoil" list_reagents = list(/datum/reagent/consumable/cornoil = 50) - -/obj/item/reagent_containers/food/condiment/pack/sugar - name = "sugar pack" - originalname = "sugar" - list_reagents = list(/datum/reagent/consumable/sugar = 5) - -/obj/item/reagent_containers/food/condiment/pack/creamer - name = "creamer" /// dont laugh you child - originalname = "cream" - list_reagents = list(/datum/reagent/consumable/cream = 5) - diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 2dd04174ba85..b64d52eea54a 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -126,7 +126,7 @@ All foods are distributed among various categories. Use common sense. "[user] cannot force any more of [src] down your throat!") return FALSE - if(!do_mob(user, M)) + if(!do_after(user, target = M)) return log_combat(user, M, "fed", reagents.log_list()) M.visible_message("[user] forces [M] to eat [src]!", \ diff --git a/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm b/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm deleted file mode 100644 index 7b98be6a16c4..000000000000 --- a/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm +++ /dev/null @@ -1,689 +0,0 @@ -#define BEAN_CAPACITY 10 //amount of coffee beans that can fit inside the impressa coffeemaker - -/obj/machinery/coffeemaker - name = "coffeemaker" - desc = "A Modello 3 Coffeemaker that brews coffee and holds it at the perfect temperature of 176 fahrenheit. Made by Piccionaia Home Appliances." - icon = 'icons/obj/machines/coffeemaker.dmi' - icon_state = "coffeemaker_nopot_nocart" - base_icon_state = "coffeemaker" - resistance_flags = FIRE_PROOF | ACID_PROOF - circuit = /obj/item/circuitboard/machine/coffeemaker - var/obj/item/reagent_containers/food/drinks/bottle/coffeepot/coffeepot = null - var/brewing = FALSE - var/brew_time = 20 SECONDS - var/speed = 1 - /// The coffee cartridge to make coffee from. In the future, coffee grounds are like printer ink. - var/obj/item/coffee_cartridge/cartridge = null - /// The type path to instantiate for the coffee cartridge the device initially comes with, eg. /obj/item/coffee_cartridge - var/initial_cartridge = /obj/item/coffee_cartridge - /// The number of cups left - var/coffee_cups = 15 - var/max_coffee_cups = 15 - /// The amount of sugar packets left - var/sugar_packs = 10 - var/max_sugar_packs = 10 - /// The amount of sweetener packets left - var/sweetener_packs = 10 - var/max_sweetener_packs = 10 - /// The amount of creamer packets left - var/creamer_packs = 10 - var/max_creamer_packs = 10 - - var/static/radial_examine = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine") - var/static/radial_brew = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_brew") - var/static/radial_eject_pot = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject_pot") - var/static/radial_eject_cartridge = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject_cartridge") - var/static/radial_take_cup = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_take_cup") - var/static/radial_take_sugar = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_take_sugar") - var/static/radial_take_sweetener = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_take_sweetener") - var/static/radial_take_creamer = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_take_creamer") - -/obj/machinery/coffeemaker/Initialize(mapload) - . = ..() - if(mapload) - coffeepot = new /obj/item/reagent_containers/food/drinks/bottle/coffeepot(src) - cartridge = new /obj/item/coffee_cartridge(src) - -/obj/machinery/coffeemaker/deconstruct() - coffeepot?.forceMove(drop_location()) - cartridge?.forceMove(drop_location()) - return ..() - -/obj/machinery/coffeemaker/Destroy() - QDEL_NULL(coffeepot) - QDEL_NULL(cartridge) - return ..() - -/obj/machinery/coffeemaker/Exited(atom/movable/gone, direction) - . = ..() - if(gone == coffeepot) - coffeepot = null - update_appearance(UPDATE_OVERLAYS) - if(gone == cartridge) - cartridge = null - update_appearance(UPDATE_OVERLAYS) -/obj/machinery/coffeemaker/examine(mob/user) - . = ..() - if(!in_range(user, src) && !issilicon(user) && !isobserver(user)) - . += span_warning("You're too far away to examine [src]'s contents and display!") - return - - if(brewing) - . += span_warning("\The [src] is brewing.") - return - - if(panel_open) - . += span_notice("[src]'s maintenance hatch is open!") - return - - if(coffeepot || cartridge) - . += span_notice("\The [src] contains:") - if(coffeepot) - . += span_notice("- \A [coffeepot].") - if(cartridge) - . += span_notice("- \A [cartridge].") - return - - if(!(machine_stat & (NOPOWER|BROKEN))) - . += "[span_notice("The status display reads:")]\n"+\ - span_notice("- Brewing coffee at [speed*100]%.") - if(coffeepot) - for(var/datum/reagent/consumable/cawfee as anything in coffeepot.reagents.reagent_list) - . += span_notice("- [cawfee.volume] units of coffee in pot.") - if(cartridge) - if(cartridge.charges < 1) - . += span_notice("- grounds cartridge is empty.") - else - . += span_notice("- grounds cartridge has [cartridge.charges] charges remaining.") - - if (coffee_cups >= 1) - . += span_notice("There [coffee_cups == 1 ? "is" : "are"] [coffee_cups] coffee cup[coffee_cups != 1 && "s"] left.") - else - . += span_notice("There are no cups left.") - - if (sugar_packs >= 1) - . += span_notice("There [sugar_packs == 1 ? "is" : "are"] [sugar_packs] packet[sugar_packs != 1 && "s"] of sugar left.") - else - . += span_notice("There is no sugar left.") - - if (sweetener_packs >= 1) - . += span_notice("There [sweetener_packs == 1 ? "is" : "are"] [sweetener_packs] packet[sweetener_packs != 1 && "s"] of sweetener left.") - else - . += span_notice("There is no sweetener left.") - - if (creamer_packs > 1) - . += span_notice("There [creamer_packs == 1 ? "is" : "are"] [creamer_packs] packet[creamer_packs != 1 && "s"] of creamer left.") - else - . += span_notice("There is no creamer left.") - - -/obj/machinery/coffeemaker/update_overlays() - . = ..() - . += overlay_checks() - -/obj/machinery/coffeemaker/proc/overlay_checks() - . = list() - if(coffeepot) - . += "coffeemaker_pot" - if(cartridge) - . += "coffeemaker_cartidge" - return . - -/obj/machinery/coffeemaker/proc/replace_pot(mob/living/user, /obj/item/reagent_containers/food/drinks/bottle/coffeepot) - if(!user) - return FALSE - if(coffeepot) - try_put_in_hand(coffeepot, user) - balloon_alert(user, "replaced pot") - update_appearance(UPDATE_OVERLAYS) - return TRUE - -/obj/machinery/coffeemaker/proc/replace_cartridge(mob/living/user, obj/item/coffee_cartridge/new_cartridge) - if(!user) - return FALSE - if(cartridge) - try_put_in_hand(cartridge, user) - if(new_cartridge) - cartridge = new_cartridge - update_appearance(UPDATE_OVERLAYS) - return TRUE - -/obj/machinery/coffeemaker/wrench_act(mob/living/user, obj/item/tool) - . = ..() - default_unfasten_wrench(user, tool) - return TOOL_ACT_TOOLTYPE_SUCCESS - -/obj/machinery/coffeemaker/attackby(obj/item/attack_item, mob/living/user, params) - //You can only screw open empty grinder - if(!coffeepot && default_deconstruction_screwdriver(user, icon_state, icon_state, attack_item)) - return FALSE - - if(default_deconstruction_crowbar(attack_item)) - return - - if(panel_open) //Can't insert objects when its screwed open - return TRUE - - if (istype(attack_item, /obj/item/reagent_containers/food/drinks/bottle/coffeepot) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container()) - var/obj/item/reagent_containers/food/drinks/bottle/coffeepot/new_pot = attack_item - . = TRUE //no afterattack - if(!user.transferItemToLoc(new_pot, src)) - return TRUE - replace_pot(user, new_pot) - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/reagent_containers/glass/coffee_cup) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container()) - var/obj/item/reagent_containers/glass/coffee_cup/new_cup = attack_item - if(new_cup.reagents.total_volume > 0) - balloon_alert(user, "the cup must be empty!") - return - if(coffee_cups >= max_coffee_cups) - balloon_alert(user, "the cup holder is full!") - return - if(!user.transferItemToLoc(attack_item, src)) - return - coffee_cups++ - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/sugar)) - var/obj/item/reagent_containers/food/condiment/pack/sugar/new_pack = attack_item - if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) - balloon_alert(user, "the pack must be full!") - return - if(sugar_packs >= max_sugar_packs) - balloon_alert(user, "the sugar compartment is full!") - return - if(!user.transferItemToLoc(attack_item, src)) - return - sugar_packs++ - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/creamer)) - var/obj/item/reagent_containers/food/condiment/pack/creamer/new_pack = attack_item - if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) - balloon_alert(user, "the pack must be full!") - return - if(creamer_packs >= max_creamer_packs) - balloon_alert(user, "the creamer compartment is full!") - return - if(!user.transferItemToLoc(attack_item, src)) - return - creamer_packs++ - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/astrotame)) - var/obj/item/reagent_containers/food/condiment/pack/astrotame/new_pack = attack_item - if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) - balloon_alert(user, "the pack must be full!") - return - else if(sweetener_packs >= max_sweetener_packs) - balloon_alert(user, "the sweetener compartment is full!") - return - else if(!user.transferItemToLoc(attack_item, src)) - return - sweetener_packs++ - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/coffee_cartridge) && !(attack_item.item_flags & ABSTRACT)) - var/obj/item/coffee_cartridge/new_cartridge = attack_item - if(!user.transferItemToLoc(new_cartridge, src)) - return - replace_cartridge(user, new_cartridge) - balloon_alert(user, "added cartridge") - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - -/obj/machinery/coffeemaker/proc/try_brew() - if(!cartridge) - balloon_alert(usr, "no coffee cartridge inserted!") - return FALSE - if(cartridge.charges < 1) - balloon_alert(usr, "coffee cartridge empty!") - return FALSE - if(!coffeepot) - balloon_alert(usr, "no coffeepot inside!") - return FALSE - if(machine_stat & (NOPOWER|BROKEN)) - balloon_alert(usr, "machine unpowered!") - return FALSE - if(coffeepot.reagents.total_volume >= coffeepot.reagents.maximum_volume) - balloon_alert(usr, "the coffeepot is already full!") - return FALSE - return TRUE - -/obj/machinery/coffeemaker/ui_interact(mob/user) // The microwave Menu //I am reasonably certain that this is not a microwave //I am positively certain that this is not a microwave - . = ..() - - if(brewing || panel_open || !anchored || !user.canUseTopic(src, !issilicon(user))) - return - - var/list/options = list() - - if(coffeepot) - options["Eject Pot"] = radial_eject_pot - - if(cartridge) - options["Eject Cartridge"] = radial_eject_cartridge - - options["Brew"] = radial_brew //brew is always available as an option, when the machine is unable to brew the player is told by balloon alerts whats exactly wrong - - if(coffee_cups > 0) - options["Take Cup"] = radial_take_cup - - if(sugar_packs > 0) - options["Take Sugar"] = radial_take_sugar - - if(sweetener_packs > 0) - options["Take Sweetener"] = radial_take_sweetener - - if(creamer_packs > 0) - options["Take Creamer"] = radial_take_creamer - - if(isAI(user)) - if(machine_stat & NOPOWER) - return - options["Examine"] = radial_examine - - var/choice - - if(length(options) < 1) - return - if(length(options) == 1) - choice = options[1] - else - choice = show_radial_menu(user, src, options, require_near = !issilicon(user)) - - // post choice verification - if(brewing || panel_open || !anchored || !user.canUseTopic(src, !issilicon(user))) - return - - switch(choice) - if("Brew") - brew(user) - if("Eject Pot") - eject_pot(user) - if("Eject Cartridge") - eject_cartridge(user) - if("Examine") - examine(user) - if("Take Cup") - take_cup(user) - if("Take Sugar") - take_sugar(user) - if("Take Sweetener") - take_sweetener(user) - if("Take Creamer") - take_creamer(user) - -/obj/machinery/coffeemaker/proc/eject_pot(mob/user) - if(coffeepot) - replace_pot(user) - -/obj/machinery/coffeemaker/proc/eject_cartridge(mob/user) - if(cartridge) - replace_cartridge(user) - -/obj/machinery/coffeemaker/proc/take_cup(mob/user) - if(!coffee_cups) //shouldn't happen, but we all know how stuff manages to break - balloon_alert(user, "no cups left!") - return - var/obj/item/reagent_containers/glass/coffee_cup/new_cup = new(get_turf(src)) - user.put_in_hands(new_cup) - coffee_cups-- - update_appearance(UPDATE_OVERLAYS) - -/obj/machinery/coffeemaker/proc/take_sugar(mob/user) - if(!sugar_packs) - balloon_alert(user, "no sugar left!") - return - var/obj/item/reagent_containers/food/condiment/pack/sugar/new_pack = new(get_turf(src)) - user.put_in_hands(new_pack) - sugar_packs-- - update_appearance(UPDATE_OVERLAYS) - -/obj/machinery/coffeemaker/proc/take_sweetener(mob/user) - if(!sweetener_packs) - balloon_alert(user, "no sweetener left!") - return - var/obj/item/reagent_containers/food/condiment/pack/astrotame/new_pack = new(get_turf(src)) - user.put_in_hands(new_pack) - sweetener_packs-- - update_appearance(UPDATE_OVERLAYS) - -/obj/machinery/coffeemaker/proc/take_creamer(mob/user) - if(!creamer_packs) - balloon_alert(user, "no creamer left!") - return - var/obj/item/reagent_containers/food/condiment/pack/creamer/new_pack = new(drop_location()) - user.put_in_hands(new_pack) - creamer_packs-- - update_appearance(UPDATE_OVERLAYS) - -///Updates the smoke state to something else, setting particles if relevant -/obj/machinery/coffeemaker/proc/toggle_steam() - QDEL_NULL(particles) - if(brewing) - particles.position = list(-6, 0, 0) - -/obj/machinery/coffeemaker/proc/operate_for(time, silent = FALSE) - brewing = TRUE - if(!silent) - playsound(src, 'sound/machines/coffeemaker_brew.ogg', 20, vary = TRUE) - toggle_steam() - use_power(active_power_usage * time * 0.1) // .1 needed here to convert time (in deciseconds) to seconds such that watts * seconds = joules - addtimer(CALLBACK(src, PROC_REF(stop_operating)), time / speed) - -/obj/machinery/coffeemaker/proc/stop_operating() - brewing = FALSE - toggle_steam() - -/obj/machinery/coffeemaker/proc/brew() - power_change() - if(!try_brew()) - return - operate_for(brew_time) - coffeepot.reagents.add_reagent_list(cartridge.drink_type) - cartridge.charges-- - -//Coffee Cartridges: like toner, but for your coffee! -/obj/item/coffee_cartridge - name = "coffeemaker cartridge- Caffè Generico" - desc = "A coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system." - icon = 'icons/obj/machines/coffeemaker.dmi' - icon_state = "cartridge_basic" - var/charges = 4 - var/list/drink_type = list(/datum/reagent/consumable/coffee = 120) - -/obj/item/coffee_cartridge/examine(mob/user) - . = ..() - if(charges) - . += span_warning("The cartridge has [charges] portions of grounds remaining.") - else - . += span_warning("The cartridge has no unspent grounds remaining.") - -/obj/item/coffee_cartridge/fancy - name = "coffeemaker cartridge - Caffè Fantasioso" - desc = "A fancy coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system." - icon_state = "cartridge_blend" - -//Here's the joke before I get 50 issue reports: they're all the same, and that's intentional -/obj/item/coffee_cartridge/fancy/Initialize(mapload) - . = ..() - var/coffee_type = pick("blend", "blue_mountain", "kilimanjaro", "mocha") - switch(coffee_type) - if("blend") - name = "coffeemaker cartridge - Miscela di Piccione" - icon_state = "cartridge_blend" - if("blue_mountain") - name = "coffeemaker cartridge - Montagna Blu" - icon_state = "cartridge_blue_mtn" - if("kilimanjaro") - name = "coffeemaker cartridge - Kilimangiaro" - icon_state = "cartridge_kilimanjaro" - if("mocha") - name = "coffeemaker cartridge - Moka Arabica" - icon_state = "cartridge_mocha" - -/obj/item/coffee_cartridge/decaf - name = "coffeemaker cartridge - Caffè Decaffeinato" - desc = "A decaf coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system." - icon_state = "cartridge_decaf" - -// no you can't just squeeze the juice bag into a glass! -/obj/item/coffee_cartridge/bootleg - name = "coffeemaker cartridge - Botany Blend" - desc = "A jury-rigged coffee cartridge. Should work with a Modello 3 system, though it might void the warranty." - icon_state = "cartridge_bootleg" - -// blank cartridge for crafting's sake, can be made at the service lathe -/obj/item/blank_coffee_cartridge - name = "blank coffee cartridge" - desc = "A blank coffee cartridge, ready to be filled with coffee paste." - icon = 'icons/obj/machines/coffeemaker.dmi' - icon_state = "cartridge_blank" - -//now, how do you store coffee carts? well, in a rack, of course! -/obj/item/storage/box/coffee_cart_rack - name = "coffeemaker cartridge box" - desc = "A small rack for storing coffeemaker cartridges." - var/cartridge_type = /obj/item/coffee_cartridge - -/obj/item/storage/box/coffee_cart_rack/Initialize(mapload) - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 8 - STR.can_hold = typecacheof(list(/obj/item/coffee_cartridge)) - - -/obj/item/storage/box/coffee_cart_rack/PopulateContents() - for(var/i in 1 to 4) - new cartridge_type(src) - new /obj/item/coffee_cartridge/decaf(src) - new /obj/item/coffee_cartridge/fancy(src) - new /obj/item/coffee_cartridge(src) - -/* - * impressa coffee maker - * its supposed to be a premium line product, so its cargo-only, the board cant be therefore researched - */ - -/obj/machinery/coffeemaker/impressa - name = "impressa coffeemaker" - desc = "An industry-grade Impressa Modello 5 Coffeemaker of the Piccionaia Home Appliances premium coffeemakers product line. Makes coffee from fresh dried whole beans." - icon = 'icons/obj/machines/coffeemaker.dmi' - icon_state = "coffeemaker_impressa" - circuit = /obj/item/circuitboard/machine/coffeemaker/impressa - initial_cartridge = null //no cartridge, just coffee beans - brew_time = 15 SECONDS //industrial grade, its faster than the regular one - density = TRUE - pass_flags = PASSTABLE - /// Current amount of coffee beans stored - var/coffee_amount = 0 - /// List of coffee bean objects are stored - var/list/coffee = list() - -/obj/machinery/coffeemaker/impressa/Initialize(mapload) - . = ..() - if(mapload) - coffeepot = new /obj/item/reagent_containers/food/drinks/bottle/coffeepot(src) - cartridge = null - -/obj/machinery/coffeemaker/impressa/Destroy() - QDEL_NULL(coffeepot) - QDEL_NULL(coffee) - return ..() - -/obj/machinery/coffeemaker/impressa/examine(mob/user) - . = ..() - if(coffee) - . += span_notice("The internal grinder contains [length(coffee)] scoop\s of coffee beans") - -/obj/machinery/coffeemaker/impressa/update_overlays() - . = ..() - . += overlay_checks() - -/obj/machinery/coffeemaker/impressa/overlay_checks() - . = list() - if(coffeepot) - if(coffeepot.reagents.total_volume > 0) - . += "pot_full" - else - . += "pot_empty" - if(coffee_cups > 0) - if(coffee_cups >= max_coffee_cups/3) - if(coffee_cups > max_coffee_cups/1.5) - . += "cups_3" - else - . += "cups_2" - else - . += "cups_1" - if(sugar_packs) - . += "extras_1" - if(creamer_packs) - . += "extras_2" - if(sweetener_packs) - . += "extras_3" - if(coffee_amount) - if(coffee_amount < 0.7*BEAN_CAPACITY) - . += "grinder_half" - else - . += "grinder_full" - return . - -/obj/machinery/coffeemaker/impressa/Exited(atom/movable/gone, direction) - . = ..() - if(gone in coffee) - coffee -= gone - update_appearance(UPDATE_OVERLAYS) - -/obj/machinery/coffeemaker/impressa/try_brew(mob/living/user) - if(coffee_amount <= 0) - balloon_alert(user, "no coffee beans added!") - return FALSE - if(!coffeepot) - balloon_alert(user, "no coffeepot inside!") - return FALSE - if(machine_stat & (NOPOWER|BROKEN)) - balloon_alert(user, "machine unpowered!") - return FALSE - if(coffeepot.reagents.total_volume >= coffeepot.reagents.maximum_volume) - balloon_alert(user, "the coffeepot is already full!") - return FALSE - return TRUE - -/obj/machinery/coffeemaker/impressa/attackby(obj/item/attack_item, mob/living/user, params) - //You can only screw open empty grinder - if(!coffeepot && default_deconstruction_screwdriver(user, icon_state, icon_state, attack_item)) - return - - if(default_deconstruction_crowbar(attack_item)) - return - - if(panel_open) //Can't insert objects when its screwed open - return TRUE - - if (istype(attack_item, /obj/item/reagent_containers/food/drinks/bottle/coffeepot) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container()) - var/obj/item/reagent_containers/food/drinks/bottle/coffeepot/new_pot = attack_item - if(!user.transferItemToLoc(new_pot, src)) - return TRUE - replace_pot(user, new_pot) - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/reagent_containers/glass/coffee_cup) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container()) - var/obj/item/reagent_containers/glass/coffee_cup/new_cup = attack_item //different type of cup - if(new_cup.reagents.total_volume > 0) - balloon_alert(user, "the cup must be empty!") - return - if(coffee_cups >= max_coffee_cups) - balloon_alert(user, "the cup holder is full!") - return - if(!user.transferItemToLoc(attack_item, src)) - return - coffee_cups++ - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/sugar)) - var/obj/item/reagent_containers/food/condiment/pack/sugar/new_pack = attack_item - if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) - balloon_alert(user, "the pack must be full!") - return - if(sugar_packs >= max_sugar_packs) - balloon_alert(user, "the sugar compartment is full!") - return - if(!user.transferItemToLoc(attack_item, src)) - return - sugar_packs++ - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/creamer)) - var/obj/item/reagent_containers/food/condiment/pack/creamer/new_pack = attack_item - if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) - balloon_alert(user, "the pack must be full!") - return - if(creamer_packs >= max_creamer_packs) - balloon_alert(user, "the creamer compartment is full!") - return - if(!user.transferItemToLoc(attack_item, src)) - return - creamer_packs++ - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/reagent_containers/food/condiment/pack/astrotame)) - var/obj/item/reagent_containers/food/condiment/pack/astrotame/new_pack = attack_item - if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume) - balloon_alert(user, "the pack must be full!") - return - if(sweetener_packs >= max_sweetener_packs) - balloon_alert(user, "the sweetener compartment is full!") - return - if(!user.transferItemToLoc(attack_item, src)) - return - sweetener_packs++ - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - - if (istype(attack_item, /obj/item/reagent_containers/food/snacks/grown/coffee) && !(attack_item.item_flags & ABSTRACT)) - if(coffee_amount >= BEAN_CAPACITY) - balloon_alert(user, "the coffee container is full!") - return - var/obj/item/reagent_containers/food/snacks/grown/coffee/new_coffee = attack_item - if(!user.transferItemToLoc(new_coffee, src)) - return - coffee += new_coffee - coffee_amount++ - balloon_alert(user, "added coffee") - - - if (istype(attack_item, /obj/item/storage/box/coffeepack)) - if(coffee_amount >= BEAN_CAPACITY) - balloon_alert(user, "the coffee container is full!") - return - var/obj/item/storage/box/coffeepack/new_coffee_pack = attack_item - for(var/obj/item/reagent_containers/food/snacks/grown/coffee/new_coffee in new_coffee_pack.contents) - if(coffee_amount < BEAN_CAPACITY) - if(user.transferItemToLoc(new_coffee, src)) - coffee += new_coffee - coffee_amount++ - new_coffee.forceMove(src) - balloon_alert(user, "added coffee") - update_appearance(UPDATE_OVERLAYS) - else - return - update_appearance(UPDATE_OVERLAYS) - return TRUE //no afterattack - -/obj/machinery/coffeemaker/impressa/take_cup(mob/user) - if(!coffee_cups) //shouldn't happen, but we all know how stuff manages to break - balloon_alert(user, "no cups left!") - return - balloon_alert_to_viewers("took cup") - var/obj/item/reagent_containers/food/drinks/coffee/new_cup = new(get_turf(src)) - user.put_in_hands(new_cup) - coffee_cups-- - update_appearance(UPDATE_OVERLAYS) - -/obj/machinery/coffeemaker/impressa/toggle_steam() - QDEL_NULL(particles) - if(brewing) - particles.position = list(-2, 1, 0) - -/obj/machinery/coffeemaker/impressa/brew() - power_change() - if(!try_brew()) - return - operate_for(brew_time) - coffeepot.reagents.add_reagent_list(list(/datum/reagent/consumable/coffee = 120)) - coffee.Cut(1,2) //remove the first item from the list - coffee_amount-- - update_appearance(UPDATE_OVERLAYS) - -#undef BEAN_CAPACITY diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 4fa5354339c5..8eccd04c8404 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -25,7 +25,7 @@ icon_state = "fryer_off" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 + idle_power_usage = IDLE_DRAW_LOW layer = BELOW_OBJ_LAYER var/obj/item/reagent_containers/food/snacks/deepfryholder/frying //What's being fried RIGHT NOW? var/cook_time = 0 diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index fad3c3bc963f..7be027c012f4 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -5,8 +5,8 @@ icon_state = "grinder" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 500 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/gibber var/operating = FALSE //Is it on? diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 4a739d2ab7fc..678016182428 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -8,8 +8,8 @@ layer = BELOW_OBJ_LAYER density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/microwave pass_flags = PASSTABLE light_color = LIGHT_COLOR_YELLOW @@ -275,6 +275,7 @@ /obj/machinery/microwave/proc/start() wzhzhzh() + set_active_power() loop(MICROWAVE_NORMAL, 10) /obj/machinery/microwave/proc/start_can_fail() @@ -303,11 +304,11 @@ pre_success() return time-- - use_power(500) addtimer(CALLBACK(src, PROC_REF(loop), type, time, wait), wait) /obj/machinery/microwave/proc/loop_finish() operating = FALSE + set_idle_power() var/metal = 0 for(var/obj/item/O in ingredients) @@ -330,6 +331,7 @@ /obj/machinery/microwave/proc/pre_fail() broken = 2 operating = FALSE + set_idle_power() spark() after_finish_loop() @@ -338,6 +340,7 @@ /obj/machinery/microwave/proc/muck_finish() visible_message("\The [src] gets covered in muck!") + set_idle_power() dirty = 100 dirty_anim_playing = FALSE diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 005ffa7632ba..79382343e1ae 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -8,8 +8,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) layer = BELOW_OBJ_LAYER density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/monkey_recycler var/stored_matter = 0 var/cube_production = 0.2 diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index ba26a265f8ee..bc17a9fd22af 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -7,8 +7,8 @@ layer = BELOW_OBJ_LAYER density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/processor var/broken = FALSE var/processing = FALSE diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index ed1347fb5124..5852ea34742b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -9,8 +9,8 @@ layer = BELOW_OBJ_LAYER density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/smartfridge var/max_n_of_items = 1500 @@ -245,8 +245,9 @@ icon = 'icons/obj/hydroponics/equipment.dmi' icon_state = "drying_rack" use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 200 + circuit = null + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL visible_contents = FALSE var/drying = FALSE @@ -258,7 +259,6 @@ /obj/machinery/smartfridge/drying_rack/on_deconstruction() new /obj/item/stack/sheet/mineral/wood(drop_location(), 10) - ..() /obj/machinery/smartfridge/drying_rack/RefreshParts() /obj/machinery/smartfridge/drying_rack/default_deconstruction_screwdriver() @@ -326,10 +326,10 @@ /obj/machinery/smartfridge/drying_rack/proc/toggle_drying(forceoff) if(drying || forceoff) drying = FALSE - use_power = IDLE_POWER_USE + set_idle_power() else drying = TRUE - use_power = ACTIVE_POWER_USE + set_active_power() update_appearance() /obj/machinery/smartfridge/drying_rack/proc/rack_dry() diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index 0d7f403b538d..d0558f94fdb5 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -152,7 +152,7 @@ /datum/reagent/water = 10, /obj/item/reagent_containers/glass/bowl = 1, /obj/item/reagent_containers/food/snacks/grown/banana = 1, - /obj/item/stack/ore/bananium = 1 + /obj/item/stack/sheet/mineral/hidden/hellstone = 1 ) result = /obj/item/reagent_containers/food/snacks/soup/clownstears subcategory = CAT_SOUP diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index f1a5862649a4..d56fd4f9c32c 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -152,8 +152,8 @@ var/eventstarted = FALSE use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL power_channel = AREA_USAGE_ENVIRON /obj/machinery/readybutton/attack_ai(mob/user as mob) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index e9e40fd167b8..c3bcc09940d0 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -5,7 +5,7 @@ icon_state = "biogen-empty" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 40 + idle_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/biogenerator var/processing = FALSE var/obj/item/reagent_containers/glass/beaker = null diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 7fa710323207..ed58e86e16dc 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -69,20 +69,19 @@ /obj/item/reagent_containers/food/snacks/grown/attackby(obj/item/O, mob/user, params) ..() if (istype(O, /obj/item/plant_analyzer)) - var/msg = "*---------*\n This is \a [src].\n" + var/msg = "This is \a [src].\n" if(seed) - msg += seed.get_analyzer_text() + msg += "[seed.get_analyzer_text()]\n" var/reag_txt = "" if(seed) for(var/reagent_id in seed.reagents_add) var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] var/amt = reagents.get_reagent_amount(reagent_id) - reag_txt += "\n- [R.name]: [amt]" + reag_txt += "- [R.name]: [amt]\n" if(reag_txt) msg += reag_txt - msg += "
*---------*" - to_chat(user, msg) + to_chat(user, examine_block(msg)) else if(seed) for(var/datum/plant_gene/trait/T in seed.genes) diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index a8b9d5f8d034..a93d706a99b9 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -39,7 +39,7 @@ /obj/item/seeds/kudzu/attack_self(mob/user) user.visible_message("[user] begins throwing seeds on the ground...") - if(do_after(user, 50, needhand = TRUE, target = user.drop_location(), progress = TRUE)) + if(do_after(user, 50, target = user.drop_location(), progress = TRUE)) plant(user) to_chat(user, "You plant the kudzu. You monster.") diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index 3ecb34762ae1..f97596c348f2 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -35,11 +35,10 @@ /obj/item/grown/attackby(obj/item/O, mob/user, params) ..() if (istype(O, /obj/item/plant_analyzer)) - var/msg = "*---------*\n This is \a [src]\n" + var/msg = "This is \a [src]\n" if(seed) msg += seed.get_analyzer_text() - msg += "" - to_chat(usr, msg) + to_chat(usr, examine_block(msg)) return /obj/item/grown/proc/add_juice() diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a5e66f6df4ef..bbfeaeeb5b5a 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -1,3 +1,6 @@ +#define HYDRO_MAX_PEST 10 +#define HYDRO_MAX_WEED 10 +#define HYDRO_MAX_TOXIC 100 /obj/machinery/hydroponics name = "hydroponics tray" icon = 'icons/obj/hydroponics/equipment.dmi' @@ -6,7 +9,9 @@ pixel_z = 1 obj_flags = CAN_BE_HIT | UNIQUE_RENAME circuit = /obj/item/circuitboard/machine/hydroponics - idle_power_usage = 0 + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_HIGH var/waterlevel = 100 //The amount of water in the tray (max 100) var/maxwater = 100 //The maximum amount of water in the tray var/nutridrain = 1 // How many units of nutrient will be drained in the tray @@ -114,7 +119,7 @@ if(!powered() && self_sustaining) visible_message("[name]'s auto-grow functionality shuts off!") - idle_power_usage = 0 + set_idle_power() self_sustaining = FALSE update_appearance() @@ -253,7 +258,7 @@ adjustWeeds(1 / rating) // Weeeeeeeeeeeeeeedddssss - if(weedlevel >= 10 && prob(50)) // At this point the plant is kind of fucked. Weeds can overtake the plant spot. + if(weedlevel >= HYDRO_MAX_WEED && prob(50)) // At this point the plant is kind of fucked. Weeds can overtake the plant spot. if(myseed) if(!myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy) && !myseed.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) // If a normal plant weedinvasion() @@ -549,25 +554,26 @@ else if(istype(O, /obj/item/plant_analyzer)) var/obj/item/plant_analyzer/P_analyzer = O + var/msg = "" if(myseed) if(P_analyzer.scan_mode == PLANT_SCANMODE_STATS) - to_chat(user, examine_block("[myseed.plantname]")) - to_chat(user, examine_block("Plant Age: [age]")) + msg += "[myseed.plantname]\n" + msg += "- Plant Age: [span_notice("[age]\n")]" var/list/text_string = myseed.get_analyzer_text() if(text_string) - to_chat(user, examine_block(text_string)) + msg += "[text_string]\n" if(myseed.reagents_add && P_analyzer.scan_mode == PLANT_SCANMODE_CHEMICALS) - to_chat(user, examine_block("Plant Reagents")) + msg += "Plant Reagents\n" for(var/datum/plant_gene/reagent/Gene in myseed.genes) - to_chat(user, examine_block("- [Gene.get_name()] -")) + msg += "[span_notice("- [Gene.get_name()] -")]\n" else - to_chat(user, examine_block( "No plant found.")) - to_chat(user, examine_block("\nWeed level: [weedlevel] / 10")) - to_chat(user, examine_block("\nPest level: [pestlevel] / 10")) - to_chat(user, examine_block("\nToxicity level: [toxic] / 100")) - to_chat(user, examine_block("\nWater level: [waterlevel] / [maxwater]")) - to_chat(user, examine_block("\nNutrition level: [reagents.total_volume] / [maxnutri]")) - to_chat(user, examine_block("
")) + msg += "No plant found.\n" + msg += "Weed level: [span_notice("[weedlevel] / [HYDRO_MAX_WEED]")]\n" + msg += "Pest level: [span_notice("[pestlevel] / [HYDRO_MAX_PEST]")]\n" + msg += "Toxicity level: [span_notice("[toxic] / [HYDRO_MAX_TOXIC]")]\n" + msg += "Water level: [span_notice("[waterlevel] / [maxwater]")]\n" + msg += "Nutrition level: [span_notice("[reagents.total_volume] / [maxnutri]")]\n" + to_chat(user, examine_block(msg)) return else if(istype(O, /obj/item/cultivator)) @@ -671,7 +677,10 @@ if(!anchored) return self_sustaining = !self_sustaining - idle_power_usage = self_sustaining ? 1250 : 0 + if(self_sustaining) + set_active_power() + else + set_idle_power() to_chat(user, "You [self_sustaining ? "activate" : "deactivated"] [src]'s autogrow function[self_sustaining ? ", maintaining the tray's health while using high amounts of power" : ""].") update_appearance() @@ -702,7 +711,7 @@ desc = initial(desc) TRAY_NAME_UPDATE if(self_sustaining) //No reason to pay for an empty tray. - idle_power_usage = 0 + set_idle_power() self_sustaining = FALSE update_appearance() @@ -718,13 +727,13 @@ plant_health = clamp(plant_health + adjustamt, 0, myseed.endurance) /obj/machinery/hydroponics/proc/adjustToxic(adjustamt) - toxic = clamp(toxic + adjustamt, 0, 100) + toxic = clamp(toxic + adjustamt, 0, HYDRO_MAX_TOXIC) /obj/machinery/hydroponics/proc/adjustPests(adjustamt) - pestlevel = clamp(pestlevel + adjustamt, 0, 10) + pestlevel = clamp(pestlevel + adjustamt, 0, HYDRO_MAX_PEST) /obj/machinery/hydroponics/proc/adjustWeeds(adjustamt) - weedlevel = clamp(weedlevel + adjustamt, 0, 10) + weedlevel = clamp(weedlevel + adjustamt, 0, HYDRO_MAX_WEED) /obj/machinery/hydroponics/proc/spawnplant() // why would you put strange reagent in a hydro tray you monster I bet you also feed them blood var/list/livingplants = list(/mob/living/simple_animal/hostile/tree, /mob/living/simple_animal/hostile/killertomato) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 008009a35765..ad24dccff43d 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -390,29 +390,29 @@ /obj/item/seeds/proc/get_analyzer_text() //in case seeds have something special to tell to the analyzer var/text = "" if(!get_gene(/datum/plant_gene/trait/plant_type/weed_hardy) && !get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism) && !get_gene(/datum/plant_gene/trait/plant_type/alien_properties)) - text += "- Plant type: Normal plant\n" + text += "- Plant type: [span_notice("Normal plant\n")]" if(get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) - text += "- Plant type: Weed. Can grow in nutrient-poor soil.\n" + text += "- Plant type: [span_notice("Weed. Can grow in nutrient-poor soil.\n")]" if(get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) - text += "- Plant type: Mushroom. Can grow in dry soil.\n" + text += "- Plant type: [span_notice("Mushroom. Can grow in dry soil.\n")]" if(get_gene(/datum/plant_gene/trait/plant_type/crystal)) - text += "- Plant type: Crystal. Revitalizes soil.\n" + text += "- Plant type: [span_notice("Crystal. Revitalizes soil.\n")]" if(get_gene(/datum/plant_gene/trait/plant_type/alien_properties)) - text += "- Plant type: UNKNOWN \n" + text += "- Plant type: [span_warning("UNKNOWN\n")]" if(potency != UNHARVESTABLE) - text += "- Potency: [potency]\n" + text += "- Potency: [span_notice("[potency]\n")]" if(yield != UNHARVESTABLE) - text += "- Yield: [yield]\n" - text += "- Maturation speed: [maturation]\n" + text += "- Yield: [span_notice("[yield]\n")]" + text += "- Maturation speed: [span_notice("[maturation]\n")]" if(yield != UNHARVESTABLE) - text += "- Production speed: [production]\n" - text += "- Endurance: [endurance]\n" - text += "- Lifespan: [lifespan]\n" - text += "- Instability: [instability]\n" - text += "- Weed Growth Rate: [weed_rate]\n" - text += "- Weed Vulnerability: [weed_chance]\n" + text += "- Production speed: [span_notice("[production]\n")]" + text += "- Endurance: [span_notice("[endurance]\n")]" + text += "- Lifespan: [span_notice("[lifespan]\n")]" + text += "- Instability: [span_notice("[instability]\n")]" + text += "- Weed Growth Rate: [span_notice("[weed_rate]\n")]" + text += "- Weed Vulnerability: [span_notice("[weed_chance]\n")]" if(rarity) - text += "- Species Discovery Value: [rarity]\n" + text += "- Species Discovery Value: [span_notice("[rarity]\n")]" var/all_traits = "" for(var/datum/plant_gene/trait/traits in genes) if(istype(traits, /datum/plant_gene/trait/plant_type)) @@ -427,20 +427,20 @@ /obj/item/seeds/attackby(obj/item/O, mob/user, params) if (istype(O, /obj/item/plant_analyzer)) - to_chat(user, "*---------*\n This is \a [src].") + var/msg = "This is \a [src]." var/text var/obj/item/plant_analyzer/P_analyzer = O if(P_analyzer.scan_mode == PLANT_SCANMODE_STATS) text = get_analyzer_text() if(text) - to_chat(user, "[text]") + msg += "\n[text]" if(reagents_add && P_analyzer.scan_mode == PLANT_SCANMODE_CHEMICALS) - to_chat(user, "- Plant Reagents -") - to_chat(user, "*---------*") + msg += "\n- Plant Reagents -" + msg += "\n*---------*" for(var/datum/plant_gene/reagent/Gene in genes) - to_chat(user, "- [Gene.get_name()] -") - to_chat(user, "*---------*") - + msg += "\n- [Gene.get_name()] -" + msg += "\n*---------*" + to_chat(user, examine_block(msg)) return diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 786f9e798e43..a5fed7b7fe91 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -27,8 +27,7 @@ gloves = /obj/item/clothing/gloves/color/captain ears = /obj/item/radio/headset/heads/captain uniform = /obj/item/clothing/under/rank/command/captain - alt_uniform = /obj/item/clothing/under/rank/command/captain/parade //WS Edit - Alt Uniforms - dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain //WS Edit - Alt Uniforms + dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/caphat backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1) diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm index c4263a771b0d..69155c9230d8 100644 --- a/code/modules/library/lib_codex_gigas.dm +++ b/code/modules/library/lib_codex_gigas.dm @@ -48,7 +48,7 @@ correctness = 100 correctness -= U.getOrganLoss(ORGAN_SLOT_BRAIN) * 0.5 //Brain damage makes researching hard. speed += U.getOrganLoss(ORGAN_SLOT_BRAIN) * 3 - if(do_after(user, speed, 0, user)) + if(do_after(user, speed, user, timed_action_flags = IGNORE_HELD_ITEM)) var/usedName = devilName if(!prob(correctness)) usedName += "x" @@ -59,7 +59,7 @@ inUse = FALSE /obj/item/book/codex_gigas/proc/display_devil(datum/antagonist/devil/devil, mob/reader, devilName) - reader << browse("Information on [devilName]


[GLOB.lawlorify[LORE][devil.ban]]
[GLOB.lawlorify[LORE][devil.bane]]
[GLOB.lawlorify[LORE][devil.obligation]]
[GLOB.lawlorify[LORE][devil.banish]]
[devil.ascendable?"This devil may ascend given enough souls.":""]", "window=book[window_size != null ? ";size=[window_size]" : ""]") + reader << browse("Information on [devilName]


[GLOB.lawlorify[LORE][devil.ban]]
[GLOB.lawlorify[LORE][devil.obligation]]
[GLOB.lawlorify[LORE][devil.banish]]
[devil.ascendable?"This devil may ascend given enough souls.":""]", "window=book[window_size != null ? ";size=[window_size]" : ""]") /obj/item/book/codex_gigas/proc/ask_name(mob/reader) ui_interact(reader) diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 613a68a2de47..d86cfebf1197 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -192,7 +192,7 @@ if(77 to 78) new /obj/item/toy/plush/lizardplushie(src) if(79 to 80) - new /obj/item/stack/sheet/mineral/bananium(src, 10) + new /obj/item/stack/sheet/mineral/hidden/hellstone(src, 10) if(81 to 82) new /obj/item/bikehorn/airhorn(src) if(83 to 84) diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 41fce675bf70..46c20dd02e1b 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -1,7 +1,7 @@ /****************Explorer's Suit and Mask****************/ /obj/item/clothing/suit/hooded/explorer name = "explorer suit" - desc = "A light, armor-plated softsuit, designed for exploration of dangerous planetary enviroments. An NT design by origin, later reappropriated by EXOCON for mass retail production." + desc = "A light, armor-plated softsuit, designed for exploration of dangerous planetary enviroments. An NT design by origin, later reappropriated by EXOCOM for mass retail production." icon_state = "explorer" item_state = "explorer" body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -10,7 +10,7 @@ max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT heat_protection = CHEST|GROIN|LEGS|ARMS hoodtype = /obj/item/clothing/head/hooded/explorer - armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50) + armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50) allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION @@ -23,7 +23,7 @@ flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT - armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50) + armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50) resistance_flags = FIRE_PROOF /obj/item/clothing/suit/hooded/explorer/Initialize() @@ -36,7 +36,7 @@ /obj/item/clothing/mask/gas/explorer name = "explorer gas mask" - desc = "An advanced atmospheric scrubbing mask with a built-in pressure seal, manufactured by EXOCON. Can be connected to an air supply." + desc = "An advanced atmospheric scrubbing mask with a built-in pressure seal, manufactured by EXOCOM. Can be connected to an air supply." icon_state = "gas_mining" visor_flags = BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS visor_flags_inv = HIDEFACIALHAIR @@ -166,7 +166,7 @@ max_heat_protection_temperature = (FIRE_SUIT_MAX_TEMP_PROTECT / 2) heat_protection = CHEST|GROIN|LEGS|ARMS hoodtype = /obj/item/clothing/head/hooded/survivor_hood - armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30) + armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30) allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION @@ -180,7 +180,7 @@ flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT - armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30) + armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30) resistance_flags = FIRE_PROOF /obj/item/clothing/suit/hooded/survivor/Initialize() diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index debdb2e2ea02..030e592d80cd 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -6,7 +6,7 @@ lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi' name = "proto-magnetic crusher" - desc = "A multipurpose disembarkation and self-defense tool designed by EXOCON using an incomplete Nanotrasen prototype. \ + desc = "A multipurpose disembarkation and self-defense tool designed by EXOCOM using an incomplete Nanotrasen prototype. \ Found in the grime-stained hands of wannabee explorers across the frontier, it cuts rock and hews flora using magnetic osscilation and a heavy cleaving edge." force = 0 //You can't hit stuff unless wielded w_class = WEIGHT_CLASS_BULKY @@ -24,7 +24,6 @@ light_range = 5 light_on = FALSE custom_price = 800 - var/list/trophies = list() var/charged = TRUE var/charge_time = 15 var/detonation_damage = 20 @@ -41,10 +40,6 @@ AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=15) -/obj/item/kinetic_crusher/Destroy() - QDEL_LIST(trophies) - return ..() - /// triggered on wield of two handed item /obj/item/kinetic_crusher/proc/on_wield(obj/item/source, mob/user) wielded = TRUE @@ -57,30 +52,6 @@ . = ..() . += "Induce magnetism in an enemy by striking them with a magnetospheric wave, then hit them in melee to force a waveform collapse for [force + detonation_damage] damage." . += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]." - for(var/t in trophies) - var/obj/item/crusher_trophy/T = t - . += "It has \a [T] attached, which causes [T.effect_desc()]." - -/obj/item/kinetic_crusher/attackby(obj/item/I, mob/living/user) - if(I.tool_behaviour == TOOL_CROWBAR) - if(LAZYLEN(trophies)) - var/list/choose_options = list() - for(var/obj/item/crusher_trophy/T in trophies) - choose_options += list(T.name = image(icon = T.icon, icon_state = T.icon_state)) - var/picked_option = show_radial_menu(user, src, choose_options, radius = 38, require_near = TRUE) - if(picked_option) - to_chat(user, "You remove [picked_option].") - I.play_tool_sound(src) - for(var/obj/item/crusher_trophy/T in trophies) - if(T.name == picked_option) - T.remove_from(src, user) - else - to_chat(user, "There are no trophies on [src].") - else if(istype(I, /obj/item/crusher_trophy)) - var/obj/item/crusher_trophy/T = I - T.add_to(src, user) - else - return ..() /obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user) if(!wielded) @@ -90,10 +61,6 @@ var/datum/status_effect/crusher_damage/C = target.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) var/target_health = target.health ..() - for(var/t in trophies) - if(!QDELETED(target)) - var/obj/item/crusher_trophy/T = t - T.on_melee_hit(target, user) if(!QDELETED(C) && !QDELETED(target)) C.total_damage += target_health - target.health //we did some damage, but let's not assume how much we did @@ -106,9 +73,6 @@ if(!isturf(proj_turf)) return var/obj/projectile/destabilizer/D = new /obj/projectile/destabilizer(proj_turf) - for(var/t in trophies) - var/obj/item/crusher_trophy/T = t - T.on_projectile_fire(D, user) D.preparePixelProjectile(target, user, clickparams) D.firer = user D.hammer_synced = src @@ -125,9 +89,6 @@ return var/datum/status_effect/crusher_damage/C = L.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) var/target_health = L.health - for(var/t in trophies) - var/obj/item/crusher_trophy/T = t - T.on_mark_detonation(target, user) if(!QDELETED(L)) if(!QDELETED(C)) C.total_damage += target_health - L.health //we did some damage, but let's not assume how much we did @@ -186,12 +147,7 @@ /obj/projectile/destabilizer/on_hit(atom/target, blocked = FALSE) if(isliving(target)) var/mob/living/L = target - var/had_effect = (L.has_status_effect(STATUS_EFFECT_CRUSHERMARK)) //used as a boolean - var/datum/status_effect/crusher_mark/CM = L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced) - if(hammer_synced) - for(var/t in hammer_synced.trophies) - var/obj/item/crusher_trophy/T = t - T.on_mark_application(target, CM, had_effect) + L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced) var/target_turf = get_turf(target) if(ismineralturf(target_turf)) var/turf/closed/mineral/M = target_turf @@ -199,535 +155,6 @@ M.gets_drilled(firer, TRUE) ..() -//trophies -/obj/item/crusher_trophy - name = "tail spike" - desc = "A strange spike with no usage." - icon = 'icons/obj/lavaland/artefacts.dmi' - icon_state = "tail_spike" - var/bonus_value = 10 //if it has a bonus effect, this is how much that effect is - var/denied_type = /obj/item/crusher_trophy - -/obj/item/crusher_trophy/examine(mob/living/user) - . = ..() - . += "Causes [effect_desc()] when attached to a kinetic crusher." - -/obj/item/crusher_trophy/proc/effect_desc() - return "errors" - -/obj/item/crusher_trophy/attackby(obj/item/A, mob/living/user) - if(istype(A, /obj/item/kinetic_crusher)) - add_to(A, user) - else - ..() - -/obj/item/crusher_trophy/proc/add_to(obj/item/kinetic_crusher/H, mob/living/user) - for(var/t in H.trophies) - var/obj/item/crusher_trophy/T = t - if(istype(T, denied_type) || istype(src, T.denied_type)) - to_chat(user, "You can't seem to attach [src] to [H]. Maybe remove a few trophies?") - return FALSE - if(!user.transferItemToLoc(src, H)) - return - H.trophies += src - to_chat(user, "You attach [src] to [H].") - return TRUE - -/obj/item/crusher_trophy/proc/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - forceMove(get_turf(H)) - H.trophies -= src - return TRUE - -/obj/item/crusher_trophy/proc/on_melee_hit(mob/living/target, mob/living/user) //the target and the user -/obj/item/crusher_trophy/proc/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) //the projectile fired and the user -/obj/item/crusher_trophy/proc/on_mark_application(mob/living/target, datum/status_effect/crusher_mark/mark, had_mark) //the target, the mark applied, and if the target had a mark before -/obj/item/crusher_trophy/proc/on_mark_detonation(mob/living/target, mob/living/user) //the target and the user - -//goliath -/obj/item/crusher_trophy/goliath_tentacle - name = "goliath tentacle" - desc = "A sliced-off goliath tentacle." - icon_state = "goliath_tentacle" - denied_type = /obj/item/crusher_trophy/goliath_tentacle - bonus_value = 5 - var/missing_health_ratio = 0.1 - var/missing_health_desc = 10 - -/obj/item/crusher_trophy/goliath_tentacle/effect_desc() - return "waveform collapse to do [bonus_value] more damage for every [missing_health_desc] health you are missing" - -/obj/item/crusher_trophy/goliath_tentacle/on_mark_detonation(mob/living/target, mob/living/user) - var/missing_health = user.maxHealth - user.health - missing_health *= missing_health_ratio //bonus is active at all times, even if you're above 90 health - missing_health *= bonus_value //multiply the remaining amount by bonus_value - if(missing_health > 0) - target.adjustBruteLoss(missing_health) //and do that much damage - -//ancient goliath -/obj/item/crusher_trophy/elder_tentacle - name = "elder tentacle" - desc = "The barbed tip of a tentacle sliced from an incredibly ancient goliath." - icon_state = "elder_tentacle" - denied_type = /obj/item/crusher_trophy/elder_tentacle - bonus_value = 3 - var/missing_health_ratio = 0.1 - var/missing_health_desc = 5 - icon = 'icons/obj/lavaland/elite_trophies.dmi' - -/obj/item/crusher_trophy/elder_tentacle/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/elder_tentacle/effect_desc() - return "waveform collapse to do [bonus_value] more damage for every [missing_health_desc] health you are missing" - -/obj/item/crusher_trophy/elder_tentacle/on_mark_detonation(mob/living/target, mob/living/user) - var/missing_health = user.maxHealth - user.health - missing_health *= missing_health_ratio //bonus is active at all times, even if you're above 90 health - missing_health *= bonus_value //multiply the remaining amount by bonus_value - if(missing_health > 0) - target.adjustBruteLoss(missing_health) //and do that much damage - -//crystal goliath -/obj/item/crusher_trophy/goliath_crystal - name = "goliath crystal" - desc = "A crystal ripped off from a goliath infected by the strange crystals. You can see the original skin of the goliath deeply embeded in it." - icon_state = "goliath_crystal" - denied_type = /obj/item/crusher_trophy/elder_tentacle - bonus_value = 4 - var/missing_health_ratio = 0.1 - var/missing_health_desc = 5 - -/obj/item/crusher_trophy/goliath_crystal/effect_desc() - return "waveform collapse to stun creatures for [bonus_value*0.1] second\s" - -/obj/item/crusher_trophy/goliath_crystal/on_mark_detonation(mob/living/simple_animal/target, mob/living/user) - if(!ishostile(target)) - return - var/mob/living/simple_animal/hostile/hostile_target = target - var/hostile_ai_status = hostile_target.AIStatus - hostile_target.AIStatus = AI_OFF - addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status), bonus_value*0.1 SECONDS) - -//watcher -/obj/item/crusher_trophy/watcher_wing - name = "watcher wing" - desc = "A wing ripped from a watcher." - icon_state = "watcher_wing" - denied_type = /obj/item/crusher_trophy/watcher_wing - bonus_value = 5 - -/obj/item/crusher_trophy/watcher_wing/effect_desc() - return "waveform collapse to prevent certain creatures from using certain attacks for [bonus_value*0.1] second\s" - -/obj/item/crusher_trophy/watcher_wing/on_mark_detonation(mob/living/target, mob/living/user) - if(ishostile(target)) - var/mob/living/simple_animal/hostile/H = target - if(H.ranged) //briefly delay ranged attacks - if(H.ranged_cooldown >= world.time) - H.ranged_cooldown += bonus_value - else - H.ranged_cooldown = bonus_value + world.time - -//magmawing watcher -/obj/item/crusher_trophy/magma_wing - name = "magmatic sinew" - desc = "A fuming organ, dropped by beings hotter then lava." - icon_state = "magma_wing" - denied_type = /obj/item/crusher_trophy/magma_wing - gender = NEUTER - bonus_value = 5 - var/deadly_shot = FALSE - -/obj/item/crusher_trophy/magma_wing/effect_desc() - return "waveform collapse to make the next magnetic pulse deal [bonus_value] damage" - -/obj/item/crusher_trophy/magma_wing/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/magma_wing/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) - if(deadly_shot) - marker.name = "superheated [marker.name]" - marker.icon_state = "lava" - marker.damage = bonus_value - marker.nodamage = FALSE - marker.speed = 2 - deadly_shot = FALSE - -/obj/item/crusher_trophy/magma_wing/on_mark_detonation(mob/living/target, mob/living/user) - deadly_shot = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) - -/obj/item/crusher_trophy/magma_wing/proc/reset_deadly_shot() - deadly_shot = FALSE - -//icewing watcher -/obj/item/crusher_trophy/ice_wing - name = "frigid sinew" - desc = "A carefully-preserved freezing organ, dropped by chilling beings." - icon_state = "ice_wing" - bonus_value = 8 - denied_type = /obj/item/crusher_trophy/ice_wing - -/obj/item/crusher_trophy/ice_wing/effect_desc() - return "waveform collapse to prevent certain creatures from using certain attacks for [bonus_value*0.1] second\s" - -/obj/item/crusher_trophy/ice_wing/on_mark_detonation(mob/living/target, mob/living/user) - if(ishostile(target)) - var/mob/living/simple_animal/hostile/H = target - if(H.ranged) //briefly delay ranged attacks - if(H.ranged_cooldown >= world.time) - H.ranged_cooldown += bonus_value - else - H.ranged_cooldown = bonus_value + world.time - -//forgotten watcher -/obj/item/crusher_trophy/watcher_wing_forgotten - name = "forgotten watcher wing" - desc = "A wing with a terminal infection of the strange crystals." - icon_state = "watcher_wing_crystal" - denied_type = /obj/item/crusher_trophy/watcher_wing_forgotten - gender = NEUTER - bonus_value = 20 - var/deadly_shot = FALSE - -/obj/item/crusher_trophy/watcher_wing_forgotten/effect_desc() - return "waveform collapse to make the next magnetic pulse deal [bonus_value] damage" - -/obj/item/crusher_trophy/watcher_wing_forgotten/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/watcher_wing_forgotten/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) - if(deadly_shot) - marker.name = "crystal [marker.name]" - marker.icon_state = "crystal_shard" - marker.damage = bonus_value - marker.nodamage = FALSE - marker.speed = 2 - deadly_shot = FALSE - -/obj/item/crusher_trophy/watcher_wing_forgotten/on_mark_detonation(mob/living/target, mob/living/user) - deadly_shot = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) - -/obj/item/crusher_trophy/watcher_wing_forgotten/proc/reset_deadly_shot() - deadly_shot = FALSE - -//legion -/obj/item/crusher_trophy/legion_skull - name = "legion skull" - desc = "A dead and lifeless legion skull. Could be used in crafting." - icon_state = "legion_skull" - denied_type = /obj/item/crusher_trophy/legion_skull - bonus_value = 3 - -/obj/item/crusher_trophy/legion_skull/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/legion_skull/effect_desc() - return "a kinetic crusher to recharge [bonus_value*0.1] second\s faster" - -/obj/item/crusher_trophy/legion_skull/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time -= bonus_value - -/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time += bonus_value - -//dwarf legion -/obj/item/crusher_trophy/dwarf_skull - name = "shrunken skull" - desc = "Looks like someone hasn't been drinking their milk. Could be used in crafting." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "shrunk_skull" - denied_type = /obj/item/crusher_trophy/dwarf_skull - bonus_value = 6 - -/obj/item/crusher_trophy/dwarf_skull/effect_desc() - return "a kinetic crusher to recharge [bonus_value*0.1] second\s faster" - -/obj/item/crusher_trophy/dwarf_skull/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time -= bonus_value - -/obj/item/crusher_trophy/dwarf_skull/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time += bonus_value - - -//disfigured legion -/obj/item/crusher_trophy/legion_skull_crystal - name = "disfigured legion skull" - desc = "A dead and lifeless legion skull. The crystals keep it alive, even in agony." - icon_state = "legion_skull_crystal" - denied_type = /obj/item/crusher_trophy/legion_skull_crystal - bonus_value = 1 - -/obj/item/crusher_trophy/legion_skull_crystal/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/legion_skull_crystal/effect_desc() - return "waveform collapse to shoot 3 projectiles that only hits hostile fauna" - -/obj/item/crusher_trophy/legion_skull_crystal/on_mark_detonation(mob/living/target, mob/living/user) - for(var/i in 0 to 5) - var/obj/projectile/projectile_to_shoot = new /obj/projectile/crystalline_crusher(get_turf(src)) - projectile_to_shoot.preparePixelProjectile(get_step(src, pick(GLOB.alldirs)), get_turf(src)) - projectile_to_shoot.firer = user - projectile_to_shoot.fire(i*(360/5)) - return ..() - -/obj/projectile/crystalline_crusher - name = "Crystalline Shard" - icon_state = "crystal_shard" - damage = 25 - damage_type = BRUTE - speed = 3 - -/obj/projectile/crystalline_crusher/on_hit(atom/target, blocked) - . = ..() - var/turf/turf_hit = get_turf(target) - new /obj/effect/temp_visual/goliath_tentacle/crystal/visual_only(turf_hit,firer) - -/obj/projectile/crystalline_crusher/can_hit_target(atom/target, list/passthrough, direct_target, ignore_loc) - if(!(istype(target,/mob/living/simple_animal/hostile/asteroid))) - if(isturf(target)) - return ..() - return FALSE - return ..() - -//blood-drunk hunter -/obj/item/crusher_trophy/miner_eye - name = "eye of a blood-drunk hunter" - desc = "Its pupil is collapsed and turned to mush." - icon_state = "hunter_eye" - denied_type = /obj/item/crusher_trophy/miner_eye - -/obj/item/crusher_trophy/miner_eye/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/miner_eye/effect_desc() - return "waveform collapse to grant stun immunity and 90% damage reduction for 1 second" - -/obj/item/crusher_trophy/miner_eye/on_mark_detonation(mob/living/target, mob/living/user) - user.apply_status_effect(STATUS_EFFECT_BLOODDRUNK) - -//whelp -/obj/item/crusher_trophy/tail_spike - desc = "A spike taken from a young dragon's tail. Sharp enough to stab someone with." - denied_type = /obj/item/crusher_trophy/tail_spike - bonus_value = 5 - force = 10 - throwforce = 15 - throw_speed = 4 - sharpness = IS_SHARP - attack_verb = list("cut", "sliced", "diced") - hitsound = 'sound/weapons/bladeslice.ogg' - -/obj/item/crusher_trophy/tail_spike/effect_desc() - return "waveform collapse to do [bonus_value] damage to nearby creatures and push them back" - -/obj/item/crusher_trophy/tail_spike/on_mark_detonation(mob/living/target, mob/living/user) - for(var/mob/living/L in oview(2, user)) - if(L.stat == DEAD) - continue - playsound(L, 'sound/magic/fireball.ogg', 20, TRUE) - new /obj/effect/temp_visual/fire(L.loc) - addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done - L.adjustFireLoss(bonus_value, forced = TRUE) - -/obj/item/crusher_trophy/tail_spike/proc/pushback(mob/living/target, mob/living/user) - if(!QDELETED(target) && !QDELETED(user) && (!target.anchored || ismegafauna(target))) //megafauna will always be pushed - step(target, get_dir(user, target)) - -//ash drake -/obj/item/crusher_trophy/ash_spike - desc = "A molten spike taken from an ash drake's tail. Hot to the touch and extremely sharp." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "ash_spike" - denied_type = /obj/item/crusher_trophy/ash_spike - bonus_value = 15 - force = 15 - throwforce = 20 - throw_speed = 4 - sharpness = IS_SHARP - attack_verb = list("cut", "braised", "singed") - hitsound = 'sound/weapons/bladeslice.ogg' - -/obj/item/crusher_trophy/ash_spike/effect_desc() - return "waveform collapse to do [bonus_value] damage to nearby creatures and push them back" - -/obj/item/crusher_trophy/ash_spike/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/ash_spike/on_mark_detonation(mob/living/target, mob/living/user) - for(var/mob/living/L in oview(2, user)) - if(L.stat == DEAD) - continue - playsound(L, 'sound/magic/fireball.ogg', 20, TRUE) - new /obj/effect/temp_visual/fire(L.loc) - addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done - L.adjustFireLoss(bonus_value, forced = TRUE) - -/obj/item/crusher_trophy/ash_spike/proc/pushback(mob/living/target, mob/living/user) - if(!QDELETED(target) && !QDELETED(user) && (!target.anchored || ismegafauna(target))) //megafauna will always be pushed - step(target, get_dir(user, target)) - -//bubblegum -/obj/item/crusher_trophy/demon_claws - name = "demon claws" - desc = "A set of blood-drenched claws from a massive demon's hand." - icon_state = "demon_claws" - gender = PLURAL - denied_type = /obj/item/crusher_trophy/demon_claws - bonus_value = 10 - var/static/list/damage_heal_order = list(BRUTE, BURN, OXY) - -/obj/item/crusher_trophy/demon_claws/effect_desc() - return "melee hits to do [bonus_value * 0.2] more damage and heal you for [bonus_value * 0.1], with 5X effect on waveform collapse" - -/obj/item/crusher_trophy/demon_claws/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.force += bonus_value * 0.2 - H.detonation_damage += bonus_value * 0.8 - AddComponent(/datum/component/two_handed, force_wielded=(20 + bonus_value * 0.2)) - -/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.force -= bonus_value * 0.2 - H.detonation_damage -= bonus_value * 0.8 - AddComponent(/datum/component/two_handed, force_wielded=20) - -/obj/item/crusher_trophy/demon_claws/on_melee_hit(mob/living/target, mob/living/user) - user.heal_ordered_damage(bonus_value * 0.1, damage_heal_order) - -/obj/item/crusher_trophy/demon_claws/on_mark_detonation(mob/living/target, mob/living/user) - user.heal_ordered_damage(bonus_value * 0.4, damage_heal_order) - -//colossus -/obj/item/crusher_trophy/blaster_tubes - name = "blaster tubes" - desc = "The blaster tubes from a colossus's arm." - icon_state = "blaster_tubes" - gender = PLURAL - denied_type = /obj/item/crusher_trophy/blaster_tubes - bonus_value = 15 - var/deadly_shot = FALSE - -/obj/item/crusher_trophy/blaster_tubes/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/blaster_tubes/effect_desc() - return "waveform collapse to make the next magnetic pulse deal [bonus_value] damage but move slower" - -/obj/item/crusher_trophy/blaster_tubes/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) - if(deadly_shot) - marker.name = "ominous [marker.name]" - marker.icon_state = "chronobolt" - marker.damage = bonus_value - marker.nodamage = FALSE - marker.speed = 2 - deadly_shot = FALSE - -/obj/item/crusher_trophy/blaster_tubes/on_mark_detonation(mob/living/target, mob/living/user) - deadly_shot = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) - -/obj/item/crusher_trophy/blaster_tubes/proc/reset_deadly_shot() - deadly_shot = FALSE - -//hierophant -/obj/item/crusher_trophy/vortex_talisman - name = "vortex talisman" - desc = "A glowing trinket that was originally the Hierophant's beacon." - icon_state = "vortex_talisman" - denied_type = /obj/item/crusher_trophy/vortex_talisman - -/obj/item/crusher_trophy/vortex_talisman/effect_desc() - return "waveform collapse to create a barrier you can pass" - -/obj/item/crusher_trophy/vortex_talisman/on_mark_detonation(mob/living/target, mob/living/user) - var/turf/current_location = get_turf(user) - var/area/current_area = current_location.loc - if(current_area.area_flags & NOTELEPORT) - to_chat(user, "[src] fizzles uselessly.") - return - var/turf/T = get_turf(user) - new /obj/effect/temp_visual/hierophant/wall/crusher(T, user) //a wall only you can pass! - var/turf/otherT = get_step(T, turn(user.dir, 90)) - if(otherT) - new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user) - otherT = get_step(T, turn(user.dir, -90)) - if(otherT) - new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user) - -/obj/effect/temp_visual/hierophant/wall/crusher - duration = 75 - -//I am afraid of this code. It also does not function(in terms of doing damage to enemies) as of my last test. -/obj/item/crusher_trophy/king_goat - name = "king goat hoof" - desc = "A hoof from the king of all goats, it still glows with a fraction of its original power..." - icon_state = "goat_hoof" //needs a better sprite but I cant sprite . - denied_type = /obj/item/crusher_trophy/king_goat - -/obj/item/crusher_trophy/king_goat/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/king_goat/effect_desc() - return "you also passively recharge pulses 5x as fast while this is equipped and do a decent amount of damage at the cost of dulling the blade" - -/obj/item/crusher_trophy/king_goat/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) - marker.damage = 10 //in my testing only does damage to simple mobs so should be fine to have it high //it does damage to nobody. Please fix -M - -/obj/item/crusher_trophy/king_goat/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time = 3 - H.AddComponent(/datum/component/two_handed, force_wielded=5) - -/obj/item/crusher_trophy/king_goat/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time = 15 - H.AddComponent(/datum/component/two_handed, force_wielded=20) - -/obj/item/crusher_trophy/shiny - name = "shiny nugget" - icon = 'icons/obj/lavaland/elite_trophies.dmi' - desc = "A glimmering nugget of dull metal. As it turns out, the fools were right- pyrite is a far rarer substance than gold in the space age. You could probably sell this for a fair price." - icon_state = "nugget" - gender = PLURAL - denied_type = /obj/item/crusher_trophy/shiny - -/obj/item/crusher_trophy/shiny/effect_desc() - return "empowered butchering chances" - -/obj/item/crusher_trophy/shiny/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.AddComponent(/datum/component/butchering, 60, 210) - -/obj/item/crusher_trophy/shiny/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.AddComponent(/datum/component/butchering, 60, 110) - //outdated Nanotrasen prototype of the crusher. Incredibly heavy, but the blade was made at a premium. //to alter this I had to duplicate some code, big moment. /obj/item/kinetic_crusher/old icon_state = "crusherold" @@ -820,16 +247,3 @@ . = ..() if(wielded) . += "[icon_state]_lit" - -/obj/item/crusher_trophy/lobster_claw - name = "lobster claw" - icon_state = "lobster_claw" - desc = "A lobster claw." - denied_type = /obj/item/crusher_trophy/lobster_claw - bonus_value = 1 - -/obj/item/crusher_trophy/lobster_claw/effect_desc() - return "mark detonation to briefly stagger the target for [bonus_value] seconds" - -/obj/item/crusher_trophy/lobster_claw/on_mark_detonation(mob/living/target, mob/living/user) - target.apply_status_effect(/datum/status_effect/stagger, bonus_value SECONDS) diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index d334b0ce3de4..d38a3ce8b55b 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -53,6 +53,7 @@ force = 19 custom_price = 1500 custom_premium_price = 2000 + custom_materials = list(/datum/material/diamond=2000) /obj/item/pickaxe/drill name = "mining drill" @@ -79,8 +80,9 @@ icon_state = "diamonddrill" item_state = "diamonddrill" toolspeed = 0.2 - desc = "EXOCON's improvement on the NT autodrill design, featuring a premium diamond cutting head. Yours is the drill that will pierce the heavens!" + desc = "EXOCOM's improvement on the NT autodrill design, featuring a premium diamond cutting head. Yours is the drill that will pierce the heavens!" force = 20 + custom_materials = list(/datum/material/diamond=2000) /obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version! name = "diamond-tipped integrated mining drill" //To inherit the NODROP_1 flag, and easier to change borg specific drill mechanics. @@ -94,7 +96,7 @@ toolspeed = 0.1 //the epitome of powertools. extremely fast mining usesound = 'sound/weapons/sonic_jackhammer.ogg' hitsound = 'sound/weapons/sonic_jackhammer.ogg' - desc = "The epitome of conventional rock-smashing technology, invented by NT and cost-optimized by EXOCON. Smashes rocks, objects, and unfortunate wildlife with sonic blasts." + desc = "The epitome of conventional rock-smashing technology, invented by NT and cost-optimized by EXOCOM. Smashes rocks, objects, and unfortunate wildlife with sonic blasts." force = 25 attack_verb = list("blasted", "smashed", "slammed", "hammered") diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index 87736c3438e4..4bd6824327f3 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -1,7 +1,7 @@ /*********************Hivelord stabilizer****************/ /obj/item/hivelordstabilizer name = "stabilizing serum" - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "bottle19" desc = "Inject certain types of monster organs with this stabilizer to preserve their healing powers indefinitely." w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 5e012735b706..817970a00602 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -281,13 +281,15 @@ //Signs /obj/structure/sign/mining - name = "\improper Nanotrasen mining corps sign" - desc = "A sign of relief for weary miners, and a warning for would-be competitors to Nanotrasen's mining claims." - icon_state = "nanotrasen" + name = "\improper N+S mining corps sign" + desc = "A sign of relief for weary miners, and a warning for would-be competitors to N+S's mining claims." + icon = 'icons/obj/nanotrasen_logos.dmi' + icon_state = "ns" /obj/structure/sign/mining/survival name = "shelter sign" desc = "A high visibility sign designating a safe shelter." + icon = 'icons/obj/structures/signs/sign.dmi' icon_state = "secureareaold" //Fluff diff --git a/code/modules/mining/equipment/trophies.dm b/code/modules/mining/equipment/trophies.dm new file mode 100644 index 000000000000..a9631c7ffc15 --- /dev/null +++ b/code/modules/mining/equipment/trophies.dm @@ -0,0 +1,184 @@ +//trophies +/obj/item/mob_trophy + name = "tail spike" + desc = "A strange spike with no usage." + icon = 'icons/obj/lavaland/artefacts.dmi' + icon_state = "tail_spike" + +//legion +/obj/item/mob_trophy/legion_skull + name = "legion skull" + desc = "A dead and lifeless legion skull. Could be used in crafting." + icon_state = "legion_skull" + +/obj/item/mob_trophy/wolf_ear + name = "wolf ear" + desc = "The battered remains of a wolf's ear. You could attach it to a crusher, or use the fur to craft a trophy." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "torn_ear" + +/obj/item/mob_trophy/fang + name = "battle-stained fang" + desc = "A wolf fang, displaying the wear and tear associated with a long and colorful life. Could be attached to a kinetic crusher or used to make a trophy." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "fang" + +/* +//goliath +/obj/item/mob_trophy/goliath_tentacle + name = "goliath tentacle" + desc = "A sliced-off goliath tentacle." + icon_state = "goliath_tentacle" + +//ancient goliath0 +/obj/item/mob_trophy/elder_tentacle + name = "elder tentacle" + desc = "The barbed tip of a tentacle sliced from an incredibly ancient goliath." + icon_state = "elder_tentacle" + icon = 'icons/obj/lavaland/elite_trophies.dmi' + +//crystal goliath +/obj/item/mob_trophy/goliath_crystal + name = "goliath crystal" + desc = "A crystal ripped off from a goliath infected by the strange crystals. You can see the original skin of the goliath deeply embeded in it." + icon_state = "goliath_crystal" + +//watcher +/obj/item/mob_trophy/watcher_wing + name = "watcher wing" + desc = "A wing ripped from a watcher." + icon_state = "watcher_wing" + +//magmawing watcher +/obj/item/mob_trophy/magma_wing + name = "magmatic sinew" + desc = "A fuming organ, dropped by beings hotter then lava." + icon_state = "magma_wing" + gender = NEUTER + +//icewing watcher +/obj/item/mob_trophy/ice_wing + name = "frigid sinew" + desc = "A carefully-preserved freezing organ, dropped by chilling beings." + icon_state = "ice_wing" + +//forgotten watcher +/obj/item/mob_trophy/watcher_wing_forgotten + name = "forgotten watcher wing" + desc = "A wing with a terminal infection of the strange crystals." + icon_state = "watcher_wing_crystal" + gender = NEUTER + +//dwarf legion +/obj/item/mob_trophy/dwarf_skull + name = "shrunken skull" + desc = "Looks like someone hasn't been drinking their milk. Could be used in crafting." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "shrunk_skull" + +//disfigured legion +/obj/item/mob_trophy/legion_skull_crystal + name = "disfigured legion skull" + desc = "A dead and lifeless legion skull. The crystals keep it alive, even in agony." + icon_state = "legion_skull_crystal" + +//blood-drunk hunter +/obj/item/mob_trophy/miner_eye + name = "eye of a blood-drunk hunter" + desc = "Its pupil is collapsed and turned to mush." + icon_state = "hunter_eye" + +//whelp +/obj/item/mob_trophy/tail_spike + desc = "A spike taken from a young dragon's tail. Sharp enough to stab someone with." + force = 10 + throwforce = 15 + throw_speed = 4 + sharpness = IS_SHARP + attack_verb = list("cut", "sliced", "diced") + hitsound = 'sound/weapons/bladeslice.ogg' + +//ash drake +/obj/item/mob_trophy/ash_spike + desc = "A molten spike taken from an ash drake's tail. Hot to the touch and extremely sharp." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "ash_spike" + force = 15 + throwforce = 20 + throw_speed = 4 + sharpness = IS_SHARP + attack_verb = list("cut", "braised", "singed") + hitsound = 'sound/weapons/bladeslice.ogg' + +//bubblegum +/obj/item/mob_trophy/demon_claws + name = "demon claws" + desc = "A set of blood-drenched claws from a massive demon's hand." + icon_state = "demon_claws" + gender = PLURAL + +//colossus +/obj/item/mob_trophy/blaster_tubes + name = "blaster tubes" + desc = "The blaster tubes from a colossus's arm." + icon_state = "blaster_tubes" + gender = PLURAL + +//hierophant +/obj/item/mob_trophy/vortex_talisman + name = "vortex talisman" + desc = "A glowing trinket that was originally the Hierophant's beacon." + icon_state = "vortex_talisman" + +// Broodmother's loot: Broodmother Tongue +/obj/item/mob_trophy/broodmother_tongue + name = "broodmother tongue" + desc = "The tongue of a broodmother. If attached a certain way, makes for a suitable crusher trophy." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "broodmother_tongue" + +/obj/item/mob_trophy/shiny + name = "shiny nugget" + icon = 'icons/obj/lavaland/elite_trophies.dmi' + desc = "A glimmering nugget of dull metal. As it turns out, the fools were right- pyrite is a far rarer substance than gold in the space age. You could probably sell this for a fair price." + icon_state = "nugget" + gender = PLURAL + +/obj/item/mob_trophy/lobster_claw + name = "lobster claw" + icon_state = "lobster_claw" + desc = "A lobster claw." + +/obj/item/mob_trophy/ice_block_talisman + name = "ice block talisman" + desc = "A glowing trinket that a demonic miner had on him, it seems he couldn't utilize it for whatever reason." + icon_state = "freeze_cube" + +/obj/item/mob_trophy/brimdemon_fang + name = "brimdemon's fang" + icon_state = "brimdemon_fang" + desc = "A fang from a brimdemon's corpse." + +/obj/item/mob_trophy/ice_crystal + name = "frost gem" + icon = 'icons/obj/lavaland/elite_trophies.dmi' + desc = "The glowing remnant of an ancient ice demon- so cold that it hurts to touch." + icon_state = "ice_crystal" + +/obj/item/mob_trophy/lobster_claw + name = "lobster claw" + icon_state = "lobster_claw" + desc = "A lobster claw." + +/obj/item/mob_trophy/bear_paw + name = "polar bear paw" + desc = "It's a polar bear paw." + icon_state = "bear_paw" + icon ='icons/obj/lavaland/elite_trophies.dmi' + +/obj/item/mob_trophy/war_paw + name = "Armored bear paw" + desc = "It's a paw from a true warrior. Still remembers the basics of CQB." + icon_state = "armor_paw" + icon ='icons/obj/lavaland/elite_trophies.dmi' +*/ diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 0bade04d3fe8..f9563cc078eb 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -432,14 +432,6 @@ user.put_in_hands(result) to_chat(user, "You finish breaking [src]") -//CRAFTING - -/datum/crafting_recipe/mushroom_bowl - name = "Mushroom Bowl" - result = /obj/item/reagent_containers/glass/bowl/mushroom_bowl - reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5) - time = 30 - category = CAT_PRIMAL /obj/item/reagent_containers/food/snacks/customizable/salad/ashsalad desc = "Very ashy." diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 42cc2a74d6a4..36d556bc5f42 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -882,6 +882,39 @@ walk(hit_mob, 0) //stops them mid pathing even if they're stunimmune hit_mob.apply_status_effect(/datum/status_effect/ice_block_talisman, 5 SECONDS) +/datum/status_effect/ice_block_talisman + id = "ice_block_talisman" + duration = 40 + status_type = STATUS_EFFECT_REFRESH + alert_type = /atom/movable/screen/alert/status_effect/ice_block_talisman + /// Stored icon overlay for the hit mob, removed when effect is removed + var/icon/cube + +/atom/movable/screen/alert/status_effect/ice_block_talisman + name = "Frozen Solid" + desc = "You're frozen inside an ice cube, and cannot move!" + icon_state = "frozen" + +/datum/status_effect/ice_block_talisman/on_apply() + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) + if(!owner.stat) + to_chat(owner, "You become frozen in a cube!") + cube = icon('icons/effects/freeze.dmi', "ice_cube") + var/icon/size_check = icon(owner.icon, owner.icon_state) + cube.Scale(size_check.Width(), size_check.Height()) + owner.add_overlay(cube) + return ..() + +/// Blocks movement from the status effect owner +/datum/status_effect/ice_block_talisman/proc/owner_moved() + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + +/datum/status_effect/ice_block_talisman/on_remove() + if(!owner.stat) + to_chat(owner, "The cube melts!") + owner.cut_overlay(cube) + UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) + //earthquake gauntlets /obj/item/clothing/gloves/gauntlets name = "concussive gauntlets" @@ -1274,13 +1307,6 @@ if(4) new /obj/item/dragons_blood(src) -/obj/structure/closet/crate/necropolis/dragon/crusher - name = "firey dragon chest" - -/obj/structure/closet/crate/necropolis/dragon/crusher/PopulateContents() - ..() - new /obj/item/crusher_trophy/ash_spike(src) - /obj/item/melee/ghost_sword name = "\improper spectral blade" desc = "A rusted and dulled blade. It doesn't look like it'd do much damage. It glows weakly." @@ -1502,13 +1528,6 @@ if(3) new /obj/item/gun/magic/staff/spellblade(src) -/obj/structure/closet/crate/necropolis/bubblegum/crusher - name = "bloody bubblegum chest" - -/obj/structure/closet/crate/necropolis/bubblegum/crusher/PopulateContents() - ..() - new /obj/item/crusher_trophy/demon_claws(src) - /obj/item/mayhem name = "mayhem in a bottle" desc = "A magically infused bottle of blood, the scent of which will drive anyone nearby into a murderous frenzy." @@ -1584,13 +1603,6 @@ new random_crystal(src) new /obj/item/organ/vocal_cords/colossus(src) -/obj/structure/closet/crate/necropolis/colossus/crusher - name = "angelic colossus chest" - -/obj/structure/closet/crate/necropolis/colossus/crusher/PopulateContents() - ..() - new /obj/item/crusher_trophy/blaster_tubes(src) - //Hierophant /obj/item/hierophant_club name = "hierophant club" diff --git a/code/modules/mining/machine_bluespaceminer.dm b/code/modules/mining/machine_bluespaceminer.dm index feffb562a7e0..f44775d20c20 100644 --- a/code/modules/mining/machine_bluespaceminer.dm +++ b/code/modules/mining/machine_bluespaceminer.dm @@ -7,7 +7,7 @@ circuit = /obj/item/circuitboard/machine/bluespace_miner layer = BELOW_OBJ_LAYER use_power = NO_POWER_USE - idle_power_usage = 50000 + idle_power_usage = ACTIVE_DRAW_EXTREME * 10 var/powered = FALSE var/active = FALSE diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index bbc84ec7ee68..0ae29ca8ee54 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -3,6 +3,7 @@ /**********************Mineral processing unit console**************************/ /obj/machinery/mineral + idle_power_usage = IDLE_DRAW_MINIMAL processing_flags = START_PROCESSING_MANUALLY subsystem_type = /datum/controller/subsystem/processing/fastprocess /// The current direction of `input_turf`, in relation to the machine. @@ -142,7 +143,7 @@ /obj/machinery/mineral/processing_unit/Initialize() . = ..() proximity_monitor = new(src, 1) - AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, TRUE, /obj/item/stack) + AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/hellstone, /datum/material/titanium, /datum/material/bluespace), INFINITY, TRUE, /obj/item/stack) stored_research = new /datum/techweb/specialized/autounlocking/smelter selected_material = SSmaterials.GetMaterialRef(/datum/material/iron) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index fd36a4bb4ab1..d0704887b4ea 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -17,7 +17,7 @@ var/points = 0 var/ore_multiplier = 1 var/point_upgrade = 1 - var/list/ore_values = list(/datum/material/iron = 1, /datum/material/glass = 1, /datum/material/plasma = 15, /datum/material/silver = 16, /datum/material/gold = 18, /datum/material/titanium = 30, /datum/material/uranium = 30, /datum/material/diamond = 50, /datum/material/bluespace = 50, /datum/material/bananium = 60) + var/list/ore_values = list(/datum/material/iron = 1, /datum/material/glass = 1, /datum/material/plasma = 15, /datum/material/silver = 16, /datum/material/gold = 18, /datum/material/titanium = 30, /datum/material/uranium = 30, /datum/material/diamond = 50, /datum/material/bluespace = 50) /// Variable that holds a timer which is used for callbacks to `send_console_message()`. Used for preventing multiple calls to this proc while the ORM is eating a stack of ores. var/console_notify_timer var/datum/techweb/stored_research diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm index 788d1c102f75..444e72992685 100644 --- a/code/modules/mining/machine_silo.dm +++ b/code/modules/mining/machine_silo.dm @@ -22,7 +22,6 @@ GLOBAL_LIST_EMPTY(silo_access_logs) /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, - /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace, /datum/material/plastic, diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index c84d61ab7cf2..15cde601689e 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -1,7 +1,7 @@ /* Mining Points Equipment Vendor */ /obj/machinery/vending/mining_equipment name = "frontier equipment vendor" - desc = "An equipment vendor for miners, prospectors, and all manner of far reach scroungers. Ore Redemption Points can be spent here to purchase rough-and-tumble goods. Sold by EXOCON." + desc = "An equipment vendor for miners, prospectors, and all manner of far reach scroungers. Ore Redemption Points can be spent here to purchase rough-and-tumble goods. Sold by EXOCOM." icon_state = "mining" icon_deny = "mining-deny" max_integrity = 500 // A bit more durable than your average snack vendor diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 707d68a871f7..cc2a9f176c70 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -33,7 +33,7 @@ wanted_objects = list( /obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver, /obj/item/stack/ore/plasma, /obj/item/stack/ore/uranium, /obj/item/stack/ore/iron, - /obj/item/stack/ore/bananium, /obj/item/stack/ore/titanium) + /obj/item/stack/ore/hellstone, /obj/item/stack/ore/titanium) healable = 0 loot = list(/obj/effect/decal/cleanable/robot_debris) del_on_death = TRUE diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index 33117d99c518..79c2f0d52208 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -24,11 +24,8 @@ /datum/material/uranium, /datum/material/titanium, /datum/material/diamond, - /datum/material/bananium, - /datum/material/adamantine, - /datum/material/mythril, /datum/material/plastic, - /datum/material/runite + /datum/material/hellstone, ), MINERAL_MATERIAL_AMOUNT * 75, FALSE, /obj/item/stack) chosen = SSmaterials.GetMaterialRef(chosen) diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index 46011ae8ec7e..2c8ac19a353a 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -26,4 +26,4 @@ new /obj/item/coin/silver(src) new /obj/item/coin/gold(src) new /obj/item/coin/gold(src) - new /obj/item/coin/adamantine(src) + new /obj/item/coin/hellstone(src) diff --git a/code/modules/mining/ore_veins.dm b/code/modules/mining/ore_veins.dm index 3e5e20053a77..0df6cd187d03 100644 --- a/code/modules/mining/ore_veins.dm +++ b/code/modules/mining/ore_veins.dm @@ -209,3 +209,36 @@ GLOBAL_LIST_EMPTY(ore_veins) ) max_mobs = 6 spawn_time = 80 + +// Asteroid veins are the same as the base planetary ones yield wise, but with the asteroid mobs. + +/obj/structure/vein/asteroid + mob_types = list( + /mob/living/simple_animal/hostile/asteroid/goliath = 60, + /mob/living/simple_animal/hostile/asteroid/basilisk = 30, + /mob/living/simple_animal/hostile/asteroid/hivelord = 30, + /mob/living/simple_animal/hostile/asteroid/brimdemon = 20, + /mob/living/simple_animal/hostile/carp = 20, + ) + +/obj/structure/vein/classtwo/asteroid + mob_types = list( + /mob/living/simple_animal/hostile/asteroid/goliath = 60, + /mob/living/simple_animal/hostile/asteroid/basilisk = 30, + /mob/living/simple_animal/hostile/asteroid/hivelord = 30, + /mob/living/simple_animal/hostile/asteroid/brimdemon = 20, + /mob/living/simple_animal/hostile/carp = 20, + /mob/living/simple_animal/hostile/carp/megacarp = 15, + /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient = 5 + ) + +/obj/structure/vein/classthree/asteroid + mob_types = list( + /mob/living/simple_animal/hostile/asteroid/goliath = 60, + /mob/living/simple_animal/hostile/asteroid/basilisk = 30, + /mob/living/simple_animal/hostile/asteroid/hivelord = 30, + /mob/living/simple_animal/hostile/asteroid/brimdemon = 20, + /mob/living/simple_animal/hostile/carp/megacarp = 20, + /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient = 10 + ) + diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index ec971ed84bed..1dfe590cac0a 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -217,16 +217,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ mine_experience = 10 scan_state = "rock_Diamond" -/obj/item/stack/ore/bananium - name = "bananium ore" - icon_state = "Bananium ore" - item_state = "Bananium ore" - singular_name = "bananium ore chunk" - points = 60 - custom_materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/mineral/bananium - mine_experience = 15 - scan_state = "rock_Bananium" /obj/item/stack/ore/titanium name = "titanium ore" @@ -240,6 +230,16 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ scan_state = "rock_Titanium" spreadChance = 5 +/obj/item/stack/ore/hellstone + name = "hellstone ore" + icon_state = "hellstone-ore" + item_state = "hellstone-ore" + singular_name = "hellstone ore chunk" + resistance_flags = LAVA_PROOF + points = 50 + custom_materials = list(/datum/material/hellstone=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/hidden/hellstone + /obj/item/stack/ore/slag name = "slag" desc = "Completely useless." @@ -458,20 +458,11 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/coin/titanium custom_materials = list(/datum/material/titanium = 400) -/obj/item/coin/bananium - custom_materials = list(/datum/material/bananium = 400) - -/obj/item/coin/adamantine - custom_materials = list(/datum/material/adamantine = 400) - -/obj/item/coin/mythril - custom_materials = list(/datum/material/mythril = 400) - /obj/item/coin/plastic custom_materials = list(/datum/material/plastic = 400) -/obj/item/coin/runite - custom_materials = list(/datum/material/runite = 400) +/obj/item/coin/hellstone + custom_materials = list(/datum/material/hellstone = 400) /obj/item/coin/twoheaded desc = "Hey, this coin's the same on both sides!" diff --git a/code/modules/mob/dead/crew_manifest.dm b/code/modules/mob/dead/crew_manifest.dm index c7ca52968f86..da742342218c 100644 --- a/code/modules/mob/dead/crew_manifest.dm +++ b/code/modules/mob/dead/crew_manifest.dm @@ -4,7 +4,7 @@ return GLOB.always_state /datum/crew_manifest/ui_status(mob/user, datum/ui_state/state) - return (isnewplayer(user) || isobserver(user) || isAI(user) || ispAI(user)) ? UI_INTERACTIVE : UI_CLOSE + return (ismob(user)) ? UI_INTERACTIVE : UI_CLOSE /datum/crew_manifest/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 5ccba743bb1b..25722dd28e5f 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -319,7 +319,6 @@ spawn_point.join_player_here(character) var/atom/movable/screen/splash/Spl = new(character.client, TRUE) Spl.Fade(TRUE) - character.playsound_local(get_turf(character), 'sound/voice/ApproachingTG.ogg', 25) character.update_parallax_teleport() diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm b/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm index b13b8f96a51e..16f7e269c760 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ipc.dm @@ -301,6 +301,7 @@ var/has_screen = TRUE //do we have a screen to toggle var/has_overlay = FALSE //does this chasis have a overlay icon? var/is_digi = FALSE //does this chasis use digitigrade + var/has_snout = FALSE /datum/sprite_accessory/ipc_chassis/mcgreyscale name = "Morpheus Cyberkinetics (Custom)" @@ -354,6 +355,7 @@ color_src = MUTCOLORS has_overlay = TRUE use_eyes = TRUE + has_snout = TRUE /datum/sprite_accessory/ipc_chassis/pgfmechanicsdigigrade name = "PGF MECHANICS TYPE-D" @@ -363,6 +365,7 @@ has_overlay = TRUE use_eyes = TRUE is_digi = TRUE + has_snout = TRUE /datum/sprite_accessory/ipc_chassis/inteqsprinter name = "Inteq Mothership 'Sprinter'" diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index de07b3d4f0fd..0d9dab7a035f 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -275,7 +275,7 @@ */ /mob/proc/dropItemToGround(obj/item/I, force = FALSE, silent = FALSE) . = doUnEquip(I, force, drop_location(), FALSE, silent = silent) - if(. && I) //ensure the item exists and that it was dropped properly. + if(. && I && !(I.item_flags & NO_PIXEL_RANDOM_DROP)) //ensure the item exists and that it was dropped properly. I.pixel_x = rand(-6,6) I.pixel_y = rand(-6,6) diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index a70520462f39..8629d01650d4 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -113,7 +113,7 @@ return user.visible_message("[user] starts to pour the contents of [O] onto [src].", "You start to slowly pour the contents of [O] onto [src].") - if(!do_after(user, 60, TRUE, src)) + if(!do_after(user, 60, src)) to_chat(user, "You failed to pour [O] onto [src]!") return diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 23e937acf102..11eeef8b4a8e 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -180,3 +180,7 @@ /mob/living/carbon/alien/on_standing_up() . = ..() update_icons() + +/mob/living/carbon/alien/examine(mob/user) + . = ..() + . += "It's a strange creature." diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index ec4105fde0ce..ccd6540ffca1 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -291,7 +291,7 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/sneak/fire(mob/living/carbon/alien/humanoid/user) if(!active) - user.alpha = 25 + user.alpha = 150 user.sneaking = TRUE active = TRUE to_chat(user, "You blend into the shadows...") diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 5163821a9573..57835578cf84 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -100,8 +100,7 @@ return else //Maybe uses plasma in the future, although that wouldn't make any sense... - leaping = 1 - weather_immunities += "lava" + leaping = TRUE update_icons() throw_at(leap_target, MAX_ALIEN_LEAP_DIST, 2, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(leap_end))) @@ -115,7 +114,6 @@ * the icons of the hunter. */ /mob/living/carbon/alien/humanoid/hunter/proc/leap_end() - leaping = 0 - LAZYREMOVE(weather_immunities, "lava") + leaping = FALSE update_icons() diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 651ea4c6d0ee..dcb44af19cca 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -63,7 +63,7 @@ if(href_list["pouches"] && usr.canUseTopic(src, BE_CLOSE, NO_DEXTERITY)) visible_message("[usr] tries to empty [src]'s pouches.", \ "[usr] tries to empty your pouches.") - if(do_mob(usr, src, POCKET_STRIP_DELAY * 0.5)) + if(do_after(usr, POCKET_STRIP_DELAY * 0.5, src)) dropItemToGround(r_store) dropItemToGround(l_store) diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 49ff1e88937b..4e797ede06c0 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -104,7 +104,8 @@ if(gib_on_success) new_xeno.visible_message("[new_xeno] bursts out of [owner] in a shower of gore!", "You exit [owner], your previous host.", "You hear organic matter ripping and tearing!") - owner.gib() + owner.adjustBruteLoss(200) + owner.cut_overlay(overlay) else new_xeno.visible_message("[new_xeno] wriggles out of [owner]!", "You exit [owner], your previous host.") owner.adjustBruteLoss(40) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index a9caeba37208..c9cdcaf8199c 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -47,7 +47,7 @@ /// Whether or not this facehugger can actually impregnate targets var/sterile = FALSE /// How long it takes for a facehugger to impregnate a target once attached - var/pregnation_time = 10 SECONDS + var/pregnation_time = 5 SECONDS /// How long it takes between coupling attempts var/couple_retry_time = 15 SECONDS /// The mob's internal mask version, stored within the mob when the facehugger isn't being used as an item. diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 36fd8e1e6704..dd5b29059085 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -202,7 +202,7 @@ visible_message("[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].", \ "[usr] tries to [internal ? "close" : "open"] the valve on your [ITEM.name].", null, null, usr) to_chat(usr, "You try to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name]...") - if(do_mob(usr, src, POCKET_STRIP_DELAY)) + if(do_after(usr, POCKET_STRIP_DELAY, src)) if(internal) internal = null update_internals_hud_icon(0) @@ -255,7 +255,7 @@ buckle_cd = O.breakouttime visible_message("[src] attempts to unbuckle [p_them()]self!", \ "You attempt to unbuckle yourself... (This will take around [round(buckle_cd/600,1)] minute\s, and you need to stay still.)") - if(do_after(src, buckle_cd, 0, target = src, hidden = TRUE)) + if(do_after(src, buckle_cd, target = src, timed_action_flags = IGNORE_HELD_ITEM)) if(!buckled) return buckled.user_unbuckle_mob(src,src) @@ -306,7 +306,7 @@ if(!cuff_break) visible_message("[src] attempts to remove [I]!") to_chat(src, "You attempt to remove [I]... (This will take around [DisplayTimeText(breakouttime)] and you need to stand still.)") - if(do_after(src, breakouttime, 0, target = src)) + if(do_after(src, breakouttime, target = src, timed_action_flags = IGNORE_HELD_ITEM)) . = clear_cuffs(I, cuff_break) else to_chat(src, "You fail to remove [I]!") @@ -315,7 +315,7 @@ breakouttime = 50 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)) + if(do_after(src, breakouttime, target = src, timed_action_flags = IGNORE_HELD_ITEM)) . = clear_cuffs(I, cuff_break) else to_chat(src, "You fail to break [I]!") diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 9b50d1827724..8377fc0833d6 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -554,14 +554,10 @@ else to_chat(src, "Your eyes are really starting to hurt. This can't be good for you!") - if(has_bane(BANE_LIGHT)) - mind.disrupt_spells(-500) return 1 else if(damage == 0) // just enough protection if(prob(20)) to_chat(src, "Something bright flashes in the corner of your vision!") - if(has_bane(BANE_LIGHT)) - mind.disrupt_spells(0) /mob/living/carbon/soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 5, deafen_pwr = 15) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 380b1e8f61fc..ae867d518eb5 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -239,7 +239,8 @@ message_param = "beeps at %t." /datum/emote/living/carbon/human/robot_tongue/beep/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/twobeep.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/buzz @@ -249,7 +250,8 @@ message_param = "buzzes at %t." /datum/emote/living/carbon/human/robot_tongue/buzz/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/buzz-sigh.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/buzz2 @@ -257,7 +259,8 @@ message = "buzzes twice." /datum/emote/living/carbon/human/robot_tongue/buzz2/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/buzz-two.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/chime @@ -266,7 +269,8 @@ message = "chimes." /datum/emote/living/carbon/human/robot_tongue/chime/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/chime.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/no @@ -275,7 +279,8 @@ message = "emits an negative blip." /datum/emote/living/carbon/human/robot_tongue/no/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/synth_no.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/ping @@ -285,7 +290,8 @@ message_param = "pings at %t." /datum/emote/living/carbon/human/robot_tongue/ping/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/ping.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/warn @@ -294,7 +300,8 @@ message = "blares an alarm!" /datum/emote/living/carbon/human/robot_tongue/warn/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/warning-buzzer.ogg', 50) /datum/emote/living/carbon/human/robot_tongue/yes @@ -303,7 +310,8 @@ message = "emits an affirmative blip." /datum/emote/living/carbon/human/robot_tongue/yes/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/machines/synth_yes.ogg', 50) // the following emote were originally clown-locked and synthetic exclusive @@ -315,7 +323,8 @@ message = "plays a sad trombone..." /datum/emote/living/carbon/human/robot_tongue/sad/run_emote(mob/user, params) - if(..()) + . = ..() + if(.) playsound(user.loc, 'sound/misc/sadtrombone.ogg', 50) //kepi (plus one vox i guess) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 59f97d172ad1..64882c75ec4e 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -416,4 +416,5 @@ . = ..() if ((wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))) return - . += list(span_notice("[p_they(TRUE)] appear[p_s()] to be [get_age()].")) + if(get_age()) + . += list(span_notice("[p_they(TRUE)] appear[p_s()] to be [get_age()].")) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 148c02d4988b..27fa569de7cd 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -52,8 +52,6 @@ sec_hud_set_ID() sec_hud_set_implants() sec_hud_set_security_status() - //...fan gear - fan_hud_set_fandom() //...and display them. add_to_all_human_data_huds() @@ -247,7 +245,7 @@ else return - if(do_mob(usr, src, POCKET_STRIP_DELAY/delay_denominator, hidden = TRUE)) //placing an item into the pocket is 4 times faster + if(do_after(usr, POCKET_STRIP_DELAY/delay_denominator, src, hidden = TRUE)) //placing an item into the pocket is 4 times faster if(pocket_item) if(pocket_item == (pocket_id == ITEM_SLOT_RPOCKET ? r_store : l_store)) //item still in the pocket we search dropItemToGround(pocket_item) @@ -265,7 +263,7 @@ if(href_list["toggle_uniform"] && usr.canUseTopic(src, BE_CLOSE, NO_DEXTERITY)) var/obj/item/clothing/under/U = get_item_by_slot(ITEM_SLOT_ICLOTHING) to_chat(src, "[usr.name] is trying to adjust your [U].") - if(do_mob(usr, src, U.strip_delay/2)) + if(do_after(usr, U.strip_delay/2, src)) to_chat(src, "[usr.name] successfully adjusted your [U].") U.toggle_jumpsuit_adjust() update_inv_w_uniform() @@ -614,10 +612,13 @@ /mob/living/carbon/human/proc/do_cpr(mob/living/carbon/target) var/panicking = FALSE + if(target == src) //Sanity check, in case spacetime crumbles and allows us to perform cpr on ourselves + return + do CHECK_DNA_AND_SPECIES(target) - if (INTERACTING_WITH(src, target)) + if (DOING_INTERACTION_WITH_TARGET(src,target)) return FALSE if (target.stat == DEAD || HAS_TRAIT(target, TRAIT_FAKEDEATH)) @@ -643,7 +644,7 @@ visible_message("[src] is trying to perform CPR on [target.name]!", \ "You try to perform CPR on [target.name]... Hold still!") - if (!do_mob(src, target, time = panicking ? CPR_PANIC_SPEED : (3 SECONDS))) + if (!do_after(src, delay = panicking ? CPR_PANIC_SPEED : (3 SECONDS), target = target)) to_chat(src, "You fail to perform CPR on [target]!") return FALSE @@ -898,11 +899,6 @@ dna.remove_mutation(HM.name) ..() -/mob/living/carbon/human/check_weakness(obj/item/weapon, mob/living/attacker) - . = ..() - if (dna && dna.species) - . += dna.species.check_species_weakness(weapon, attacker) - /mob/living/carbon/human/is_literate() return TRUE @@ -1070,7 +1066,7 @@ if(!src.is_busy && (src.zone_selected == BODY_ZONE_HEAD || src.zone_selected == BODY_ZONE_PRECISE_GROIN) && get_turf(src) == get_turf(T) && !(T.mobility_flags & MOBILITY_STAND) && src.a_intent != INTENT_HELP) //all the stars align, time to curbstomp src.is_busy = TRUE - if (!do_mob(src,T,25) || get_turf(src) != get_turf(T) || (T.mobility_flags & MOBILITY_STAND) || src.a_intent == INTENT_HELP || src == T) //wait 30ds and make sure the stars still align (Body zone check removed after PR #958) + if (!do_after(src, 2.5 SECONDS, T) || get_turf(src) != get_turf(T) || (T.mobility_flags & MOBILITY_STAND) || src.a_intent == INTENT_HELP || src == T) //wait 30ds and make sure the stars still align (Body zone check removed after PR #958) src.is_busy = FALSE return @@ -1158,7 +1154,7 @@ //Joe Medic starts quickly/expertly lifting Grey Tider onto their back.. "[carrydelay < 35 ? "Using your gloves' nanochips, you" : "You"] [skills_space] start to lift [target] onto your back[carrydelay == 40 ? ", while assisted by the nanochips in your gloves.." : "..."]") //(Using your gloves' nanochips, you/You) (/quickly/expertly) start to lift Grey Tider onto your back(, while assisted by the nanochips in your gloves../...) - if(do_after(src, carrydelay, TRUE, target)) + if(do_after(src, carrydelay, target)) //Second check to make sure they're still valid to be carried if(can_be_firemanned(target) && !incapacitated(FALSE, TRUE) && !target.buckled) buckle_mob(target, TRUE, TRUE, 90, 1, 0) @@ -1181,7 +1177,7 @@ //Joe Medic starts quickly/expertly scooping Grey Tider into their arms.. "[carrydelay < 11 ? "Using your gloves' nanochips, you" : "You"] [skills_space] start to scoop [target] into your arms[carrydelay == 15 ? ", while assisted by the nanochips in your gloves.." : "..."]") //(Using your gloves' nanochips, you/You) ( /quickly/expertly) start to scoop Grey Tider into your arms(, while assisted by the nanochips in your gloves../...) - if(do_after(src, carrydelay, TRUE, target)) + if(do_after(src, carrydelay, target)) //Second check to make sure they're still valid to be carried if(!incapacitated(FALSE, TRUE) && !target.buckled) buckle_mob(target, TRUE, TRUE, 90, 1, 0) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 123ecf6d4fba..3e3fd2209856 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -284,30 +284,30 @@ return TRUE apply_damage(damage, BRUTE, affecting, armor_block) - if(M.a_intent == INTENT_DISARM) //Always drop item in hand on first go. If no item exists, try to shove them back. If you share the tile with the target, slam them directly into the ground to stun them and slightly damage them. - var/obj/item/I = get_active_held_item() - if(I && dropItemToGround(I)) - playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1) - visible_message("[M] disarms [src]!", \ - "[M] disarms you!", "You hear aggressive shuffling!", null, M) - to_chat(M, "You disarm [src]!") - else if(get_dist(src, M) != 0) - playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1) - var/shovetarget = get_edge_target_turf(M, get_dir(M, get_step_away(src, M))) - Knockdown(0.3 SECONDS) - throw_at(shovetarget, 4, 2, M, force = MOVE_FORCE_OVERPOWERING) - log_combat(M, src, "shoved") - visible_message("[M] tackles [src] down!", \ - "[M] shoves you with great force!", "You hear aggressive shuffling followed by a loud thud!", null, M) - to_chat(M, "You shove [src] with great force!") - else - Paralyze(3 SECONDS) - adjustBruteLoss(5) - playsound(loc, 'sound/weapons/punch3.ogg', 25, TRUE, -1) - visible_message("[M] slams [src] into the floor!", \ - "[M] slams you into the ground!", "You hear something slam loudly onto the floor!", null, M) - to_chat(M, "You slam [src] into the floor beneath you!") - log_combat(M, src, "slammed into the ground") + if(M.a_intent == INTENT_DISARM) //Always drop item in hand on first go. If no item exists, try to shove them back. If you share the tile with the target, slam them directly into the ground to stun them and slightly damage them. + var/obj/item/I = get_active_held_item() + if(I && dropItemToGround(I) && prob(50)) + playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1) + visible_message("[M] disarms [src]!", \ + "[M] disarms you!", "You hear aggressive shuffling!", null, M) + to_chat(M, "You disarm [src]!") + else if(get_dist(src, M) != 0) + playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1) + var/shovetarget = get_edge_target_turf(M, get_dir(M, get_step_away(src, M))) + Knockdown(0.3 SECONDS) + throw_at(shovetarget, 4, 2, M, force = MOVE_FORCE_OVERPOWERING) + log_combat(M, src, "shoved") + visible_message("[M] tackles [src] down!", \ + "[M] shoves you with great force!", "You hear aggressive shuffling followed by a loud thud!", null, M) + to_chat(M, "You shove [src] with great force!") + else + Paralyze(1 SECONDS) + adjustBruteLoss(5) + playsound(loc, 'sound/weapons/punch3.ogg', 25, TRUE, -1) + visible_message("[M] slams [src] into the floor!", \ + "[M] slams you into the ground!", "You hear something slam loudly onto the floor!", null, M) + to_chat(M, "You slam [src] into the floor beneath you!") + log_combat(M, src, "slammed into the ground") /mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L) @@ -485,6 +485,9 @@ ///Calculates the siemens coeff based on clothing and species, can also restart hearts. /mob/living/carbon/human/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE) + //If it doesnt have physiology its prob still initializing. + if(!physiology) + return //Calculates the siemens coeff based on clothing. Completely ignores the arguments if(flags & SHOCK_TESLA) //I hate this entire block. This gets the siemens_coeff for tesla shocks if(gloves && gloves.siemens_coefficient <= 0) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index b98466301f63..5d8264c14ac3 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -34,7 +34,7 @@ /mob/living/carbon/human/get_visible_name() if(name_override) return name_override - return get_generic_name(lowercase = TRUE) + return get_generic_name(TRUE, lowercase = TRUE) //Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when Fluacided or when updating a human's name variable /mob/living/carbon/human/proc/get_face_name(if_no_face = get_generic_name(lowercase = TRUE)) @@ -177,7 +177,7 @@ var/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) if((obscured & ITEM_SLOT_ICLOTHING) && skipface || isipc(src)) - return "" + return FALSE switch(age) if(70 to INFINITY) return "Geriatric" @@ -188,27 +188,35 @@ if(40 to 50) return "Middle-Aged" if(24 to 40) - return "" //not necessary because this is basically the most common age range + return FALSE //not necessary because this is basically the most common age range if(18 to 24) return "Young" else return "Puzzling" /mob/living/carbon/human/proc/get_generic_name(prefixed = FALSE, lowercase = FALSE) + var/final_string = "" var/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) var/hide_features = (obscured & ITEM_SLOT_ICLOTHING) && skipface - var/visible_adjective + if(generic_adjective && !hide_features) - visible_adjective = "[generic_adjective] " + final_string += "[generic_adjective] " + var/visible_age = get_age() if(visible_age) - visible_age = "[visible_age] " - var/visible_gender = get_gender() - var/final_string = "[visible_adjective][visible_age][dna.species.name] [visible_gender]" + final_string += "[visible_age] " + + final_string += "[dna.species.name] " + + final_string += get_gender() + if(prefixed) final_string = "\A [final_string]" - return lowercase ? lowertext(final_string) : final_string + + if(lowercase) + final_string = lowertext(final_string) + return final_string /mob/living/carbon/human/proc/get_gender() var/visible_gender = p_they() @@ -218,10 +226,7 @@ if("she") visible_gender = "Woman" if("they") - if(ishuman(src)) - visible_gender = "Person" - else - visible_gender = "Creature" + visible_gender = "Person" else visible_gender = "Thing" return visible_gender diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index d9b4da586e79..166d2d4e83a0 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -859,9 +859,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.dna.species.bodytype & BODYTYPE_DIGITIGRADE) var/uniform_compatible = FALSE var/suit_compatible = FALSE - if(!(H.w_uniform) || (H.w_uniform.supports_variations & DIGITIGRADE_VARIATION) || (H.w_uniform.supports_variations & DIGITIGRADE_VARIATION_NO_NEW_ICON)) //Checks uniform compatibility + if(!(H.w_uniform) || (H.w_uniform.supports_variations & DIGITIGRADE_VARIATION) || (H.w_uniform.supports_variations & DIGITIGRADE_VARIATION_NO_NEW_ICON) || (H.w_uniform.supports_variations & DIGITIGRADE_VARIATION_SAME_ICON_FILE)) //Checks uniform compatibility uniform_compatible = TRUE - if((!H.wear_suit) || (H.wear_suit.supports_variations & DIGITIGRADE_VARIATION) || !(H.wear_suit.body_parts_covered & LEGS) || (H.wear_suit.supports_variations & DIGITIGRADE_VARIATION_NO_NEW_ICON)) //Checks suit compatability + if((!H.wear_suit) || (H.wear_suit.supports_variations & DIGITIGRADE_VARIATION) || !(H.wear_suit.body_parts_covered & LEGS) || (H.wear_suit.supports_variations & DIGITIGRADE_VARIATION_NO_NEW_ICON) || (H.wear_suit.supports_variations & DIGITIGRADE_VARIATION_SAME_ICON_FILE)) //Checks suit compatability suit_compatible = TRUE var/show_digitigrade = suit_compatible && (uniform_compatible || H.wear_suit?.flags_inv & HIDEJUMPSUIT) //If the uniform is hidden, it doesnt matter if its compatible @@ -1289,9 +1289,6 @@ GLOBAL_LIST_EMPTY(roundstart_races) /datum/species/proc/get_spans() return list() -/datum/species/proc/check_species_weakness(obj/item, mob/living/attacker) - return 0 //This is not a boolean, it's the multiplier for the damage that the user takes from the item.It is added onto the check_weakness value of the mob, and then the force of the item is multiplied by this value - /** * Equip the outfit required for life. Replaces items currently worn. */ @@ -1448,7 +1445,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) user.visible_message("[user] starts stealing [target]'s [I.name]!", "You start stealing [target]'s [I.name]...", null, null, target) to_chat(target, "[user] starts stealing your [I.name]!") - if(do_after(user, I.strip_delay, TRUE, target, TRUE)) + if(do_after(user, I.strip_delay, target)) target.dropItemToGround(I, TRUE) user.put_in_hands(I) user.visible_message("[user] stole [target]'s [I.name]!", @@ -1608,8 +1605,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/armor_block = H.run_armor_check(affecting, "melee", I.armour_penetration, FALSE, "Your armor has protected your [hit_area]!", "Your armor has softened a hit to your [hit_area]!") armor_block = min(90,armor_block) //cap damage reduction at 90% - var/weakness = H.check_weakness(I, user) - apply_damage(I.force * weakness, I.damtype, def_zone, armor_block, H) + apply_damage(I.force, I.damtype, def_zone, armor_block, H) H.send_item_attack_message(I, user, hit_area) diff --git a/code/modules/mob/living/carbon/human/species_types/IPC.dm b/code/modules/mob/living/carbon/human/species_types/IPC.dm index 988466ec1533..9410111c9e4f 100644 --- a/code/modules/mob/living/carbon/human/species_types/IPC.dm +++ b/code/modules/mob/living/carbon/human/species_types/IPC.dm @@ -273,7 +273,11 @@ if(chassis_of_choice.is_digi) if(istype(BP,/obj/item/bodypart/leg)) - BP.bodytype = BODYTYPE_HUMANOID | BODYTYPE_ROBOTIC | BODYTYPE_DIGITIGRADE //i hate this so much + BP.bodytype |= BODYTYPE_DIGITIGRADE //i hate this so much + + if(chassis_of_choice.has_snout) + if(istype(BP,/obj/item/bodypart/head)) + BP.bodytype |= BODYTYPE_SNOUT //hate. hate. (tik tok tts) if(BP.uses_mutcolor) BP.should_draw_greyscale = TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 248e9f413795..4ad5297b73d9 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -1,4 +1,8 @@ #define ELZUOSE_EMAG_COLORS list("#00ffff", "#ffc0cb", "#9400D3", "#4B0082", "#0000FF", "#00FF00", "#FFFF00", "#FF7F00", "#FF0000") +#define GOOD_SOIL list(/turf/open/floor/plating/grass, /turf/open/floor/plating/dirt, /turf/open/floor/ship/dirt, /turf/open/floor/grass/ship, /turf/open/floor/plating/asteroid/whitesands/grass, /turf/open/floor/grass/fairy/beach) +#define DIG_TIME (7.5 SECONDS) +#define ROOT_TIME (3 SECONDS) +#define ROOT_CHARGE_GAIN (5 * ELZUOSE_CHARGE_SCALING_MULTIPLIER) /datum/species/elzuose name = "\improper Elzuose" @@ -14,6 +18,7 @@ attack_type = BURN //burn bish exotic_bloodtype = "E" damage_overlay_type = "" //We are too cool for regular damage overlays + species_age_max = 300 species_traits = list(DYNCOLORS, EYECOLOR, HAIR, FACEHAIR) changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT species_language_holder = /datum/language_holder/ethereal @@ -41,40 +46,120 @@ var/current_color var/EMPeffect = FALSE - var/emag_effect = FALSE var/static/unhealthy_color = rgb(237, 164, 149) loreblurb = "Elzuosa are an uncommon and unusual species best described as crystalline, electrically-powered plantpeople. They hail from the warm planet Kalixcis, where they evolved alongside the Sarathi. Kalixcian culture places no importance on blood-bonds, and those from it tend to consider their family anyone they are sufficiently close to, and choose their own names." var/drain_time = 0 //used to keep ethereals from spam draining power sources var/obj/effect/dummy/lighting_obj/ethereal_light + var/datum/action/innate/root/rooting /datum/species/elzuose/Destroy(force) if(ethereal_light) QDEL_NULL(ethereal_light) return ..() -/datum/species/elzuose/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) +/datum/species/elzuose/on_species_gain(mob/living/carbon/_carbon, datum/species/old_species, pref_load) . = ..() - if(!ishuman(C)) + if(!ishuman(_carbon)) return - var/mob/living/carbon/human/ethereal = C + var/mob/living/carbon/human/ethereal = _carbon default_color = "#[ethereal.dna.features["ethcolor"]]" - RegisterSignal(ethereal, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emag_act)) RegisterSignal(ethereal, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act)) ethereal_light = ethereal.mob_light() spec_updatehealth(ethereal) + rooting = new + rooting.Grant(_carbon) + RegisterSignal(ethereal, COMSIG_DIGOUT, PROC_REF(digout)) + RegisterSignal(ethereal, COMSIG_MOVABLE_MOVED, PROC_REF(uproot)) //The following code is literally only to make admin-spawned ethereals not be black. - C.dna.features["mcolor"] = C.dna.features["ethcolor"] //Ethcolor and Mut color are both dogshit and will be replaced - for(var/obj/item/bodypart/BP as anything in C.bodyparts) + _carbon.dna.features["mcolor"] = _carbon.dna.features["ethcolor"] //Ethcolor and Mut color are both dogshit and will be replaced + for(var/obj/item/bodypart/BP as anything in _carbon.bodyparts) if(BP.limb_id == SPECIES_ELZUOSE) BP.update_limb(is_creating = TRUE) -/datum/species/elzuose/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load) - UnregisterSignal(C, COMSIG_ATOM_EMAG_ACT) - UnregisterSignal(C, COMSIG_ATOM_EMP_ACT) +/datum/species/elzuose/on_species_loss(mob/living/carbon/human/_carbon, datum/species/new_species, pref_load) + UnregisterSignal(_carbon, COMSIG_ATOM_EMP_ACT) + UnregisterSignal(_carbon, COMSIG_DIGOUT) + UnregisterSignal(_carbon, COMSIG_MOVABLE_MOVED) QDEL_NULL(ethereal_light) + if(rooting) + rooting.Remove(_carbon) return ..() +/datum/action/innate/root + name = "Root" + desc = "Root into good soil to gain charge." + check_flags = AB_CHECK_CONSCIOUS + button_icon_state = "plant-22" + icon_icon = 'icons/obj/flora/plants.dmi' + background_icon_state = "bg_alien" + +/datum/action/innate/root/Activate() + var/mob/living/carbon/human/_human = owner + var/datum/species/elzuose/_elzu = _human.dna.species + // this is healthy for elzu, they shouldnt be able to overcharge and get heart attacks from this + var/obj/item/organ/stomach/ethereal/stomach = _human.getorganslot(ORGAN_SLOT_STOMACH) + + if(_human.wear_suit && istype(_human.wear_suit, /obj/item/clothing)) + var/obj/item/clothing/CS = _human.wear_suit + if (CS.clothing_flags & THICKMATERIAL) + to_chat(_human, span_warning("Your [CS.name] is too thick to root in!")) + return + + if(stomach.crystal_charge > ELZUOSE_CHARGE_FULL) + to_chat(_human,span_warning("Your charge is full!")) + return + _elzu.drain_time = world.time + ROOT_TIME + _human.visible_message(span_notice("[_human] is digging into the ground"),span_warning("You start to dig yourself into the ground to root. You won't won't be able to move once you start the process."),span_notice("You hear digging.")) + if(!do_after(_human,DIG_TIME, target = _human)) + to_chat(_human,span_warning("You were interupted!")) + return + _human.apply_status_effect(/datum/status_effect/rooted) + to_chat(_human, span_notice("You root into the ground and begin to feed.")) + + while(do_after(_human, ROOT_TIME, target = _human)) + if(istype(stomach)) + to_chat(_human, span_notice("You receive some charge from rooting.")) + stomach.adjust_charge(ROOT_CHARGE_GAIN) + _human.adjustBruteLoss(-3) + _human.adjustFireLoss(-3) + + if(stomach.crystal_charge > ELZUOSE_CHARGE_FULL) + stomach.crystal_charge = ELZUOSE_CHARGE_FULL + to_chat(_human, span_notice("You're full on charge!")) + break + + else + to_chat(_human,span_warning("You're missing your biological battery and can't recieve charge from rooting!")) + break + +/datum/species/elzuose/proc/digout(mob/living/carbon/human/_human) + if(do_after(_human, DIG_TIME,target = _human)) + to_chat(_human,span_notice("You finish digging yourself out.")) + _human.remove_status_effect(/datum/status_effect/rooted) + return + +/datum/species/elzuose/proc/uproot(mob/living/carbon/human/_human) + //You got moved and uprooted, time to suffer the consequences. + if(_human.has_status_effect(/datum/status_effect/rooted)) + _human.visible_message(span_warning("[_human] is forcefully uprooted. That looked like it hurt."),span_warning("You're forcefully unrooted! Ouch!"),span_warning("You hear someone scream in pain.")) + _human.apply_damage(8,BRUTE,BODY_ZONE_CHEST) + _human.apply_damage(8,BRUTE,BODY_ZONE_L_LEG) + _human.apply_damage(8,BRUTE,BODY_ZONE_R_LEG) + _human.emote("scream") + _human.remove_status_effect(/datum/status_effect/rooted) + return + +/datum/action/innate/root/IsAvailable() + if(..()) + var/mob/living/carbon/human/_human = owner + var/turf/terrain = get_turf(_human) + if(_human.has_status_effect(/datum/status_effect/rooted)) + return FALSE + if(is_type_in_list(terrain,GOOD_SOIL)) + return TRUE + return FALSE + /datum/species/elzuose/random_name(gender,unique,lastname) if(unique) return random_unique_lizard_name(gender) @@ -86,30 +171,29 @@ return randname -/datum/species/elzuose/spec_updatehealth(mob/living/carbon/human/H) +/datum/species/elzuose/spec_updatehealth(mob/living/carbon/human/_human) . = ..() if(!ethereal_light) return - if(H.stat != DEAD && !EMPeffect) - if(!emag_effect) - current_color = health_adjusted_color(H, default_color) - set_ethereal_light(H, current_color) + if(_human.stat != DEAD && !EMPeffect) + current_color = health_adjusted_color(_human, default_color) + set_ethereal_light(_human, current_color) ethereal_light.set_light_on(TRUE) fixed_mut_color = copytext_char(current_color, 2) else ethereal_light.set_light_on(FALSE) fixed_mut_color = rgb(128,128,128) - for(var/obj/item/bodypart/parts_to_update as anything in H.bodyparts) + for(var/obj/item/bodypart/parts_to_update as anything in _human.bodyparts) parts_to_update.species_color = fixed_mut_color parts_to_update.update_limb() - H.update_body() - H.update_hair() + _human.update_body() + _human.update_hair() -/datum/species/elzuose/proc/health_adjusted_color(mob/living/carbon/human/H, default_color) - var/health_percent = max(H.health, 0) / 100 +/datum/species/elzuose/proc/health_adjusted_color(mob/living/carbon/human/_human, default_color) + var/health_percent = max(_human.health, 0) / 100 var/static/unhealthy_color_red_part = GETREDPART(unhealthy_color) var/static/unhealthy_color_green_part = GETGREENPART(unhealthy_color) @@ -126,141 +210,87 @@ ) return result -/datum/species/elzuose/proc/set_ethereal_light(mob/living/carbon/human/H, current_color) +/datum/species/elzuose/proc/set_ethereal_light(mob/living/carbon/human/_human, current_color) if(!ethereal_light) return - var/health_percent = max(H.health, 0) / 100 + var/health_percent = max(_human.health, 0) / 100 var/light_range = 1 + (1 * health_percent) var/light_power = 1 + round(0.5 * health_percent) ethereal_light.set_light_range_power_color(light_range, light_power, current_color) -/datum/species/elzuose/proc/on_emp_act(mob/living/carbon/human/H, severity) +/datum/species/elzuose/proc/on_emp_act(mob/living/carbon/human/_human, severity) EMPeffect = TRUE - spec_updatehealth(H) - to_chat(H, "You feel the light of your body leave you.") + spec_updatehealth(_human) + to_chat(_human, span_notice("You feel the light of your body leave you.")) switch(severity) if(EMP_LIGHT) - addtimer(CALLBACK(src, PROC_REF(stop_emp), H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds + addtimer(CALLBACK(src, PROC_REF(stop_emp), _human), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds if(EMP_HEAVY) - addtimer(CALLBACK(src, PROC_REF(stop_emp), H), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds + addtimer(CALLBACK(src, PROC_REF(stop_emp), _human), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds -/datum/species/elzuose/proc/on_emag_act(mob/living/carbon/human/H, mob/user) - if(emag_effect) - return - emag_effect = TRUE - if(user) - to_chat(user, "You tap [H] on the back with your card.") - H.visible_message("[H] starts flickering in an array of colors!") - handle_emag(H) - addtimer(CALLBACK(src, PROC_REF(stop_emag), H), 30 SECONDS) //Disco mode for 30 seconds! This doesn't affect the ethereal at all besides either annoying some players, or making someone look badass. - -/datum/species/elzuose/spec_life(mob/living/carbon/human/H) +/datum/species/elzuose/spec_life(mob/living/carbon/human/_human) .=..() - handle_charge(H) + handle_charge(_human) -/datum/species/elzuose/proc/stop_emp(mob/living/carbon/human/H) +/datum/species/elzuose/proc/stop_emp(mob/living/carbon/human/_human) EMPeffect = FALSE - spec_updatehealth(H) - to_chat(H, "You feel more energized as your shine comes back.") + spec_updatehealth(_human) + to_chat(_human, span_notice("You feel more energized as your shine comes back.")) -/datum/species/elzuose/proc/handle_emag(mob/living/carbon/human/H) - if(!emag_effect) - return - current_color = pick(ELZUOSE_EMAG_COLORS) - spec_updatehealth(H) - addtimer(CALLBACK(src, PROC_REF(handle_emag), H), 5) //Call ourselves every 0.5 seconds to change color - -/datum/species/elzuose/proc/stop_emag(mob/living/carbon/human/H) - emag_effect = FALSE - spec_updatehealth(H) - H.visible_message("[H] stops flickering and goes back to their normal state!") - -/datum/species/elzuose/proc/handle_charge(mob/living/carbon/human/H) +/datum/species/elzuose/proc/handle_charge(mob/living/carbon/human/_human) brutemod = 1.25 - switch(get_charge(H)) + switch(get_charge(_human)) if(ELZUOSE_CHARGE_NONE to ELZUOSE_CHARGE_LOWPOWER) - if(get_charge(H) == ELZUOSE_CHARGE_NONE) - H.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 3) + if(get_charge(_human) == ELZUOSE_CHARGE_NONE) + _human.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 3) else - H.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 2) - if(H.health > 10.5) - apply_damage(0.2, TOX, null, null, H) + _human.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 2) + if(_human.health > 10.5) + apply_damage(0.2, TOX, null, null, _human) brutemod = 1.75 if(ELZUOSE_CHARGE_LOWPOWER to ELZUOSE_CHARGE_NORMAL) - H.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 1) + _human.throw_alert("ELZUOSE_CHARGE", /atom/movable/screen/alert/etherealcharge, 1) brutemod = 1.5 if(ELZUOSE_CHARGE_FULL to ELZUOSE_CHARGE_OVERLOAD) - H.throw_alert("ethereal_overcharge", /atom/movable/screen/alert/ethereal_overcharge, 1) + _human.throw_alert("ethereal_overcharge", /atom/movable/screen/alert/ethereal_overcharge, 1) brutemod = 1.5 if(ELZUOSE_CHARGE_OVERLOAD to ELZUOSE_CHARGE_DANGEROUS) - H.throw_alert("ethereal_overcharge", /atom/movable/screen/alert/ethereal_overcharge, 2) + _human.throw_alert("ethereal_overcharge", /atom/movable/screen/alert/ethereal_overcharge, 2) brutemod = 1.75 if(prob(10)) //10% each tick for ethereals to explosively release excess energy if it reaches dangerous levels - discharge_process(H) + discharge_process(_human) else - H.clear_alert("ELZUOSE_CHARGE") - H.clear_alert("ethereal_overcharge") + _human.clear_alert("ELZUOSE_CHARGE") + _human.clear_alert("ethereal_overcharge") -/datum/species/elzuose/proc/discharge_process(mob/living/carbon/human/H) - to_chat(H, "You begin to lose control over your charge!") - H.visible_message("[H] begins to spark violently!") +/datum/species/elzuose/proc/discharge_process(mob/living/carbon/human/_human) + _human.visible_message(span_danger("[_human] begins to spark violently!"),_human,span_warning("You begin to lose control over your charge!")) var/static/mutable_appearance/overcharge //shameless copycode from lightning spell overcharge = overcharge || mutable_appearance('icons/effects/effects.dmi', "electricity", EFFECTS_LAYER) - H.add_overlay(overcharge) - if(do_mob(H, H, 50, 1)) - H.flash_lighting_fx(5, 7, current_color) - var/obj/item/organ/stomach/ethereal/stomach = H.getorganslot(ORGAN_SLOT_STOMACH) - playsound(H, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) - H.cut_overlay(overcharge) - tesla_zap(H, 2, (stomach.crystal_charge / ELZUOSE_CHARGE_SCALING_MULTIPLIER) * 50, ZAP_OBJ_DAMAGE | ZAP_ALLOW_DUPLICATES) + _human.add_overlay(overcharge) + if(do_after(_human, 50, _human, 1)) + _human.flash_lighting_fx(5, 7, current_color) + var/obj/item/organ/stomach/ethereal/stomach = _human.getorganslot(ORGAN_SLOT_STOMACH) + playsound(_human, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) + _human.cut_overlay(overcharge) + tesla_zap(_human, 2, (stomach.crystal_charge / ELZUOSE_CHARGE_SCALING_MULTIPLIER) * 50, ZAP_OBJ_DAMAGE | ZAP_ALLOW_DUPLICATES) if(istype(stomach)) stomach.adjust_charge(ELZUOSE_CHARGE_FULL - stomach.crystal_charge) - to_chat(H, "You violently discharge energy!") - H.visible_message("[H] violently discharges energy!") + to_chat(_human,span_warning("You violently discharge energy!")) + _human.visible_message(span_danger("[_human] violently discharges energy!")) if(prob(10)) //chance of developing heart disease to dissuade overcharging oneself var/datum/disease/D = new /datum/disease/heart_failure - H.ForceContractDisease(D) - to_chat(H, "You're pretty sure you just felt your heart stop for a second there..") - H.playsound_local(H, 'sound/effects/singlebeat.ogg', 100, 0) - H.Paralyze(100) + _human.ForceContractDisease(D) + to_chat(_human, span_userdanger("You're pretty sure you just felt your heart stop for a second there.")) + _human.playsound_local(_human, 'sound/effects/singlebeat.ogg', 100, 0) + _human.Paralyze(100) return -/datum/species/elzuose/proc/get_charge(mob/living/carbon/H) //this feels like it should be somewhere else. Eh? - var/obj/item/organ/stomach/ethereal/stomach = H.getorganslot(ORGAN_SLOT_STOMACH) +/datum/species/elzuose/proc/get_charge(mob/living/carbon/_human) //this feels like it should be somewhere else. Eh? + var/obj/item/organ/stomach/ethereal/stomach = _human.getorganslot(ORGAN_SLOT_STOMACH) if(istype(stomach)) return stomach.crystal_charge return ELZUOSE_CHARGE_NONE - -/datum/species/elzuose/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - if(istype(I, /obj/item/multitool)) - if(user.a_intent == INTENT_HARM) - . = ..() // multitool beatdown - return - - if (emag_effect == TRUE) - to_chat(user, "The multitool can't get a lock on [H]'s EM frequency") - return - - if(user != H) - // random color change - default_color = "#" + GLOB.color_list_ethereal[pick(GLOB.color_list_ethereal)] - current_color = health_adjusted_color(H, default_color) - spec_updatehealth(H) - H.visible_message("[H]'s EM frequency is scrambled to a random color.") - else - // select new color - var/new_etherealcolor = input(user, "Choose your Elzuose color:", "Character Preference",default_color) as color|null - if(new_etherealcolor) - var/temp_hsv = RGBtoHSV(new_etherealcolor) - if(ReadHSV(temp_hsv)[3] >= ReadHSV("#505050")[3]) // elzu colors should be bright ok?? - default_color = sanitize_hexcolor(new_etherealcolor, 6, TRUE) - current_color = health_adjusted_color(H, default_color) - spec_updatehealth(H) - H.visible_message("[H] modulates \his EM frequency to [new_etherealcolor].") - else - to_chat(user, "Invalid color. Your color is not bright enough.") - else - . = ..() diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index af19f1316ce2..f5de9f873b3b 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -35,7 +35,3 @@ "You throw up on the floor!") return ..() -/datum/species/fly/check_species_weakness(obj/item/weapon, mob/living/attacker) - if(istype(weapon, /obj/item/melee/flyswatter)) - return 29 //Flyswatters deal 30x damage to flypeople. - return 0 diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index eb78ef131644..30f3d5f74b58 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -313,7 +313,7 @@ H.notransform = TRUE - if(do_after(owner, delay=60, needhand=FALSE, target=owner, progress=TRUE)) + if(do_after(owner, delay=60, target=owner, progress=TRUE, timed_action_flags = IGNORE_HELD_ITEM)) if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT) make_dupe() else diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 384677cfb73c..6cb15357cc64 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -3,6 +3,7 @@ name = "\improper Sarathi" id = SPECIES_SARATHI default_color = "00FF00" + species_age_max = 175 species_traits = list(MUTCOLORS,EYECOLOR,LIPS,SCLERA,EMOTE_OVERLAY,MUTCOLORS_SECONDARY) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_REPTILE mutant_bodyparts = list("tail_lizard", "face_markings", "frills", "horns", "spines", "body_markings", "legs") diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index b20b27efc928..91169299afba 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -73,11 +73,6 @@ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) return ..() -/datum/species/moth/check_species_weakness(obj/item/weapon, mob/living/attacker) - if(istype(weapon, /obj/item/melee/flyswatter)) - return 9 //flyswatters deal 10x damage to moths - return 0 - /datum/species/space_move(mob/living/carbon/human/H) . = ..() if(H.loc && !isspaceturf(H.loc) && H.getorganslot(ORGAN_SLOT_WINGS) && !flying_species) //"flying_species" is exclusive to the potion of flight, which has its flying mechanics. If they want to fly they can use that instead diff --git a/code/modules/mob/living/carbon/human/species_types/spider.dm b/code/modules/mob/living/carbon/human/species_types/spider.dm index 847d6ad74f3f..9c0f58dc8312 100644 --- a/code/modules/mob/living/carbon/human/species_types/spider.dm +++ b/code/modules/mob/living/carbon/human/species_types/spider.dm @@ -97,11 +97,6 @@ GLOBAL_LIST_INIT(spider_last, world.file2list("strings/names/spider_last.txt")) H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) return ..() -/datum/species/spider/check_species_weakness(obj/item/weapon, mob/living/attacker) - if(istype(weapon, /obj/item/melee/flyswatter)) - return 9 //flyswatters deal 10x damage to spiders - return 0 - /mob/living/carbon/human/species/spider race = /datum/species/spider diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 070894a92bee..5caf871a7f23 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -53,11 +53,6 @@ C.adjust_fire_stacks(6) C.IgniteMob() -/datum/species/vampire/check_species_weakness(obj/item/weapon, mob/living/attacker) - if(istype(weapon, /obj/item/nullrod/whip)) - return 1 //Whips deal 2x damage to vampires. Vampire killer. - return 0 - /obj/item/organ/tongue/vampire name = "vampire tongue" actions_types = list(/datum/action/item_action/organ_action/vampire) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 09445cef4c4e..be99a1e4d547 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -124,25 +124,32 @@ There are several things that need to be remembered: var/mutable_appearance/uniform_overlay - var/icon_file + var/icon_file = U.mob_overlay_icon var/handled_by_bodytype = TRUE if(!uniform_overlay) //Kapu's autistic attempt at digitigrade handling //Hi Kapu - if((dna.species.bodytype & BODYTYPE_DIGITIGRADE) && (U.supports_variations & DIGITIGRADE_VARIATION)) + if((dna.species.bodytype & BODYTYPE_DIGITIGRADE) && ((U.supports_variations & DIGITIGRADE_VARIATION) || (U.supports_variations & DIGITIGRADE_VARIATION_SAME_ICON_FILE))) icon_file = DIGITIGRADE_PATH + if((U.supports_variations & DIGITIGRADE_VARIATION_SAME_ICON_FILE)) + icon_file = U.mob_overlay_icon + target_overlay = "[target_overlay]_digi" else if((dna.species.bodytype & BODYTYPE_VOX) && (U.supports_variations & VOX_VARIATION)) icon_file = VOX_UNIFORM_PATH + if(U.vox_override_icon) + icon_file = U.vox_override_icon else if((dna.species.bodytype & BODYTYPE_KEPORI) && (U.supports_variations & KEPORI_VARIATION)) icon_file = KEPORI_UNIFORM_PATH + if(U.kepoi_override_icon) + icon_file = U.kepoi_override_icon if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(U)))) handled_by_bodytype = FALSE icon_file = U.mob_overlay_icon || DEFAULT_UNIFORM_PATH - uniform_overlay = U.build_worn_icon(default_layer = UNIFORM_LAYER, default_icon_file = icon_file, isinhands = FALSE, override_file = icon_file, override_state = target_overlay, mob_species = CHECK_USE_AUTOGEN) + uniform_overlay = U.build_worn_icon(default_layer = UNIFORM_LAYER, default_icon_file = icon_file, override_file = icon_file, isinhands = FALSE, override_file = icon_file, override_state = target_overlay, mob_species = CHECK_USE_AUTOGEN) if(!uniform_overlay) return @@ -205,19 +212,23 @@ There are several things that need to be remembered: update_hud_gloves(I) var/handled_by_bodytype = TRUE - var/icon_file + var/icon_file = I.mob_overlay_icon if((dna.species.bodytype & BODYTYPE_VOX) && (I.supports_variations & VOX_VARIATION)) icon_file = VOX_GLOVES_PATH + if(I.vox_override_icon) + icon_file = I.vox_override_icon if((dna.species.bodytype & BODYTYPE_KEPORI) && (I.supports_variations & KEPORI_VARIATION)) icon_file = KEPORI_GLOVES_PATH + if(I.kepoi_override_icon) + icon_file = I.kepoi_override_icon if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(I)))) handled_by_bodytype = FALSE icon_file = DEFAULT_GLOVES_PATH - gloves_overlay = I.build_worn_icon(default_layer = GLOVES_LAYER, default_icon_file = icon_file, mob_species = CHECK_USE_AUTOGEN) + gloves_overlay = I.build_worn_icon(default_layer = GLOVES_LAYER, default_icon_file = icon_file, override_file = icon_file, mob_species = CHECK_USE_AUTOGEN) if(!gloves_overlay) return @@ -241,16 +252,23 @@ There are several things that need to be remembered: if(!(head?.flags_inv & HIDEEYES) && !(wear_mask?.flags_inv & HIDEEYES)) var/mutable_appearance/glasses_overlay var/handled_by_bodytype = TRUE - var/icon_file + var/icon_file = I.mob_overlay_icon if((dna.species.bodytype & BODYTYPE_VOX) && (I.supports_variations & VOX_VARIATION)) icon_file = VOX_GLASSES_PATH - + if(I.vox_override_icon) + icon_file = I.vox_override_icon +/*uncomment post kepori resprite + if((dna.species.bodytype & BODYTYPE_KEPORI) && (I.supports_variations & KEPORI_VARIATION)) + icon_file = KEPORI_GLASSES_PATH + if(I.kepoi_override_icon) + icon_file = I.kepoi_override_icon +*/ if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(I)))) handled_by_bodytype = FALSE icon_file = DEFAULT_GLASSES_PATH - glasses_overlay = I.build_worn_icon(default_layer = GLASSES_LAYER, default_icon_file = icon_file, mob_species = CHECK_USE_AUTOGEN) + glasses_overlay = I.build_worn_icon(default_layer = GLASSES_LAYER, default_icon_file = icon_file, override_file = icon_file, mob_species = CHECK_USE_AUTOGEN) if(!glasses_overlay) return @@ -274,11 +292,18 @@ There are several things that need to be remembered: update_hud_ears(I) var/handled_by_bodytype = TRUE - var/icon_file + var/icon_file = I.mob_overlay_icon if((dna.species.bodytype & BODYTYPE_VOX) && (I.supports_variations & VOX_VARIATION)) icon_file = VOX_EARS_PATH - + if(I.vox_override_icon) + icon_file = I.vox_override_icon +/*uncomment post kepori resprite + if((dna.species.bodytype & BODYTYPE_KEPORI) && (I.supports_variations & KEPORI_VARIATION)) + icon_file = KEPORI_EARS_PATH + if(I.kepoi_override_icon) + icon_file = I.kepoi_override_icon +*/ if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(I)))) handled_by_bodytype = FALSE icon_file = DEFAULT_EARS_PATH @@ -304,26 +329,34 @@ There are several things that need to be remembered: if(shoes) var/obj/item/I = shoes var/mutable_appearance/shoes_overlay - var/icon_file + var/icon_file = I.mob_overlay_icon + var/target_overlay = I.icon_state update_hud_shoes(I) var/handled_by_bodytype = TRUE - if((dna.species.bodytype & BODYTYPE_DIGITIGRADE) && (I.supports_variations & DIGITIGRADE_VARIATION)) + if((dna.species.bodytype & BODYTYPE_DIGITIGRADE) && ((I.supports_variations & DIGITIGRADE_VARIATION) || (I.supports_variations & DIGITIGRADE_VARIATION_SAME_ICON_FILE))) var/obj/item/bodypart/leg = src.get_bodypart(BODY_ZONE_L_LEG) if(leg.bodytype & BODYTYPE_DIGITIGRADE && !leg.plantigrade_forced) icon_file = DIGITIGRADE_SHOES_PATH + if((I.supports_variations & DIGITIGRADE_VARIATION_SAME_ICON_FILE)) + icon_file = I.mob_overlay_icon + target_overlay = "[target_overlay]_digi" - if((I.supports_variations & VOX_VARIATION) && (dna.species.bodytype & BODYTYPE_VOX)) + if((dna.species.bodytype & BODYTYPE_VOX) && (I.supports_variations & VOX_VARIATION)) icon_file = VOX_SHOES_PATH + if(I.vox_override_icon) + icon_file = I.vox_override_icon - if((I.supports_variations & KEPORI_VARIATION) && (dna.species.bodytype & BODYTYPE_KEPORI)) + if((dna.species.bodytype & BODYTYPE_KEPORI) && (I.supports_variations & KEPORI_VARIATION)) icon_file = KEPORI_SHOES_PATH + if(I.kepoi_override_icon) + icon_file = I.kepoi_override_icon if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(I)))) handled_by_bodytype = FALSE icon_file = DEFAULT_SHOES_PATH - shoes_overlay = I.build_worn_icon(default_layer = SHOES_LAYER, default_icon_file = icon_file, isinhands = FALSE, mob_species = CHECK_USE_AUTOGEN) + shoes_overlay = I.build_worn_icon(default_layer = SHOES_LAYER, default_icon_file = icon_file, override_file = icon_file, isinhands = FALSE, mob_species = CHECK_USE_AUTOGEN, override_state = target_overlay) if(!shoes_overlay) return @@ -346,8 +379,7 @@ There are several things that need to be remembered: var/t_state = I.item_state if(!t_state) t_state = I.icon_state - - s_store_overlay = mutable_appearance('icons/mob/clothing/belt_mirror.dmi', t_state, -SUIT_STORE_LAYER) + s_store_overlay = I.build_worn_icon(default_layer = -SUIT_STORE_LAYER, default_icon_file = 'icons/mob/clothing/belt_mirror.dmi', override_state = t_state) if(!s_store_overlay) return @@ -360,25 +392,33 @@ There are several things that need to be remembered: if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_BACK) + 1]) var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_HEAD) + 1] inv.update_appearance() - if(head) var/obj/item/I = head var/mutable_appearance/head_overlay update_hud_head(I) var/handled_by_bodytype = TRUE - var/icon_file + var/icon_file = I.mob_overlay_icon + var/target_overlay = I.icon_state - if((I.supports_variations & VOX_VARIATION) && (dna.species.bodytype & BODYTYPE_VOX)) + var/obj/item/bodypart/head_bodypart = src.get_bodypart(BODY_ZONE_HEAD) + if((head_bodypart.bodytype & BODYTYPE_SNOUT) && (I.supports_variations & SNOUTED_VARIATION)) + target_overlay = "[target_overlay]_snouted" + + if((dna.species.bodytype & BODYTYPE_VOX) && (I.supports_variations & VOX_VARIATION)) icon_file = VOX_HEAD_PATH + if(I.vox_override_icon) + icon_file = I.vox_override_icon - if((I.supports_variations & KEPORI_VARIATION) && (dna.species.bodytype & BODYTYPE_KEPORI)) + if((dna.species.bodytype & BODYTYPE_KEPORI) && (I.supports_variations & KEPORI_VARIATION)) icon_file = KEPORI_HEAD_PATH + if(I.kepoi_override_icon) + icon_file = I.kepoi_override_icon if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(I)))) handled_by_bodytype = FALSE icon_file = DEFAULT_HEAD_PATH - head_overlay = I.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = icon_file, isinhands = FALSE, mob_species = CHECK_USE_AUTOGEN) + head_overlay = I.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = icon_file, override_file = icon_file, isinhands = FALSE, mob_species = CHECK_USE_AUTOGEN, override_state = target_overlay) if(!head_overlay) return @@ -399,19 +439,23 @@ There are several things that need to be remembered: var/mutable_appearance/belt_overlay update_hud_belt(I) var/handled_by_bodytype - var/icon_file + var/icon_file = I.mob_overlay_icon if((I.supports_variations & VOX_VARIATION) && (dna.species.bodytype & BODYTYPE_VOX)) icon_file = VOX_BELT_PATH + if(I.vox_override_icon) + icon_file = I.vox_override_icon //if((I.supports_variations & KEPORI_VARIATION) && (dna.species.bodytype & BODYTYPE_KEPORI)) //icon_file = KEPORI_BELT_PATH + //if(I.kepoi_override_icon) +// icon_file = I.kepoi_override_icon if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(I)))) handled_by_bodytype = FALSE icon_file = DEFAULT_BELT_PATH - belt_overlay = I.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = icon_file, mob_species = CHECK_USE_AUTOGEN) + belt_overlay = I.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = icon_file, override_file = icon_file, mob_species = CHECK_USE_AUTOGEN) if(!belt_overlay) return @@ -432,24 +476,31 @@ There are several things that need to be remembered: var/obj/item/I = wear_suit var/mutable_appearance/suit_overlay update_hud_wear_suit(I) - var/icon_file + var/icon_file = I.mob_overlay_icon + var/target_overlay = I.icon_state var/handled_by_bodytype = TRUE - if(dna.species.bodytype & BODYTYPE_DIGITIGRADE) - if(I.supports_variations & DIGITIGRADE_VARIATION) - icon_file = DIGITIGRADE_SUIT_PATH + if((dna.species.bodytype & BODYTYPE_DIGITIGRADE) && ((I.supports_variations & DIGITIGRADE_VARIATION) || (I.supports_variations & DIGITIGRADE_VARIATION_SAME_ICON_FILE))) + icon_file = DIGITIGRADE_SUIT_PATH + if((I.supports_variations & DIGITIGRADE_VARIATION_SAME_ICON_FILE)) + icon_file = I.mob_overlay_icon + target_overlay = "[target_overlay]_digi" else if((dna.species.bodytype & BODYTYPE_VOX) && (I.supports_variations & VOX_VARIATION)) icon_file = VOX_SUIT_PATH + if(I.vox_override_icon) + icon_file = I.vox_override_icon else if((dna.species.bodytype & BODYTYPE_KEPORI) && (I.supports_variations & KEPORI_VARIATION)) icon_file = KEPORI_SUIT_PATH + if(I.kepoi_override_icon) + icon_file = I.kepoi_override_icon if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(I)))) handled_by_bodytype = FALSE icon_file = I.mob_overlay_icon - suit_overlay = wear_suit.build_worn_icon(default_layer = SUIT_LAYER, override_file = icon_file, mob_species = CHECK_USE_AUTOGEN) + suit_overlay = wear_suit.build_worn_icon(default_layer = SUIT_LAYER, override_file = icon_file, mob_species = CHECK_USE_AUTOGEN, override_state = target_overlay) if(!suit_overlay) return @@ -496,21 +547,30 @@ There are several things that need to be remembered: var/obj/item/I = wear_mask update_hud_wear_mask(I) var/mutable_appearance/mask_overlay - var/icon_file + var/icon_file = I.mob_overlay_icon + var/target_overlay = I.icon_state var/handled_by_bodytype = TRUE if(!(ITEM_SLOT_MASK in check_obscured_slots())) + var/obj/item/bodypart/head_bodypart = src.get_bodypart(BODY_ZONE_HEAD) + if((head_bodypart.bodytype & BODYTYPE_SNOUT) && (I.supports_variations & SNOUTED_VARIATION)) + target_overlay = "[target_overlay]_snouted" + if((dna.species.bodytype & BODYTYPE_VOX) && (I.supports_variations & VOX_VARIATION)) icon_file = VOX_MASK_PATH + if(I.vox_override_icon) + icon_file = I.vox_override_icon if((dna.species.bodytype & BODYTYPE_KEPORI) && (I.supports_variations & KEPORI_VARIATION)) icon_file = KEPORI_MASK_PATH + if(I.kepoi_override_icon) + icon_file = I.kepoi_override_icon if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(I)))) icon_file = DEFAULT_MASK_PATH handled_by_bodytype = FALSE - mask_overlay = I.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = icon_file, mob_species = CHECK_USE_AUTOGEN) + mask_overlay = I.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = icon_file, override_file = icon_file, mob_species = CHECK_USE_AUTOGEN, override_state = target_overlay) if(!mask_overlay) return @@ -530,14 +590,14 @@ There are several things that need to be remembered: var/obj/item/I = wear_neck update_hud_neck(I) if(!(ITEM_SLOT_NECK in check_obscured_slots())) - var/icon_file + var/icon_file = I.mob_overlay_icon var/handled_by_bodytype = TRUE if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(I)))) handled_by_bodytype = FALSE icon_file = DEFAULT_NECK_PATH - overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(default_layer = NECK_LAYER, default_icon_file = icon_file, mob_species = CHECK_USE_AUTOGEN) + overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(default_layer = NECK_LAYER, default_icon_file = icon_file, override_file = icon_file, mob_species = CHECK_USE_AUTOGEN) apply_overlay(NECK_LAYER) @@ -553,7 +613,7 @@ There are several things that need to be remembered: var/obj/item/I = back var/mutable_appearance/back_overlay update_hud_back(I) - var/icon_file + var/icon_file = I.mob_overlay_icon var/handled_by_bodytype = TRUE if((dna.species.bodytype & BODYTYPE_VOX) && (I.supports_variations & VOX_VARIATION)) icon_file = VOX_BACK_PATH @@ -562,7 +622,7 @@ There are several things that need to be remembered: icon_file = DEFAULT_BACK_PATH handled_by_bodytype = FALSE - back_overlay = I.build_worn_icon(default_layer = BACK_LAYER, default_icon_file = icon_file, isinhands = FALSE, override_file = icon_file, mob_species = CHECK_USE_AUTOGEN) + back_overlay = I.build_worn_icon(default_layer = BACK_LAYER, default_icon_file = icon_file, override_file = icon_file, isinhands = FALSE, override_file = icon_file, mob_species = CHECK_USE_AUTOGEN) if(!back_overlay) return diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index 1f730de799d0..8fd4e89566c7 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -296,7 +296,7 @@ return IsStandingStill() /mob/living/carbon/monkey/proc/pickpocket(mob/M) - if(do_mob(src, M, MONKEY_ITEM_SNATCH_DELAY) && pickupTarget) + if(do_after(src, MONKEY_ITEM_SNATCH_DELAY, M) && pickupTarget) for(var/obj/item/I in M.held_items) if(I == pickupTarget) M.visible_message("[src] snatches [pickupTarget] from [M].", "[src] snatched [pickupTarget]!") diff --git a/code/modules/mob/living/inhand_holder.dm b/code/modules/mob/living/inhand_holder.dm index e16dcf9e3326..f593a269cbd6 100644 --- a/code/modules/mob/living/inhand_holder.dm +++ b/code/modules/mob/living/inhand_holder.dm @@ -7,7 +7,8 @@ icon_state = "" slot_flags = NONE moth_edible = FALSE - w_class = 20 // so that only one can fit in a duffel bag + w_class = WEIGHT_CLASS_BULKY + w_volume = ITEM_VOLUME_MOB// so that only one can fit in a duffel bag var/mob/living/held_mob /obj/item/clothing/head/mob_holder/Initialize(mapload, mob/living/M, worn_state, head_icon, lh_icon, rh_icon, worn_slot_flags = NONE) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index b240836b55e7..cb0ec02ced34 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -507,7 +507,7 @@ /mob/living/proc/get_up(instant = FALSE) set waitfor = FALSE - if(!instant && !do_mob(src, src, 2 SECONDS, uninterruptible = TRUE, extra_checks = CALLBACK(src, TYPE_PROC_REF(/mob/living, rest_checks_callback)))) + if(!instant && !do_after(src, 1 SECONDS, src, timed_action_flags = (IGNORE_USER_LOC_CHANGE|IGNORE_TARGET_LOC_CHANGE|IGNORE_HELD_ITEM), extra_checks = CALLBACK(src, TYPE_PROC_REF(/mob/living, rest_checks_callback)), interaction_key = DOAFTER_SOURCE_GETTING_UP)) return if(resting || body_position == STANDING_UP || HAS_TRAIT(src, TRAIT_FLOORED)) return @@ -977,7 +977,7 @@ "[src] tries to remove your [what.name].", null, null, src) to_chat(src, "You try to remove [who]'s [what.name]...") what.add_fingerprint(src) - if(do_mob(src, who, what.strip_delay)) + if(do_after(src, what.strip_delay, who, interaction_key = what)) if(what && Adjacent(who)) if(islist(where)) var/list/L = where @@ -1024,7 +1024,7 @@ who.visible_message("[src] tries to put [what] on [who].", \ "[src] tries to put [what] on you.", null, null, src) to_chat(src, "You try to put [what] on [who]...") - if(do_mob(src, who, what.equip_delay_other)) + if(do_after(src, what.equip_delay_other, who)) if(what && Adjacent(who) && what.mob_can_equip(who, src, final_where, TRUE, TRUE)) if(temporarilyRemoveItemFromInventory(what)) if(where_list) @@ -1144,15 +1144,6 @@ devilInfo.remove_soul(mind) mind.soulOwner = mind -/mob/living/proc/has_bane(banetype) - var/datum/antagonist/devil/devilInfo = is_devil(src) - return devilInfo && banetype == devilInfo.bane - -/mob/living/proc/check_weakness(obj/item/weapon, mob/living/attacker) - if(mind && mind.has_antag_datum(/datum/antagonist/devil)) - return check_devil_bane_multiplier(weapon, attacker) - return 1 //This is not a boolean, it's the multiplier for the damage the weapon does. - /mob/living/proc/check_acedia() if(mind && mind.has_objective(/datum/objective/sintouched/acedia)) return TRUE diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 86c85d27360a..c1c4cd668792 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -101,6 +101,9 @@ return 1 else playsound(loc, 'sound/weapons/genhit.ogg', 50, TRUE, -1) //Item sounds are handled in the item itself + + if(body_position == LYING_DOWN) // physics says it's significantly harder to push someone by constantly chucking random furniture at them if they are down on the floor. + hitpush = FALSE ..() @@ -179,7 +182,7 @@ log_combat(user, src, "attempted to neck grab", addition="neck grab") if(GRAB_NECK) log_combat(user, src, "attempted to strangle", addition="kill grab") - if(!do_mob(user, src, grab_upgrade_time)) + if(!do_after(user, grab_upgrade_time, src)) return 0 if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state) return 0 diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index 3a07ffc4cb8d..22d68c8a6190 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -488,6 +488,9 @@ return TRUE /mob/living/simple_animal/bot/medbot/attack_hand(mob/living/carbon/human/H) + if(DOING_INTERACTION_WITH_TARGET(H, src)) + to_chat(H, "You're already interacting with [src].") + return if(H.a_intent == INTENT_DISARM && mode != BOT_TIPPED) H.visible_message("[H] begins tipping over [src].", "You begin tipping over [src]...") @@ -574,7 +577,7 @@ C.visible_message("[src] is trying to tend the wounds of [patient]!", \ "[src] is trying to tend your wounds!") - if(do_mob(src, patient, 20)) //Slightly faster than default tend wounds, but does less HPS + if(do_after(src, 2 SECONDS, patient)) //Slightly faster than default tend wounds, but does less HPS if((get_dist(src, patient) <= 1) && (on) && assess_patient(patient)) var/healies = heal_amount var/obj/item/storage/firstaid/FA = firstaid diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index aa49c6e52b59..a1b10b897db6 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -47,14 +47,14 @@ id = /obj/item/card/id/syndicate /obj/effect/mob_spawn/human/corpse/syndicateramzi - name = "Ramzi's Clique Commando" + name = "Ramzi Clique Commando" id_job = "Cutthroat" hairstyle = "Bald" facial_hairstyle = "Shaved" outfit = /datum/outfit/syndicateramzicorpse /datum/outfit/syndicateramzicorpse - name = "Ramzi's Clique Commando Corpse" + name = "Ramzi Clique Commando Corpse" uniform = /obj/item/clothing/under/syndicate/gorlex suit = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi shoes = /obj/item/clothing/shoes/combat diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index 8aeb3b64a8cd..104d4363bc3b 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -79,7 +79,7 @@ to_chat(user, "You can't seem to find the [pick(faux_gadgets)]! Without it, [src] [pick(faux_problems)].") return user.visible_message("[user] begins to reactivate [src].", "You begin to reactivate [src]...") - if(do_after(user, 30, 1, target = src)) + if(do_after(user, 30, target = src)) revive(full_heal = TRUE, admin_revive = FALSE) user.visible_message("[user] reactivates [src]!", "You reactivate [src].") alert_drones(DRONE_NET_CONNECT) diff --git a/code/modules/mob/living/simple_animal/friendly/mothroach.dm b/code/modules/mob/living/simple_animal/friendly/mothroach.dm index 2002ef3b5d8d..881e64d2a70f 100644 --- a/code/modules/mob/living/simple_animal/friendly/mothroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/mothroach.dm @@ -64,8 +64,3 @@ qdel(I) // this sucks else return ..() - -/mob/living/simple_animal/pet/mothroach/check_weakness(obj/item/weapon, mob/living/attacker) - if(istype(weapon, /obj/item/melee/flyswatter)) - return 9 // flyswatters deal 10x damage to mothroaches - return 0 diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm index 1e02c89c81f7..57f1b1892f9d 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/support.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm @@ -134,7 +134,7 @@ "You start to faintly glow, and you feel strangely weightless!") do_attack_animation(A) - if(!do_mob(src, A, 60)) //now start the channel + if(!do_after(src, 6 SECONDS, A)) //now start the channel to_chat(src, "You need to hold still!") return diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm deleted file mode 100644 index 57d6f2fc325f..000000000000 --- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm +++ /dev/null @@ -1,171 +0,0 @@ -//Paper Wizard Boss -/mob/living/simple_animal/hostile/boss/paper_wizard - name = "Mjor the Creative" - desc = "A wizard with a taste for the arts." - mob_biotypes = MOB_HUMANOID - boss_abilities = list(/datum/action/boss/wizard_summon_minions, /datum/action/boss/wizard_mimic) - faction = list("hostile","stickman") - del_on_death = TRUE - icon = 'icons/mob/simple_human.dmi' - icon_state = "paperwizard" - ranged = 1 - environment_smash = ENVIRONMENT_SMASH_NONE - minimum_distance = 3 - retreat_distance = 3 - obj_damage = 0 - melee_damage_lower = 10 - melee_damage_upper = 20 - health = 1000 - maxHealth = 1000 - loot = list(/obj/effect/temp_visual/paperwiz_dying) - projectiletype = /obj/projectile/temp - projectilesound = 'sound/weapons/emitter.ogg' - attack_sound = 'sound/hallucinations/growl1.ogg' - var/list/copies = list() - - footstep_type = FOOTSTEP_MOB_SHOE - - -//Summon Ability -//Lets the wizard summon his art to fight for him -/datum/action/boss/wizard_summon_minions - name = "Summon Minions" - icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' - button_icon_state = "art_summon" - usage_probability = 40 - boss_cost = 30 - boss_type = /mob/living/simple_animal/hostile/boss/paper_wizard - needs_target = FALSE - say_when_triggered = "Rise, my creations! Jump off your pages and into this realm!" - var/static/summoned_minions = 0 - -/datum/action/boss/wizard_summon_minions/Trigger() - if(summoned_minions <= 6 && ..()) - var/list/minions = list( - /mob/living/simple_animal/hostile/stickman, - /mob/living/simple_animal/hostile/stickman/ranged, - /mob/living/simple_animal/hostile/stickman/dog) - var/list/directions = GLOB.cardinals.Copy() - for(var/i in 1 to 3) - var/minions_chosen = pick_n_take(minions) - new minions_chosen (get_step(boss,pick_n_take(directions)), 1) - summoned_minions += 3; - - -//Mimic Ability -//Summons mimics of himself with magical papercraft -//Hitting a decoy hurts nearby people excluding the wizard himself -//Hitting the wizard himself destroys all decoys -/datum/action/boss/wizard_mimic - name = "Craft Mimicry" - icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' - button_icon_state = "mimic_summon" - usage_probability = 30 - boss_cost = 40 - boss_type = /mob/living/simple_animal/hostile/boss/paper_wizard - say_when_triggered = "" - -/datum/action/boss/wizard_mimic/Trigger() - if(..()) - var/mob/living/target - if(!boss.client) //AI's target - target = boss.target - else //random mob - var/list/threats = boss.PossibleThreats() - if(threats.len) - target = pick(threats) - if(target) - var/mob/living/simple_animal/hostile/boss/paper_wizard/wiz = boss - var/directions = GLOB.cardinals.Copy() - for(var/i in 1 to 3) - var/mob/living/simple_animal/hostile/boss/paper_wizard/copy/C = new (get_step(target,pick_n_take(directions))) - wiz.copies += C - C.original = wiz - C.say("My craft defines me, you could even say it IS me!") - wiz.say("My craft defines me, you could even say it IS me!") - wiz.forceMove(get_step(target,pick_n_take(directions))) - wiz.minimum_distance = 1 //so he doesn't run away and ruin everything - wiz.retreat_distance = 0 - else - boss.atb.refund(boss_cost) - -/mob/living/simple_animal/hostile/boss/paper_wizard/copy - desc = "'Tis a ruse!" - health = 1 - maxHealth = 1 - alpha = 200 - boss_abilities = list() - melee_damage_lower = 1 - melee_damage_upper = 5 - minimum_distance = 0 - retreat_distance = 0 - ranged = 0 - loot = list() - var/mob/living/simple_animal/hostile/boss/paper_wizard/original - -//Hit a fake? eat pain! -/mob/living/simple_animal/hostile/boss/paper_wizard/copy/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - if(amount > 0) //damage - if(original) - original.minimum_distance = 3 - original.retreat_distance = 3 - original.copies -= src - for(var/c in original.copies) - qdel(c) - for(var/mob/living/L in range(5,src)) - if(L == original || istype(L, type)) - continue - L.adjustBruteLoss(50) - qdel(src) - else - . = ..() - -//Hit the real guy? copies go bai-bai -/mob/living/simple_animal/hostile/boss/paper_wizard/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - . = ..() - if(. > 0)//damage - minimum_distance = 3 - retreat_distance = 3 - for(var/copy in copies) - qdel(copy) - -/mob/living/simple_animal/hostile/boss/paper_wizard/copy/examine(mob/user) - . = ..() - qdel(src) //I see through your ruse! - -//fancy effects -/obj/effect/temp_visual/paper_scatter - name = "scattering paper" - desc = "Pieces of paper scattering to the wind." - layer = ABOVE_OPEN_TURF_LAYER - icon = 'icons/effects/effects.dmi' - icon_state = "paper_scatter" - anchored = TRUE - duration = 5 - randomdir = FALSE - -/obj/effect/temp_visual/paperwiz_dying - name = "craft portal" - desc = "A wormhole sucking the wizard into the void. Neat." - layer = ABOVE_OPEN_TURF_LAYER - icon = 'icons/effects/effects.dmi' - icon_state = "paperwiz_poof" - anchored = TRUE - duration = 18 - randomdir = FALSE - -/obj/effect/temp_visual/paperwiz_dying/Initialize() - . = ..() - visible_message("The wizard cries out in pain as a gate appears behind him, sucking him in!") - playsound(get_turf(src),'sound/magic/mandswap.ogg', 50, TRUE, TRUE) - playsound(get_turf(src),'sound/hallucinations/wail.ogg', 50, TRUE, TRUE) - -/obj/effect/temp_visual/paperwiz_dying/Destroy() - for(var/mob/M in range(7,src)) - shake_camera(M, 7, 1) - var/turf/T = get_turf(src) - playsound(T,'sound/magic/summon_magic.ogg', 50, TRUE, TRUE) - new /obj/effect/temp_visual/paper_scatter(T) - new /obj/item/clothing/suit/wizrobe/paper(T) - new /obj/item/clothing/head/collectable/paper(T) - return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm deleted file mode 100644 index 5c3e60c8377b..000000000000 --- a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm +++ /dev/null @@ -1,41 +0,0 @@ -/mob/living/simple_animal/hostile/dark_wizard - name = "Dark Wizard" - desc = "Killing amateurs since the dawn of times." - icon = 'icons/mob/simple_human.dmi' - icon_state = "dark_wizard" - icon_living = "dark_wizard" - move_to_delay = 10 - projectiletype = /obj/projectile/temp/earth_bolt - projectilesound = 'sound/magic/ethereal_enter.ogg' - ranged = TRUE - ranged_message = "earth bolts" - ranged_cooldown_time = 20 - maxHealth = 50 - health = 50 - harm_intent_damage = 5 - obj_damage = 20 - melee_damage_lower = 5 - melee_damage_upper = 5 - attack_verb_continuous = "staves" - a_intent = INTENT_HARM - speak_emote = list("chants") - attack_sound = 'sound/weapons/bladeslice.ogg' - aggro_vision_range = 9 - turns_per_move = 5 - gold_core_spawnable = HOSTILE_SPAWN - faction = list(ROLE_WIZARD) - footstep_type = FOOTSTEP_MOB_SHOE - weather_immunities = list("lava","ash") - minbodytemp = 0 - maxbodytemp = INFINITY - 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) - loot = list(/obj/effect/decal/remains/human) - del_on_death = TRUE - -/obj/projectile/temp/earth_bolt - name = "earth bolt" - icon_state = "declone" - damage = 4 - damage_type = BURN - flag = "energy" - temperature = -100 // closer to the old temp loss diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 526763e875b7..70ce3f665bab 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -30,7 +30,7 @@ var/ranged_cooldown = 0 //What the current cooldown on ranged attacks is, generally world.time + ranged_cooldown_time var/ranged_cooldown_time = 30 //How long, in deciseconds, the cooldown of ranged attacks is var/ranged_ignores_vision = FALSE //if it'll fire ranged attacks even if it lacks vision on its target, only works with environment smash - var/check_friendly_fire = 0 // Should the ranged mob check for friendlies when shooting + var/check_friendly_fire = FALSE // Should the ranged mob check for friendlies when shooting var/retreat_distance = null //If our mob runs from players when they're too close, set in tile distance. By default, mobs do not retreat. var/minimum_distance = 1 //Minimum approach distance, so ranged mobs chase targets down, but still keep their distance set in tiles to the target, set higher to make mobs keep distance diff --git a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm b/code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm similarity index 88% rename from code/modules/mob/living/simple_animal/hostile/cat_butcher.dm rename to code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm index 8da384aaca4b..0e265fc3b531 100644 --- a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm @@ -1,41 +1,27 @@ -/mob/living/simple_animal/hostile/cat_butcherer +/mob/living/simple_animal/hostile/human/cat_butcherer name = "Cat Surgeon" desc = "Feline genemod physiological modification surgery is outlawed in Nanotrasen-controlled sectors. This doctor doesn't seem to care, and thus, is wanted for several warcrimes." - icon = 'icons/mob/simple_human.dmi' icon_state = "cat_butcher" icon_living = "cat_butcher" - icon_dead = "syndicate_dead" - icon_gib = "syndicate_gib" projectiletype = /obj/projectile/bullet/dart/tranq projectilesound = 'sound/items/syringeproj.ogg' - ranged = 1 + ranged = TRUE ranged_message = "fires the syringe gun at" ranged_cooldown_time = 30 speak_chance = 0 - turns_per_move = 5 - speed = 0 stat_attack = HARD_CRIT - robust_searching = 1 - maxHealth = 100 - health = 100 - harm_intent_damage = 5 melee_damage_lower = 15 melee_damage_upper = 15 attack_verb_continuous = "slashes at" attack_verb_simple = "slash at" attack_sound = 'sound/weapons/circsawhit.ogg' - a_intent = INTENT_HARM - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID loot = list(/obj/effect/mob_spawn/human/corpse/cat_butcher, /obj/item/circular_saw, /obj/item/gun/syringe) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 15 faction = list("hostile") - check_friendly_fire = 1 - status_flags = CANPUSH - del_on_death = 1 + check_friendly_fire = TRUE var/impatience = 0 -/mob/living/simple_animal/hostile/cat_butcherer/CanAttack(atom/the_target) +/mob/living/simple_animal/hostile/human/cat_butcherer/CanAttack(atom/the_target) if(iscarbon(target)) var/mob/living/carbon/human/C = target if(C.getorgan(/obj/item/organ/ears/cat) && C.getorgan(/obj/item/organ/tail/cat) && C.has_trauma_type(/datum/brain_trauma/severe/pacifism))//he wont attack his creations @@ -45,7 +31,7 @@ return FALSE return ..() -/mob/living/simple_animal/hostile/cat_butcherer/AttackingTarget() +/mob/living/simple_animal/hostile/human/cat_butcherer/AttackingTarget() if(iscarbon(target)) var/mob/living/carbon/human/L = target if(!L.getorgan(/obj/item/organ/ears/cat) && L.stat >= UNCONSCIOUS) //target doesnt have cat ears diff --git a/code/modules/mob/living/simple_animal/hostile/frontiersman.dm b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm similarity index 70% rename from code/modules/mob/living/simple_animal/hostile/frontiersman.dm rename to code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm index 213cd8c2b822..040b6b26ae2a 100644 --- a/code/modules/mob/living/simple_animal/hostile/frontiersman.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm @@ -1,36 +1,18 @@ -/mob/living/simple_animal/hostile/frontier +/mob/living/simple_animal/hostile/human/frontier name = "Frontiersman" desc = "A frontiersman! A terrorist that would probably kill everyone without mercy." - icon = 'icons/mob/simple_human.dmi' icon_state = "frontiersmanmelee" icon_living = "frontiersmanmelee" icon_dead = "frontiersmanmelee_dead" - icon_gib = "syndicate_gib" - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 - turns_per_move = 5 - speed = 0 - maxHealth = 100 - health = 100 - harm_intent_damage = 5 melee_damage_lower = 15 melee_damage_upper = 15 - attack_verb_continuous = "punches" - attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM loot = list(/obj/effect/mob_spawn/human/corpse/frontier, /obj/item/kitchen/knife) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 15 faction = list(FACTION_ANTAG_FRONTIERSMEN) - status_flags = CANPUSH - del_on_death = 1 - footstep_type = FOOTSTEP_MOB_SHOE - - -/mob/living/simple_animal/hostile/frontier/ranged +/mob/living/simple_animal/hostile/human/frontier/ranged icon_state = "frontiersmanranged" icon_living = "frontiersmanranged" loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged, @@ -41,10 +23,10 @@ projectilesound = 'sound/weapons/gun/revolver/shot.ogg' casingtype = /obj/item/ammo_casing/a357 -/mob/living/simple_animal/hostile/frontier/ranged/neutered +/mob/living/simple_animal/hostile/human/frontier/ranged/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged) -/mob/living/simple_animal/hostile/frontier/ranged/mosin +/mob/living/simple_animal/hostile/human/frontier/ranged/mosin icon_state = "frontiersmanrangedrifle" icon_living = "frontiersmanrangedrifle" loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged, @@ -52,10 +34,10 @@ casingtype = /obj/item/ammo_casing/a8_50r projectilesound = 'sound/weapons/gun/rifle/mosin.ogg' -/mob/living/simple_animal/hostile/frontier/ranged/mosin/neutered +/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged) -/mob/living/simple_animal/hostile/frontier/ranged/trooper +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper icon_state = "frontiersmanrangedelite" icon_living = "frontiersmanrangedelite" maxHealth = 170 @@ -65,10 +47,10 @@ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, /obj/item/gun/ballistic/shotgun/brimstone) -/mob/living/simple_animal/hostile/frontier/ranged/trooper/neutered +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) -/mob/living/simple_animal/hostile/frontier/ranged/trooper/skm +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm icon_state = "frontiersmanrangedak47" icon_living = "frontiersmanrangedak47" projectilesound = 'sound/weapons/gun/rifle/skm.ogg' @@ -78,10 +60,10 @@ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper, /obj/item/gun/ballistic/automatic/assault/skm) -/mob/living/simple_animal/hostile/frontier/ranged/trooper/skm/neutured +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/neutured loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) -/mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle icon_state = "frontiersmanrangedmosin" icon_living = "frontiersmanrangedmosin" @@ -90,10 +72,10 @@ casingtype = /obj/item/ammo_casing/a8_50r projectilesound = 'sound/weapons/gun/rifle/mosin.ogg' -/mob/living/simple_animal/hostile/frontier/ranged/trooper/rifle/neutered +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper) -/mob/living/simple_animal/hostile/frontier/ranged/trooper/heavy +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy icon_state = "frontiersmanrangedminigun" icon_living = "frontiersmanrangedminigun" projectilesound = 'sound/weapons/laser4.ogg' @@ -105,10 +87,10 @@ projectiletype = /obj/projectile/beam/weak/penetrator loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy) -/mob/living/simple_animal/hostile/frontier/ranged/trooper/heavy/neutered +/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless) -/mob/living/simple_animal/hostile/frontier/ranged/officer +/mob/living/simple_animal/hostile/human/frontier/ranged/officer name = "Frontiersman Officer" icon_state = "frontiersmanofficer" icon_living = "frontiersmanofficer" @@ -119,10 +101,10 @@ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer, /obj/item/gun/ballistic/automatic/pistol/APS) -/mob/living/simple_animal/hostile/frontier/ranged/officer/neutured +/mob/living/simple_animal/hostile/human/frontier/ranged/officer/neutured loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer) -/mob/living/simple_animal/hostile/frontier/ranged/officer/Aggro() +/mob/living/simple_animal/hostile/human/frontier/ranged/officer/Aggro() ..() summon_backup(15) say(pick("Help!!", "They're right here!!", "Don't let me die!!")) diff --git a/code/modules/mob/living/simple_animal/hostile/human/human.dm b/code/modules/mob/living/simple_animal/hostile/human/human.dm new file mode 100644 index 000000000000..633bd40090e8 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/human/human.dm @@ -0,0 +1,41 @@ +/mob/living/simple_animal/hostile/human + name = "crazed human" + desc = "A crazed human, they cannot be reasoned with" + icon = 'icons/mob/simple_human.dmi' + icon_state = "survivor_base" + icon_living = "survivor_base" + icon_dead = null + icon_gib = "syndicate_gib" + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID + + speak_chance = 20 + speak_emote = list("groans") + + turns_per_move = 5 + speed = 0 + maxHealth = 100 + health = 100 + + robust_searching = TRUE + harm_intent_damage = 5 + melee_damage_lower = 10 + melee_damage_upper = 10 + attack_verb_continuous = "punches" + attack_verb_simple = "punch" + attack_sound = 'sound/weapons/punch1.ogg' + a_intent = INTENT_HARM + response_help_continuous = "pushes" + response_help_simple = "push" + + loot = list(/obj/effect/mob_spawn/human/corpse/damaged) + del_on_death = TRUE + + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + unsuitable_atmos_damage = 15 + minbodytemp = 180 + status_flags = CANPUSH + del_on_death = TRUE + + footstep_type = FOOTSTEP_MOB_SHOE + + faction = list("hermit") diff --git a/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm new file mode 100644 index 000000000000..6c1676d202ab --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm @@ -0,0 +1,80 @@ +/mob/living/simple_animal/hostile/human/nanotrasen + name = "\improper Nanotrasen Private Security Officer" + desc = "An officer part of Nanotrasen's private security force, he seems rather unpleased to meet you." + icon_state = "nanotrasen" + icon_living = "nanotrasen" + speak_chance = 0 + stat_attack = HARD_CRIT + melee_damage_upper = 15 + loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier) + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + faction = list(ROLE_DEATHSQUAD) + check_friendly_fire = TRUE + dodging = TRUE + +/mob/living/simple_animal/hostile/human/nanotrasen/screaming + icon_state = "nanotrasen" + icon_living = "nanotrasen" + +/mob/living/simple_animal/hostile/human/nanotrasen/screaming/Aggro() + ..() + summon_backup(15) + say("411 in progress, requesting backup!") + + +/mob/living/simple_animal/hostile/human/nanotrasen/ranged + icon_state = "nanotrasenranged" + icon_living = "nanotrasenranged" + ranged = 1 + retreat_distance = 3 + minimum_distance = 5 + casingtype = /obj/item/ammo_casing/c45 + projectilesound = 'sound/weapons/gun/pistol/shot_alt.ogg' + + +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/smg + icon_state = "nanotrasenrangedsmg" + icon_living = "nanotrasenrangedsmg" + rapid = 3 + casingtype = /obj/item/ammo_casing/c46x30mm + projectilesound = 'sound/weapons/gun/smg/shot.ogg' + +/mob/living/simple_animal/hostile/human/nanotrasen/ranged/assault + name = "Nanotrasen Assault Officer" + desc = "A Nanotrasen Assault Officer. Prepare to die, if you've been found near Syndicate property." + icon_state = "nanotrasenrangedassault" + icon_living = "nanotrasenrangedassault" + icon_dead = null + icon_gib = "syndicate_gib" + ranged = TRUE + rapid = 4 + rapid_fire_delay = 1 + rapid_melee = 1 + retreat_distance = 2 + minimum_distance = 4 + casingtype = /obj/item/ammo_casing/c46x30mm + projectilesound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' + loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier) + +/mob/living/simple_animal/hostile/human/nanotrasen/elite + name = "Nanotrasen Elite Assault Officer" + desc = "Pray for your life, syndicate. Run while you can." + icon = 'icons/mob/simple_human.dmi' + icon_state = "nanotrasen_ert" + icon_living = "nanotrasen_ert" + maxHealth = 150 + health = 150 + melee_damage_lower = 13 + melee_damage_upper = 18 + ranged = TRUE + rapid = 3 + rapid_fire_delay = 5 + rapid_melee = 3 + retreat_distance = 0 + minimum_distance = 1 + 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) + minbodytemp = 0 + projectiletype = /obj/projectile/beam/laser + projectilesound = 'sound/weapons/laser.ogg' + loot = list(/obj/effect/gibspawner/human) + faction = list(ROLE_DEATHSQUAD) diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/human/pirate.dm similarity index 67% rename from code/modules/mob/living/simple_animal/hostile/pirate.dm rename to code/modules/mob/living/simple_animal/hostile/human/pirate.dm index b0bc7941fd69..df10cfa6a2b4 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/pirate.dm @@ -1,35 +1,17 @@ -/mob/living/simple_animal/hostile/pirate +/mob/living/simple_animal/hostile/human/pirate name = "Pirate" desc = "Does what he wants cause a pirate is free." - icon = 'icons/mob/simple_human.dmi' icon_state = "piratemelee" icon_living = "piratemelee" icon_dead = "pirate_dead" - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 - turns_per_move = 5 - response_help_continuous = "pushes" - response_help_simple = "push" - speed = 0 - maxHealth = 100 - health = 100 - harm_intent_damage = 5 - melee_damage_lower = 10 - melee_damage_upper = 10 - attack_verb_continuous = "punches" - attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 15 speak_emote = list("yarrs") loot = list(/obj/effect/mob_spawn/human/corpse/pirate, /obj/item/melee/transforming/energy/sword/saber/pirate) - del_on_death = 1 faction = list("pirate") - -/mob/living/simple_animal/hostile/pirate/melee +/mob/living/simple_animal/hostile/human/pirate/melee name = "Pirate Swashbuckler" icon_state = "piratemelee" icon_living = "piratemelee" @@ -44,7 +26,7 @@ footstep_type = FOOTSTEP_MOB_SHOE -/mob/living/simple_animal/hostile/pirate/melee/space +/mob/living/simple_animal/hostile/human/pirate/melee/space name = "Space Pirate Swashbuckler" icon_state = "piratespace" icon_living = "piratespace" @@ -53,23 +35,23 @@ minbodytemp = 0 speed = 1 -/mob/living/simple_animal/hostile/pirate/melee/space/Initialize() +/mob/living/simple_animal/hostile/human/pirate/melee/space/Initialize() . = ..() ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) -/mob/living/simple_animal/hostile/pirate/melee/Initialize() +/mob/living/simple_animal/hostile/human/pirate/melee/Initialize() . = ..() sord = new(src) -/mob/living/simple_animal/hostile/pirate/melee/Destroy() +/mob/living/simple_animal/hostile/human/pirate/melee/Destroy() QDEL_NULL(sord) return ..() -/mob/living/simple_animal/hostile/pirate/melee/Initialize() +/mob/living/simple_animal/hostile/human/pirate/melee/Initialize() . = ..() set_light(2) -/mob/living/simple_animal/hostile/pirate/ranged +/mob/living/simple_animal/hostile/human/pirate/ranged name = "Pirate Gunner" icon_state = "pirateranged" icon_living = "pirateranged" @@ -84,7 +66,7 @@ loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged, /obj/item/gun/energy/laser) -/mob/living/simple_animal/hostile/pirate/ranged/space +/mob/living/simple_animal/hostile/human/pirate/ranged/space name = "Space Pirate Gunner" icon_state = "piratespaceranged" icon_living = "piratespaceranged" @@ -93,6 +75,6 @@ minbodytemp = 0 speed = 1 -/mob/living/simple_animal/hostile/pirate/ranged/space/Initialize() +/mob/living/simple_animal/hostile/human/pirate/ranged/space/Initialize() . = ..() ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) diff --git a/code/modules/mob/living/simple_animal/hostile/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm similarity index 76% rename from code/modules/mob/living/simple_animal/hostile/skeleton.dm rename to code/modules/mob/living/simple_animal/hostile/human/skeleton.dm index 477233566f35..675c6fc99342 100644 --- a/code/modules/mob/living/simple_animal/hostile/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm @@ -1,20 +1,16 @@ -/mob/living/simple_animal/hostile/skeleton +/mob/living/simple_animal/hostile/human/skeleton name = "reanimated skeleton" desc = "A real bonefied skeleton, doesn't seem like it wants to socialize." - icon = 'icons/mob/simple_human.dmi' icon_state = "skeleton" icon_living = "skeleton" icon_dead = "skeleton" gender = NEUTER mob_biotypes = MOB_UNDEAD|MOB_HUMANOID - turns_per_move = 5 speak_emote = list("rattles") emote_see = list("rattles") - a_intent = INTENT_HARM maxHealth = 40 health = 40 speed = 1 - harm_intent_damage = 5 melee_damage_lower = 15 melee_damage_upper = 15 minbodytemp = 0 @@ -25,36 +21,15 @@ attack_sound = 'sound/hallucinations/growl1.ogg' 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) unsuitable_atmos_damage = 10 - robust_searching = 1 stat_attack = HARD_CRIT faction = list("skeleton") see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE deathmessage = "collapses into a pile of bones!" - del_on_death = 1 loot = list(/obj/effect/decal/remains/human) - footstep_type = FOOTSTEP_MOB_SHOE -/mob/living/simple_animal/hostile/skeleton/eskimo - name = "undead eskimo" - desc = "The reanimated remains of some poor traveler." - icon_state = "eskimo" - icon_living = "eskimo" - icon_dead = "eskimo_dead" - maxHealth = 55 - health = 55 - weather_immunities = list("snow") - melee_damage_lower = 17 - melee_damage_upper = 20 - deathmessage = "collapses into a pile of bones, its gear falling to the floor!" - loot = list(/obj/effect/decal/remains/human, - /obj/item/spear, - /obj/item/clothing/shoes/winterboots, - /obj/item/clothing/suit/hooded/wintercoat) - - -/mob/living/simple_animal/hostile/skeleton/templar +/mob/living/simple_animal/hostile/human/skeleton/templar name = "undead templar" desc = "The reanimated remains of a holy templar knight." icon_state = "templar" @@ -76,7 +51,7 @@ /obj/item/clothing/head/helmet/chaplain, /obj/item/claymore/weak{name = "holy sword"}) -/mob/living/simple_animal/hostile/skeleton/ice +/mob/living/simple_animal/hostile/human/skeleton/ice name = "ice skeleton" desc = "A reanimated skeleton protected by a thick sheet of natural ice armor. Looks slow, though." speed = 5 @@ -86,7 +61,7 @@ color = rgb(114,228,250) loot = list(/obj/effect/decal/remains/human{color = rgb(114,228,250)}) -/mob/living/simple_animal/hostile/skeleton/plasmaminer +/mob/living/simple_animal/hostile/human/skeleton/plasmaminer name = "shambling miner" desc = "A plasma-soaked miner, their exposed limbs turned into a grossly incandescent bone seemingly made of plasma." icon_state = "plasma_miner" @@ -104,7 +79,7 @@ deathmessage = "collapses into a pile of bones, their suit dissolving among the plasma!" loot = list(/obj/effect/decal/remains/plasma) -/mob/living/simple_animal/hostile/skeleton/plasmaminer/jackhammer +/mob/living/simple_animal/hostile/human/skeleton/plasmaminer/jackhammer desc = "A plasma-soaked miner, their exposed limbs turned into a grossly incandescent bone seemingly made of plasma. They seem to still have their mining tool in their hand, gripping tightly." icon_state = "plasma_miner_tool" icon_living = "plasma_miner_tool" @@ -119,6 +94,6 @@ attack_sound = 'sound/weapons/sonic_jackhammer.ogg' loot = list(/obj/effect/decal/remains/plasma, /obj/item/pickaxe/drill/jackhammer) -/mob/living/simple_animal/hostile/skeleton/plasmaminer/Initialize() +/mob/living/simple_animal/hostile/human/skeleton/plasmaminer/Initialize() . = ..() set_light(2) diff --git a/code/modules/mob/living/simple_animal/hostile/survivors.dm b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm similarity index 53% rename from code/modules/mob/living/simple_animal/hostile/survivors.dm rename to code/modules/mob/living/simple_animal/hostile/human/survivors.dm index d5759431d65a..f7abea96b222 100644 --- a/code/modules/mob/living/simple_animal/hostile/survivors.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm @@ -1,59 +1,41 @@ -/mob/living/simple_animal/hostile/asteroid/whitesands +/mob/living/simple_animal/hostile/human/hermit name = "Whitesands Inhabitant" desc = "If you can read this, yell at a coder!" - icon = 'icons/mob/simple_human.dmi' icon_state = "survivor_base" icon_living = "survivor_base" - icon_dead = null - icon_gib = "syndicate_gib" - mob_biotypes = MOB_ORGANIC - minbodytemp = 180 - unsuitable_atmos_damage = 15 atmos_requirements = list("min_oxy" = 1, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 999, "min_n2" = 0, "max_n2" = 0) - speak_chance = 20 - turns_per_move = 5 - response_help_continuous = "pushes" - response_help_simple = "push" - speed = 0 - maxHealth = 100 - health = 100 - harm_intent_damage = 5 - melee_damage_lower = 10 - melee_damage_upper = 10 - attack_verb_continuous = "punches" - attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM - unsuitable_atmos_damage = 15 - speak_emote = list("groans") loot = list( /obj/effect/mob_spawn/human/corpse/damaged/whitesands ) - del_on_death = 1 - faction = list("hermit") -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor/death(gibbed) +/mob/living/simple_animal/hostile/human/hermit/survivor/death(gibbed) move_force = MOVE_FORCE_DEFAULT move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT + ..() + /* if(prob(15)) - new /obj/item/crusher_trophy/shiny(loc) + new /obj/item/mob_trophy/shiny(loc) visible_message("You notice a glimmering nugget of shiny metal.") - ..() + */ -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor +/mob/living/simple_animal/hostile/human/hermit/survivor name = "Hermit Wanderer" desc =" A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body, twisted by the heavy metals and high background radiation of the sandworlds." + loot = list( + /obj/effect/mob_spawn/human/corpse/damaged/whitesands/survivor + ) -/mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random/Initialize() +/mob/living/simple_animal/hostile/human/hermit/survivor/random/Initialize() . = ..() if(prob(35)) - new /mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter(loc) + new /mob/living/simple_animal/hostile/human/hermit/ranged/hunter(loc) + return INITIALIZE_HINT_QDEL if(prob(10)) - new /mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger(loc) + new /mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger(loc) return INITIALIZE_HINT_QDEL -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged +/mob/living/simple_animal/hostile/human/hermit/ranged icon_state = "survivor_hunter" icon_living = "survivor_hunter" projectiletype = null @@ -64,14 +46,14 @@ retreat_distance = 5 minimum_distance = 5 -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter +/mob/living/simple_animal/hostile/human/hermit/ranged/hunter name = "Hermit Hunter" desc ="A wild-eyed figure. Watch out- he has a gun, and he remembers just enough of his old life to use it!" loot = list( /obj/effect/mob_spawn/human/corpse/damaged/whitesands/hunter, ) -/mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger +/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger name = "Hermit Soldier" desc = "The miner's rebellion, though mostly underground, recieved a few good weapon shipments from an off-sector source. You should probably start running." icon_state = "survivor_gunslinger" @@ -88,102 +70,25 @@ //survivor corpses /obj/effect/mob_spawn/human/corpse/damaged/whitesands + uniform = /obj/item/clothing/under/color/random + belt = /obj/item/storage/belt/fannypack + shoes = /obj/item/clothing/shoes/workboots/mining + suit = /obj/item/clothing/suit/hooded/survivor + l_pocket = /obj/item/radio + r_pocket = /obj/item/tank/internals/emergency_oxygen/engi var/survivor_type //room for alternatives inside the fuckoff grade init. /obj/effect/mob_spawn/human/corpse/damaged/whitesands/Initialize() //everything here should equal out to 100 for the sake of my sanity. - mob_species = pickweight(list( /datum/species/human = 50, - /datum/species/lizard = 25, + /datum/species/lizard = 20, + /datum/species/ipc = 10, /datum/species/elzuose = 10, - /datum/species/moth = 10, - /datum/species/spider = 3, - /datum/species/fly = 2 - ) + /datum/species/moth = 5, + /datum/species/spider = 5 ) + ) //to-do: learn how to make mobsprites for other survivors - //uniforms are random to show varied backgrounds, but similar goal - if(survivor_type == "survivor") - uniform = pickweight(list( - /obj/item/clothing/under/color/random = 65, - /obj/item/clothing/under/rank/cargo/miner/lavaland = 10, - /obj/item/clothing/under/rank/prisoner = 10, - /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 5, - /obj/item/clothing/under/color/khaki/buster = 5, - /obj/item/clothing/under/rank/cargo/miner = 5 - ) - ) - else if (survivor_type == "hunter") - uniform = pickweight(list( - /obj/item/clothing/under/color/random = 50, - /obj/item/clothing/under/rank/cargo/miner/lavaland = 25, - /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15, - /obj/item/clothing/under/rank/security/officer/camo = 5, - /obj/item/clothing/under/utility = 5 - ) - ) - else if (survivor_type == "gunslinger") - uniform = pickweight(list( - /obj/item/clothing/under/rank/cargo/miner/lavaland = 35, - /obj/item/clothing/under/color/random = 25, - /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15, - /obj/item/clothing/under/rank/security/officer/camo = 10, - /obj/item/clothing/under/syndicate/camo = 10, - /obj/item/clothing/under/syndicate/combat = 5 - ) - ) - else - uniform = /obj/item/clothing/under/color/random - - //storage is semi-randomized, giving some variety - if(survivor_type == "survivor") - belt = pickweight(list( - /obj/item/storage/belt/fannypack = 40, - /obj/item/storage/belt/mining = 20, - /obj/item/storage/belt/mining/alt = 15, - /obj/item/storage/belt/utility = 10, - /obj/item/storage/belt/bandolier = 9, - /obj/item/storage/belt/utility/full = 5, - /obj/item/storage/belt/chameleon= 1, - ) - ) - else if(survivor_type == "hunter") - belt = pickweight(list( - /obj/item/storage/belt/mining = 30, - /obj/item/storage/belt/fannypack = 20, - /obj/item/storage/belt/mining/alt = 15, - /obj/item/storage/belt/mining/primitive = 15, - /obj/item/storage/belt/bandolier = 10, - /obj/item/storage/belt/military = 7, - /obj/item/storage/belt/mining/vendor = 3, - ) - ) - else if(survivor_type == "gunslinger") - belt = pickweight(list( - /obj/item/storage/belt/mining = 30, - /obj/item/storage/belt/bandolier = 30, - /obj/item/storage/belt/military = 20, - /obj/item/storage/belt/fannypack = 15, - /obj/item/storage/belt/mining/alt = 5, - /obj/item/storage/belt/mining/primitive = 5 - ) - ) - else - belt = /obj/item/storage/belt/fannypack - - //everyone wears the same suit - suit = /obj/item/clothing/suit/hooded/survivor - - if (survivor_type == "gunslinger") - if(prob(30)) - shoes = /obj/item/clothing/shoes/combat //but sometimes there are nicer shoes - else - shoes = /obj/item/clothing/shoes/workboots/mining - else - shoes = /obj/item/clothing/shoes/workboots/mining - - - //gloves are a tossup gloves = pickweight(list( @@ -260,35 +165,6 @@ if(prob(30)) //some pens maybe? backpack_contents += /obj/item/reagent_containers/hypospray/medipen/survival - //pockets - if(survivor_type == "survivor") //could also use fleshing out - if(prob(30)) - l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath - else - l_pocket = /obj/item/tank/internals/emergency_oxygen/engi - if (prob(20)) - r_pocket = /obj/item/spacecash/bundle/mediumrand - else - r_pocket = null - - if(survivor_type == "hunter") - l_pocket = /obj/item/tank/internals/emergency_oxygen/engi - if (prob(20)) - r_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath - else if (prob(60)) - r_pocket = /obj/item/ammo_box/aac_300blk_stripper - else - r_pocket = null - - if(survivor_type == "gunslinger") - if(prob(50)) - l_pocket = /obj/item/ammo_box/magazine/skm_545_39 - r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - - else - r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - l_pocket = /obj/item/radio - //masks mask = pickweight(list( /obj/item/clothing/mask/gas = 40, @@ -298,7 +174,7 @@ ) ) - //the eyes are the window into the soul. I don't think these things have souls but whatever. + //the eyes are the window into the soul. if(prob(70)) glasses = pickweight(list( /obj/item/clothing/glasses/heat = 20, @@ -307,8 +183,6 @@ /obj/item/clothing/glasses = 20 ) ) - else - glasses = null //and of course, ears. if(prob(1)) //oh my god they can't hear the sandstorm coming they've got airpods in @@ -319,21 +193,91 @@ /obj/item/radio/headset/alt = 50 ) ) + //now for the fun stuff + switch(survivor_type) + if("survivor") + //uniforms are random to show varied backgrounds, but similar goal + uniform = pickweight(list( + /obj/item/clothing/under/color/random = 65, + /obj/item/clothing/under/rank/cargo/miner/lavaland = 10, + /obj/item/clothing/under/rank/prisoner = 10, + /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 5, + /obj/item/clothing/under/color/khaki/buster = 5, + /obj/item/clothing/under/rank/cargo/miner = 5 + ) + ) + //storage is semi-randomized, giving some variety + belt = pickweight(list( + /obj/item/storage/belt/fannypack = 40, + /obj/item/storage/belt/mining = 20, + /obj/item/storage/belt/mining/alt = 15, + /obj/item/storage/belt/utility = 10, + /obj/item/storage/belt/bandolier = 9, + /obj/item/storage/belt/utility/full = 5, + /obj/item/storage/belt/chameleon= 1, + ) + ) + if(prob(30)) + l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath + if(prob(20)) + r_pocket = /obj/item/spacecash/bundle/smallrand + + if("hunter") + uniform = pickweight(list( + /obj/item/clothing/under/color/random = 50, + /obj/item/clothing/under/rank/cargo/miner/lavaland = 25, + /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15, + /obj/item/clothing/under/rank/security/officer/camo = 5, + /obj/item/clothing/under/utility = 5 + ) + ) + belt = pickweight(list( + /obj/item/storage/belt/mining = 30, + /obj/item/storage/belt/fannypack = 20, + /obj/item/storage/belt/mining/alt = 15, + /obj/item/storage/belt/mining/primitive = 15, + /obj/item/storage/belt/bandolier = 10, + /obj/item/storage/belt/military = 7, + /obj/item/storage/belt/mining/vendor = 3, + ) + ) + if(prob(20)) + l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath + else if(prob(60)) + l_pocket = /obj/item/ammo_box/aac_300blk_stripper + if(prob(20)) + new /obj/item/gun/ballistic/rifle/polymer(loc) + else + visible_message(span_warning("The hunter's weapon shatters as they impact the ground!")) + + if("gunslinger") + uniform = pickweight(list( + /obj/item/clothing/under/rank/cargo/miner/lavaland = 35, + /obj/item/clothing/under/color/random = 25, + /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15, + /obj/item/clothing/under/rank/security/officer/camo = 10, + /obj/item/clothing/under/syndicate/camo = 10, + /obj/item/clothing/under/syndicate/combat = 5 + ) + ) + belt = pickweight(list( + /obj/item/storage/belt/mining = 30, + /obj/item/storage/belt/bandolier = 30, + /obj/item/storage/belt/military = 20, + /obj/item/storage/belt/fannypack = 15, + /obj/item/storage/belt/mining/alt = 5, + /obj/item/storage/belt/mining/primitive = 5 + ) + ) + if(prob(30)) + shoes = /obj/item/clothing/shoes/combat //sometimes there are nicer shoes + if(prob(50)) + l_pocket = /obj/item/ammo_box/magazine/skm_545_39 + if(prob(20)) + new /obj/item/gun/ballistic/automatic/smg/skm_carbine(loc) + else + visible_message(span_warning("The gunslinger's weapon shatters as they impact the ground!")) - //exosuit bits - suit_store = null - if (survivor_type == "hunter") - if(prob(20)) - new /obj/item/gun/ballistic/rifle/polymer(loc) - else - visible_message("The hunter's weapon shatters as they impact the ground!") - suit_store = null - if(survivor_type == "gunslinger") - if(prob(20)) - new /obj/item/gun/ballistic/automatic/smg/skm_carbine(loc) - else - visible_message("The gunslinger's weapon shatters as they impact the ground!") - suit_store = null . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm similarity index 62% rename from code/modules/mob/living/simple_animal/hostile/syndicate.dm rename to code/modules/mob/living/simple_animal/hostile/human/syndicate.dm index b98d14128e12..b4769b647aad 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm @@ -1,12 +1,3 @@ -/* - CONTENTS - LINE 10 - BASE MOB - LINE 52 - SWORD AND SHIELD - LINE 164 - GUNS - LINE 267 - MISC -*/ - - ///////////////Base mob//////////// /obj/effect/light_emitter/red_energy_sword //used so there's a combination of both their head light and light coming off the energy sword set_luminosity = 2 @@ -14,65 +5,48 @@ light_color = COLOR_SOFT_RED -/mob/living/simple_animal/hostile/syndicate - name = "Syndicate Operative" - desc = "Death to Nanotrasen." - icon = 'icons/mob/simple_human.dmi' +/mob/living/simple_animal/hostile/human/syndicate + name = "Ramzi Clique Operative" + desc = "An ex-Syndicate pirate of the Ramzi Clique." icon_state = "syndicate" icon_living = "syndicate" - icon_dead = "syndicate_dead" - icon_gib = "syndicate_gib" - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 - turns_per_move = 5 - speed = 0 stat_attack = HARD_CRIT - robust_searching = 1 - maxHealth = 100 - health = 100 - harm_intent_damage = 5 - melee_damage_lower = 10 - melee_damage_upper = 10 - attack_verb_continuous = "punches" - attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + maxbodytemp = 400 unsuitable_atmos_damage = 15 faction = list(FACTION_ANTAG_SYNDICATE) - check_friendly_fire = 1 - status_flags = CANPUSH - del_on_death = 1 + check_friendly_fire = TRUE dodging = TRUE rapid_melee = 2 - footstep_type = FOOTSTEP_MOB_SHOE ///////////////Melee//////////// -/mob/living/simple_animal/hostile/syndicate/space +/mob/living/simple_animal/hostile/human/syndicate/space icon_state = "syndicate_space" icon_living = "syndicate_space" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 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) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 -/mob/living/simple_animal/hostile/syndicate/space/Initialize() +/mob/living/simple_animal/hostile/human/syndicate/space/Initialize() . = ..() ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) set_light(4) -/mob/living/simple_animal/hostile/syndicate/space/stormtrooper +/mob/living/simple_animal/hostile/human/syndicate/space/stormtrooper icon_state = "syndicate_stormtrooper" icon_living = "syndicate_stormtrooper" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Assault Trooper" maxHealth = 250 health = 250 -/mob/living/simple_animal/hostile/syndicate/melee //dude with a knife and no shields +/mob/living/simple_animal/hostile/human/syndicate/melee //dude with a knife and no shields melee_damage_lower = 15 melee_damage_upper = 15 icon_state = "syndicate_knife" @@ -84,31 +58,32 @@ status_flags = 0 var/projectile_deflect_chance = 0 -/mob/living/simple_animal/hostile/syndicate/melee/space +/mob/living/simple_animal/hostile/human/syndicate/melee/space icon_state = "syndicate_space_knife" icon_living = "syndicate_space_knife" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 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) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 projectile_deflect_chance = 50 -/mob/living/simple_animal/hostile/syndicate/melee/space/Initialize() +/mob/living/simple_animal/hostile/human/syndicate/melee/space/Initialize() . = ..() ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) set_light(4) -/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper +/mob/living/simple_animal/hostile/human/syndicate/melee/space/stormtrooper icon_state = "syndicate_stormtrooper_knife" icon_living = "syndicate_stormtrooper_knife" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 projectile_deflect_chance = 50 -/mob/living/simple_animal/hostile/syndicate/melee/sword +/mob/living/simple_animal/hostile/human/syndicate/melee/sword melee_damage_lower = 30 melee_damage_upper = 30 icon_state = "syndicate_sword" @@ -122,52 +97,53 @@ var/obj/effect/light_emitter/red_energy_sword/sord projectile_deflect_chance = 50 -/mob/living/simple_animal/hostile/syndicate/melee/sword/Initialize() +/mob/living/simple_animal/hostile/human/syndicate/melee/sword/Initialize() . = ..() set_light(2) -/mob/living/simple_animal/hostile/syndicate/melee/sword/Destroy() +/mob/living/simple_animal/hostile/human/syndicate/melee/sword/Destroy() QDEL_NULL(sord) return ..() -/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/projectile/Proj) +/mob/living/simple_animal/hostile/human/syndicate/melee/bullet_act(obj/projectile/Proj) if(prob(projectile_deflect_chance)) visible_message("[src] blocks [Proj] with its shield!") return BULLET_ACT_BLOCK return ..() -/mob/living/simple_animal/hostile/syndicate/melee/sword/space +/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space icon_state = "syndicate_space_sword" icon_living = "syndicate_space_sword" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 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) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 projectile_deflect_chance = 50 -/mob/living/simple_animal/hostile/syndicate/melee/sword/space/Initialize() +/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/Initialize() . = ..() ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) sord = new(src) set_light(4) -/mob/living/simple_animal/hostile/syndicate/melee/sword/space/Destroy() +/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/Destroy() QDEL_NULL(sord) return ..() -/mob/living/simple_animal/hostile/syndicate/melee/sword/space/stormtrooper +/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/stormtrooper icon_state = "syndicate_stormtrooper_sword" icon_living = "syndicate_stormtrooper_sword" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 projectile_deflect_chance = 50 ///////////////Guns//////////// -/mob/living/simple_animal/hostile/syndicate/ranged +/mob/living/simple_animal/hostile/human/syndicate/ranged ranged = 1 retreat_distance = 5 minimum_distance = 5 @@ -179,104 +155,107 @@ dodging = FALSE rapid_melee = 1 -/mob/living/simple_animal/hostile/syndicate/ranged/infiltrator //shuttle loan event +/mob/living/simple_animal/hostile/human/syndicate/ranged/infiltrator //shuttle loan event projectilesound = 'sound/weapons/gun/smg/shot_suppressed.ogg' loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) -/mob/living/simple_animal/hostile/syndicate/ranged/space +/mob/living/simple_animal/hostile/human/syndicate/ranged/space icon_state = "syndicate_space_pistol" icon_living = "syndicate_space_pistol" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 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) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 -/mob/living/simple_animal/hostile/syndicate/ranged/space/Initialize() +/mob/living/simple_animal/hostile/human/syndicate/ranged/space/Initialize() . = ..() ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) set_light(4) -/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper +/mob/living/simple_animal/hostile/human/syndicate/ranged/space/stormtrooper icon_state = "syndicate_stormtrooper_pistol" icon_living = "syndicate_stormtrooper_pistol" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 -/mob/living/simple_animal/hostile/syndicate/ranged/smg +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg rapid = 2 icon_state = "syndicate_smg" icon_living = "syndicate_smg" casingtype = /obj/item/ammo_casing/c45 projectilesound = 'sound/weapons/gun/smg/shot.ogg' -/mob/living/simple_animal/hostile/syndicate/ranged/smg/pilot //caravan ambush ruin - name = "Syndicate Salvage Pilot" +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/pilot //caravan ambush ruin + name = "Ramzi Clique Salvage Pilot" loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space icon_state = "syndicate_space_smg" icon_living = "syndicate_space_smg" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 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) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space/Initialize() +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space/Initialize() . = ..() ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) set_light(4) -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space/stormtrooper +/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space/stormtrooper icon_state = "syndicate_stormtrooper_smg" icon_living = "syndicate_stormtrooper_smg" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun rapid = 2 rapid_fire_delay = 6 minimum_distance = 3 icon_state = "syndicate_shotgun" icon_living = "syndicate_shotgun" - casingtype = /obj/item/ammo_casing/shotgun/buckshot //buckshot (up to 72.5 brute) fired in a two-round burst + casingtype = /obj/item/ammo_casing/shotgun/buckshot //buckshot fired in a two-round burst. This will two-tap unarmored players. -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space icon_state = "syndicate_space_shotgun" icon_living = "syndicate_space_shotgun" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 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) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space/Initialize() +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space/Initialize() . = ..() ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) set_light(4) -/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space/stormtrooper +/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space/stormtrooper icon_state = "syndicate_stormtrooper_shotgun" icon_living = "syndicate_stormtrooper_shotgun" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 ///////////////Misc//////////// -/mob/living/simple_animal/hostile/syndicate/civilian +/mob/living/simple_animal/hostile/human/syndicate/civilian minimum_distance = 10 retreat_distance = 10 obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE -/mob/living/simple_animal/hostile/syndicate/civilian/Aggro() +/mob/living/simple_animal/hostile/human/syndicate/civilian/Aggro() ..() summon_backup(15) say("GUARDS!!") @@ -302,6 +281,7 @@ faction = list(ROLE_SYNDICATE) 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) minbodytemp = 0 + maxbodytemp = 1000 mob_size = MOB_SIZE_TINY movement_type = FLYING limb_destroyer = 1 @@ -314,32 +294,3 @@ /mob/living/simple_animal/hostile/viscerator/Initialize() . = ..() AddComponent(/datum/component/swarming) - -/mob/living/simple_animal/hostile/syndicate/melee/sword/space/oldcode - melee_damage_lower = 20 - melee_damage_upper = 20 - icon = 'icons/mob/simple_human.dmi' - icon_state = "oldcode_syndicate_csaber" - icon_living = "oldcode_syndicate_csaber" - name = "Syndicate Spaceman" - desc = "Death to IS-Nanotrasen." - maxHealth = 170 - health = 170 - armour_penetration = 20 - light_color = LIGHT_COLOR_BLUE - sord = /obj/effect/light_emitter/blue_energy_sword - projectile_deflect_chance = 10 - -/mob/living/simple_animal/hostile/syndicate/ranged/space/oldcode - icon = 'icons/mob/simple_human.dmi' - icon_state = "oldcode_syndicate_gun" - icon_living = "oldcode_syndicate_gun" - name = "Syndicate Spaceman" - desc = "Death to IS-Nanotrasen." - maxHealth = 170 - health = 170 - -/obj/effect/light_emitter/blue_energy_sword - set_luminosity = 2 - set_cap = 2.5 - light_color = LIGHT_COLOR_BLUE diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/human/zombie.dm similarity index 83% rename from code/modules/mob/living/simple_animal/hostile/zombie.dm rename to code/modules/mob/living/simple_animal/hostile/human/zombie.dm index 6f1db7aaf996..7a12465b98bb 100644 --- a/code/modules/mob/living/simple_animal/hostile/zombie.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/zombie.dm @@ -1,4 +1,4 @@ -/mob/living/simple_animal/hostile/zombie +/mob/living/simple_animal/hostile/human/zombie name = "Shambling Corpse" desc = "When there is no more room in hell, the dead will walk in outer space." icon = 'icons/mob/simple_human.dmi' @@ -19,16 +19,17 @@ 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) minbodytemp = 0 status_flags = CANPUSH + loot = list() del_on_death = 1 var/zombiejob = "Medical Doctor" var/infection_chance = 0 var/obj/effect/mob_spawn/human/corpse/delayed/corpse -/mob/living/simple_animal/hostile/zombie/Initialize(mapload) +/mob/living/simple_animal/hostile/human/zombie/Initialize(mapload) . = ..() INVOKE_ASYNC(src, PROC_REF(setup_visuals)) -/mob/living/simple_animal/hostile/zombie/proc/setup_visuals() +/mob/living/simple_animal/hostile/human/zombie/proc/setup_visuals() var/datum/preferences/dummy_prefs = new dummy_prefs.pref_species = new /datum/species/zombie dummy_prefs.randomise[RANDOM_BODY] = TRUE @@ -48,17 +49,17 @@ corpse.mob_species = /datum/species/zombie corpse.mob_name = name -/mob/living/simple_animal/hostile/zombie/AttackingTarget() +/mob/living/simple_animal/hostile/human/zombie/AttackingTarget() . = ..() if(. && ishuman(target) && prob(infection_chance)) try_to_zombie_infect(target) -/mob/living/simple_animal/hostile/zombie/drop_loot() +/mob/living/simple_animal/hostile/human/zombie/drop_loot() . = ..() corpse.forceMove(drop_location()) corpse.create() -/mob/living/simple_animal/hostile/zombie/kudzu +/mob/living/simple_animal/hostile/human/zombie/kudzu name = "shambling bramble" desc = "A shambling mass of vibrant vines and rotting flesh. " melee_damage_lower = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm index cf8a32af157c..2a60b3c52fc2 100644 --- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm @@ -18,7 +18,7 @@ Featuring: */ -/mob/living/simple_animal/hostile/syndicate/mecha_pilot +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot name = "Syndicate Mecha Pilot" desc = "Death to Nanotrasen. This variant comes in MECHA DEATH flavour." wanted_objects = list() @@ -36,15 +36,15 @@ Featuring: var/smoke_chance = 20 //Chance to deploy smoke for crowd control var/retreat_chance = 40 //Chance to run away -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/no_mech spawn_mecha_type = null search_objects = 2 -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech/Initialize() +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/no_mech/Initialize() . = ..() wanted_objects = typecacheof(/obj/mecha/combat, TRUE) -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/nanotrasen //nanotrasen are syndies! no it's just a weird path. +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/nanotrasen //nanotrasen are syndies! no it's just a weird path. name = "\improper Nanotrasen Mecha Pilot" desc = "Death to the Syndicate. This variant comes in MECHA DEATH flavour." icon_living = "nanotrasen" @@ -52,7 +52,7 @@ Featuring: faction = list("nanotrasen") spawn_mecha_type = /obj/mecha/combat/marauder/loaded -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/no_mech/nanotrasen +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/no_mech/nanotrasen name = "\improper Nanotrasen Mecha Pilot" desc = "Death to the Syndicate. This variant comes in MECHA DEATH flavour." icon_living = "nanotrasen" @@ -60,7 +60,7 @@ Featuring: faction = list("nanotrasen") -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/Initialize() +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/Initialize() . = ..() if(spawn_mecha_type) var/obj/mecha/M = new spawn_mecha_type (get_turf(src)) @@ -68,7 +68,7 @@ Featuring: INVOKE_ASYNC(src, PROC_REF(enter_mecha), M) -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/enter_mecha(obj/mecha/M) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/enter_mecha(obj/mecha/M) if(!M) return 0 LoseTarget() //Target was our mecha, so null it out @@ -93,7 +93,7 @@ Featuring: mecha.lights_action.Activate() -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/exit_mecha(obj/mecha/M) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/exit_mecha(obj/mecha/M) if(!M) return 0 @@ -116,7 +116,7 @@ Featuring: walk(M,0)//end any lingering movement loops, to prevent the haunted mecha bug //Checks if a mecha is valid for theft -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/is_valid_mecha(obj/mecha/M) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/is_valid_mecha(obj/mecha/M) if(!M) return 0 if(M.occupant) @@ -128,7 +128,7 @@ Featuring: return 1 -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/mecha_face_target(atom/A) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/mecha_face_target(atom/A) if(mecha) var/dirto = get_dir(mecha,A) if(mecha.dir != dirto) //checking, because otherwise the mecha makes too many turn noises @@ -136,7 +136,7 @@ Featuring: -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/mecha_reload() +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/mecha_reload() if(mecha) for(var/equip in mecha.equipment) var/obj/item/mecha_parts/mecha_equipment/ME = equip @@ -144,7 +144,7 @@ Featuring: ME.rearm() -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/get_mecha_equip_by_flag(flag = MECHA_RANGED) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/proc/get_mecha_equip_by_flag(flag = MECHA_RANGED) . = list() if(mecha) for(var/equip in mecha.equipment) @@ -156,7 +156,7 @@ Featuring: //Pick a ranged weapon/tool //Fire it -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/OpenFire(atom/A) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/OpenFire(atom/A) if(mecha) mecha_reload() mecha_face_target(A) @@ -171,7 +171,7 @@ Featuring: ..() -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/AttackingTarget() +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/AttackingTarget() if(mecha) var/list/possible_weapons = get_mecha_equip_by_flag(MECHA_MELEE) if(possible_weapons.len) @@ -198,7 +198,7 @@ Featuring: return target.attack_animal(src) -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/handle_automated_action() +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/handle_automated_action() if(..()) if(!mecha) for(var/obj/mecha/combat/C in range(src,vision_range)) @@ -245,12 +245,12 @@ Featuring: -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/death(gibbed) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/death(gibbed) if(mecha) mecha.aimob_exit_mech(src) ..() -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/gib() +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/gib() if(mecha) mecha.aimob_exit_mech(src) ..() @@ -258,7 +258,7 @@ Featuring: //Yes they actually try and pull this shit //~simple animals~ -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/CanAttack(atom/the_target) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/CanAttack(atom/the_target) if(ismecha(the_target)) var/obj/mecha/M = the_target if(mecha) @@ -275,19 +275,19 @@ Featuring: . = ..() -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/EscapeConfinement() +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/EscapeConfinement() if(mecha && loc == mecha) return 0 ..() -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/Move(NewLoc,Dir=0,step_x=0,step_y=0) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/Move(NewLoc,Dir=0,step_x=0,step_y=0) if(mecha && loc == mecha) return mecha.relaymove(src, Dir) return ..() -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/Goto(target, delay, minimum_distance) +/mob/living/simple_animal/hostile/human/syndicate/mecha_pilot/Goto(target, delay, minimum_distance) if(mecha) walk_to(mecha, target, minimum_distance, mecha.step_in) else diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 5bdc5c882214..63519d29c7cd 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -41,7 +41,7 @@ Difficulty: Medium ranged_cooldown_time = 16 pixel_x = -16 base_pixel_x = -16 - crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator, /obj/item/crusher_trophy/miner_eye) + //mob_trophy = /obj/item/mob_trophy/miner_eye loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator) wander = FALSE del_on_death = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index d62d695e1be7..1a0bbc10fac4 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -56,7 +56,7 @@ Difficulty: Hard pixel_x = -32 base_pixel_x = -32 del_on_death = TRUE - crusher_loot = list(/obj/structure/closet/crate/necropolis/bubblegum/crusher) + //mob_trophy = /obj/item/mob_trophy/demon_claws loot = list(/obj/structure/closet/crate/necropolis/bubblegum) blood_volume = BLOOD_VOLUME_MAXIMUM //BLEED FOR ME var/charging = FALSE @@ -504,7 +504,7 @@ Difficulty: Hard health = 1 maxHealth = 1 alpha = 127.5 - crusher_loot = null + mob_trophy = null loot = null achievement_type = null crusher_achievement_type = null diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm index cca8a649353f..77b4544a6dbb 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm @@ -21,7 +21,6 @@ ranged = TRUE speed = 4 move_to_delay = 4 - crusher_loot = list(/obj/item/card/id/ert/deathsquad, /obj/item/documents/nanotrasen) loot = list(/obj/item/card/id/ert/deathsquad, /obj/item/documents/nanotrasen) wander = FALSE blood_volume = BLOOD_VOLUME_NORMAL @@ -59,8 +58,8 @@ speed = 5 move_to_delay = 5 speak_emote = list("verbalizes") - crusher_loot = list(/obj/effect/spawner/clawloot) - loot = list(/obj/effect/spawner/clawloot/crusher) + mob_trophy = /obj/item/nullrod/armblade/tentacle + loot = list(/obj/effect/spawner/clawloot) health = 2250 maxHealth = 2250 shouldnt_move = TRUE //we want to show the transforming animation @@ -76,9 +75,6 @@ new /obj/item/gun/energy/pulse/pistol(get_turf(src)) qdel(src) -/obj/effect/spawner/clawloot/crusher/spawn_loot() - new /obj/item/nullrod/armblade/tentacle(get_turf(src)) //idk what to put here, memed is the loot person - return ..() ///LOOT END //PHASE ONE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index bd09f06f3521..863abf56dad1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -50,7 +50,7 @@ Difficulty: Very Hard achievement_type = /datum/award/achievement/boss/colossus_kill crusher_achievement_type = /datum/award/achievement/boss/colossus_crusher score_achievement_type = /datum/award/score/colussus_score - crusher_loot = list(/obj/structure/closet/crate/necropolis/colossus/crusher) + //mob_trophy = /obj/item/mob_trophy/blaster_tubes loot = list(/obj/structure/closet/crate/necropolis/colossus) deathmessage = "disintegrates, leaving a glowing core in its wake." deathsound = 'sound/magic/demon_dies.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm index 96fbc8b5c4ec..08ef1a7b21cb 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm @@ -24,7 +24,7 @@ vision_range = 10 damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 0.5, CLONE = 0.5, STAMINA = 0, OXY = 0.5) loot = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted) - crusher_loot = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted, /obj/item/upgradescroll) + mob_trophy = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted, /obj/item/upgradescroll) wander = FALSE del_on_death = TRUE blood_volume = BLOOD_VOLUME_NORMAL diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 550c78532cd6..00a32a8dc449 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -28,7 +28,7 @@ Difficulty: Extremely Hard speed = 20 move_to_delay = 20 ranged = TRUE - crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman) + //mob_trophy = /obj/item/mob_trophy/ice_block_talisman loot = list(/obj/effect/decal/remains/plasma) wander = FALSE del_on_death = TRUE @@ -323,47 +323,3 @@ Difficulty: Extremely Hard mineral_scan_pulse(T, world.view + 1) . = ..() -/obj/item/crusher_trophy/ice_block_talisman - name = "ice block talisman" - desc = "A glowing trinket that a demonic miner had on him, it seems he couldn't utilize it for whatever reason." - icon_state = "freeze_cube" - denied_type = /obj/item/crusher_trophy/ice_block_talisman - -/obj/item/crusher_trophy/ice_block_talisman/effect_desc() - return "waveform collapse to freeze a creature in a block of ice for a period, preventing them from moving" - -/obj/item/crusher_trophy/ice_block_talisman/on_mark_detonation(mob/living/target, mob/living/user) - target.apply_status_effect(/datum/status_effect/ice_block_talisman) - -/datum/status_effect/ice_block_talisman - id = "ice_block_talisman" - duration = 40 - status_type = STATUS_EFFECT_REFRESH - alert_type = /atom/movable/screen/alert/status_effect/ice_block_talisman - /// Stored icon overlay for the hit mob, removed when effect is removed - var/icon/cube - -/atom/movable/screen/alert/status_effect/ice_block_talisman - name = "Frozen Solid" - desc = "You're frozen inside an ice cube, and cannot move!" - icon_state = "frozen" - -/datum/status_effect/ice_block_talisman/on_apply() - RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) - if(!owner.stat) - to_chat(owner, "You become frozen in a cube!") - cube = icon('icons/effects/freeze.dmi', "ice_cube") - var/icon/size_check = icon(owner.icon, owner.icon_state) - cube.Scale(size_check.Width(), size_check.Height()) - owner.add_overlay(cube) - return ..() - -/// Blocks movement from the status effect owner -/datum/status_effect/ice_block_talisman/proc/owner_moved() - return COMPONENT_MOVABLE_BLOCK_PRE_MOVE - -/datum/status_effect/ice_block_talisman/on_remove() - if(!owner.stat) - to_chat(owner, "The cube melts!") - owner.cut_overlay(cube) - UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 6fcf5ada7f4a..b7a2f0912653 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -54,10 +54,10 @@ Difficulty: Medium ranged = TRUE pixel_x = -32 base_pixel_x = -32 - crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher) + //mob_trophy = /obj/item/mob_trophy/ash_spike loot = list(/obj/structure/closet/crate/necropolis/dragon) butcher_results = list(/obj/item/gem/amber = 1, /obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) - guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/crusher_trophy/ash_spike = 1) + guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/ashdrake = 10) var/swooping = NONE var/player_cooldown = 0 var/dungeon = FALSE //if true, on death will spawn a ghost role at a lank mark and open blast doors with a certain id @@ -583,7 +583,7 @@ Difficulty: Medium mouse_opacity = MOUSE_OPACITY_ICON damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) loot = list() - crusher_loot = list() + mob_trophy = list() butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) attack_action_types = list() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 4df97bac4a6f..ba112bbf5e72 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -59,7 +59,7 @@ Difficulty: Hard ranged_cooldown_time = 40 aggro_vision_range = 21 //so it can see to one side of the arena to the other loot = list(/obj/item/hierophant_club) - crusher_loot = list(/obj/item/hierophant_club, /obj/item/crusher_trophy/vortex_talisman) + //mob_trophy = /obj/item/mob_trophy/vortex_talisman wander = FALSE gps_name = "Zealous Signal" achievement_type = /datum/award/achievement/boss/hierophant_kill diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 120b850cf428..37934c0367e5 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -28,7 +28,7 @@ layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise mouse_opacity = MOUSE_OPACITY_OPAQUE // Easier to click on in melee, they're giant targets anyway flags_1 = PREVENT_CONTENTS_EXPLOSION_1 - var/list/crusher_loot + var/mob_trophy var/achievement_type var/crusher_achievement_type var/score_achievement_type @@ -71,10 +71,10 @@ if(health > 0) return else - var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + spawn_mob_trophy() + var/datum/status_effect/crusher_damage/crusher = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) var/crusher_kill = FALSE - if(C && crusher_loot && C.total_damage >= maxHealth * 0.6) - spawn_crusher_loot() + if(crusher && mob_trophy && crusher.total_damage >= maxHealth * 0.6) crusher_kill = TRUE if(true_spawn && !(flags_1 & ADMIN_SPAWNED_1)) var/tab = "megafauna_kills" @@ -85,8 +85,8 @@ SSblackbox.record_feedback("tally", tab, 1, "[initial(name)]") ..() -/mob/living/simple_animal/hostile/megafauna/proc/spawn_crusher_loot() - loot = crusher_loot +/mob/living/simple_animal/hostile/megafauna/proc/spawn_mob_trophy() + loot += mob_trophy /mob/living/simple_animal/hostile/megafauna/gib() if(health > 0) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index a2cceb5a3aaa..0c13b9d67f16 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -39,7 +39,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa for(var/t in swarmerTypes) . += GLOB.AISwarmerCapsByType[t] - +//this should. not be a simple mob i think /mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon name = "swarmer beacon" desc = "That name is a bit of a mouthful, but stop paying attention to your mouth they're eating everything!" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 59a58bd48d16..095ad0f8fca2 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -32,7 +32,7 @@ Difficulty: Hard loot = list() butcher_results = list() guaranteed_butcher_results = list(/obj/item/wendigo_blood = 1) - crusher_loot = list(/obj/item/crusher_trophy/demon_claws) + //mob_trophy = /obj/item/mob_trophy/demon_claws wander = FALSE del_on_death = FALSE blood_volume = BLOOD_VOLUME_NORMAL diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index eb8302536e50..d10b9b86fb9b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -230,7 +230,7 @@ movement_type = FLYING robust_searching = 1 attack_same = TRUE // So we'll fight basilisks - crusher_loot = /obj/item/crusher_trophy/watcher_wing + //mob_trophy = /obj/item/mob_trophy/watcher_wing gold_core_spawnable = NO_SPAWN loot = list() butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) @@ -294,8 +294,8 @@ light_power = 2.5 light_color = LIGHT_COLOR_LAVA projectiletype = /obj/projectile/temp/basilisk/magmawing - crusher_loot = /obj/item/crusher_trophy/magma_wing - crusher_drop_mod = 75 + //mob_trophy = /obj/item/mob_trophy/magma_wing + trophy_drop_mod = 75 /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing name = "icewing watcher" @@ -309,8 +309,8 @@ ranged_cooldown_time = 20 projectiletype = /obj/projectile/temp/basilisk/icewing butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/bone = 1) //No sinew; the wings are too fragile to be usable - crusher_loot = /obj/item/crusher_trophy/ice_wing - crusher_drop_mod = 75 + //mob_trophy = /obj/item/mob_trophy/ice_wing + trophy_drop_mod = 75 /obj/projectile/temp/basilisk/magmawing name = "scorching blast" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm index 1d9f6e174660..815bfca00028 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm @@ -37,7 +37,7 @@ light_color = LIGHT_COLOR_BLOOD_MAGIC light_power = 5 light_range = 1.4 - crusher_loot = /obj/item/crusher_trophy/brimdemon_fang + //mob_trophy = /obj/item/mob_trophy/brimdemon_fang /// Are we charging/firing? If yes stops our movement. var/firing = FALSE /// A list of all the beam parts. @@ -184,22 +184,6 @@ hit_mob.adjustFireLoss(5) to_chat(hit_mob, span_danger("You're damaged by [src]!")) -/obj/item/crusher_trophy/brimdemon_fang - name = "brimdemon's fang" - icon_state = "brimdemon_fang" - desc = "A fang from a brimdemon's corpse." - denied_type = /obj/item/crusher_trophy/brimdemon_fang - var/static/list/comic_phrases = list("BOOM", "BANG", "KABLOW", "KAPOW", "OUCH", "BAM", "KAPOW", "WHAM", "POW", "KABOOM") - var/static/list/damage_heal_order = list(BRUTE, BURN, OXY) - -/obj/item/crusher_trophy/brimdemon_fang/effect_desc() - return "mark detonation creates audiosensory effects on the target and slightly heals the wielder" - -/obj/item/crusher_trophy/brimdemon_fang/on_mark_detonation(mob/living/target, mob/living/user) - target.balloon_alert_to_viewers("[pick(comic_phrases)]!") - playsound(target, 'sound/creatures/brimdemon_crush.ogg', 100) - user.heal_ordered_damage(bonus_value * 0.4, damage_heal_order) - /obj/effect/decal/cleanable/brimdust name = "brimdust" desc = "Dust from a brimdemon. It is considered valuable for botanical and heating purposes." diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 7e2b1c3d990c..cb7eaad0e988 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -43,7 +43,7 @@ mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON deathmessage = "explodes into gore!" - loot_drop = /obj/item/crusher_trophy/broodmother_tongue + //loot_drop = /obj/item/mob_trophy/broodmother_tongue attack_action_types = list(/datum/action/innate/elite_attack/tentacle_patch, /datum/action/innate/elite_attack/spawn_children, @@ -246,22 +246,6 @@ T = get_step(T, i) new /obj/effect/temp_visual/goliath_tentacle/broodmother(T, spawner) -// Broodmother's loot: Broodmother Tongue -/obj/item/crusher_trophy/broodmother_tongue - name = "broodmother tongue" - desc = "The tongue of a broodmother. If attached a certain way, makes for a suitable crusher trophy." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "broodmother_tongue" - denied_type = /obj/item/crusher_trophy/broodmother_tongue - bonus_value = 35 - -/obj/item/crusher_trophy/broodmother_tongue/effect_desc() - return "waveform collapse to have a [bonus_value]% chance to summon a patch of goliath tentacles at the target's location" - -/obj/item/crusher_trophy/broodmother_tongue/on_mark_detonation(mob/living/target, mob/living/user) - if(rand(1, 100) <= bonus_value && target.stat != DEAD) - new /obj/effect/temp_visual/goliath_tentacle/broodmother/patch(get_turf(target), user) - /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet name = "baby gruboid" desc = "A young gruboid recently born. As a defense mechanism, they violently explode if killed." diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index f0b6dc3e8d54..e6ea404aca09 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -38,7 +38,7 @@ mouse_opacity = MOUSE_OPACITY_ICON deathsound = 'sound/magic/curse.ogg' deathmessage = "'s arms reach out before it falls apart onto the floor, lifeless." - loot_drop = /obj/item/crusher_trophy/legionnaire_spine + loot_drop = /obj/item/mob_trophy/legionnaire_spine attack_action_types = list(/datum/action/innate/elite_attack/legionnaire_charge, /datum/action/innate/elite_attack/head_detach, @@ -278,23 +278,8 @@ transform *= 0.33 // Legionnaire's loot: Legionnaire Spine - -/obj/item/crusher_trophy/legionnaire_spine +/obj/item/mob_trophy/legionnaire_spine name = "legionnaire spine" desc = "The spine of a legionnaire. It almost feels like it's moving..." icon = 'icons/obj/lavaland/elite_trophies.dmi' icon_state = "legionnaire_spine" - denied_type = /obj/item/crusher_trophy/legionnaire_spine - bonus_value = 50//These skulls are a joke, so this bonus value had to be put on steroidal emergency treatment - -/obj/item/crusher_trophy/legionnaire_spine/effect_desc() - return "waveform collapse to have a [bonus_value]% chance to summon a loyal legion skull" - -/obj/item/crusher_trophy/legionnaire_spine/on_mark_detonation(mob/living/target, mob/living/user) - if(!rand(1, 100) <= bonus_value || target.stat == DEAD) - return - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion(user.loc) - A.flags_1 |= (flags_1 & ADMIN_SPAWNED_1) - A.GiveTarget(target) - A.friends = user - A.faction = user.faction.Copy() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index ce3850d22f01..d8aedc292ca0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -147,7 +147,7 @@ icon_dead = "goliath_dead" throw_message = "does nothing to the tough hide of the" pre_attack_icon = "goliath_preattack" - crusher_loot = /obj/item/crusher_trophy/goliath_tentacle + //mob_trophy = /obj/item/mob_trophy/goliath_tentacle butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/goliath = 2, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/ore/silver = 10) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide = 2) loot = list() @@ -249,11 +249,11 @@ maxHealth = 180 health = 180 speed = 4 - crusher_loot = /obj/item/crusher_trophy/elder_tentacle + //mob_trophy = /obj/item/mob_trophy/elder_tentacle pre_attack_icon = "ancient_goliath_preattack" throw_message = "does nothing to the rocky hide of the" guaranteed_butcher_results = list() - crusher_drop_mod = 75 + trophy_drop_mod = 75 wander = FALSE bonus_tame_chance = 10 var/list/cached_tentacle_turfs diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 1cbc7ec58d51..d637b19a2a08 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -50,8 +50,8 @@ OpenFire() return TRUE -/mob/living/simple_animal/hostile/asteroid/hivelord/spawn_crusher_loot() - loot += crusher_loot //we don't butcher +/mob/living/simple_animal/hostile/asteroid/hivelord/spawn_mob_trophy() + loot += mob_trophy //we don't butcher /mob/living/simple_animal/hostile/asteroid/hivelord/death(gibbed) mouse_opacity = MOUSE_OPACITY_ICON @@ -119,7 +119,7 @@ throw_message = "bounces harmlessly off of" loot = list(/obj/item/organ/regenerative_core/legion) brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion - crusher_loot = /obj/item/crusher_trophy/legion_skull + mob_trophy = /obj/item/mob_trophy/legion_skull del_on_death = 1 stat_attack = HARD_CRIT robust_searching = 1 @@ -131,7 +131,7 @@ move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT if(prob(15)) - new /obj/item/crusher_trophy/legion_skull(loc) + new /obj/item/mob_trophy/legion_skull(loc) visible_message("One of the [src]'s skulls looks intact.") ..() @@ -150,7 +150,7 @@ icon_living = "dwarf_legion" icon_aggro = "dwarf_legion" icon_dead = "dwarf_legion" - crusher_loot = /obj/item/crusher_trophy/dwarf_skull + //mob_trophy = /obj/item/mob_trophy/dwarf_skull maxHealth = 150 health = 150 move_to_delay = 2 @@ -182,9 +182,6 @@ move_force = MOVE_FORCE_DEFAULT move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT - if(prob(75)) - new /obj/item/crusher_trophy/dwarf_skull(loc) - visible_message("One of the [src]'s skulls looks like it survived.") ..() //Legion skull @@ -316,14 +313,9 @@ move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT visible_message("[src] falls over with a mighty crash, the remaining legions within it falling apart!") - new /obj/item/crusher_trophy/legion_skull(loc) - new /obj/item/crusher_trophy/legion_skull(loc) - new /obj/item/crusher_trophy/legion_skull(loc) new /mob/living/simple_animal/hostile/asteroid/hivelord/legion(loc) new /mob/living/simple_animal/hostile/asteroid/hivelord/legion(loc) new /mob/living/simple_animal/hostile/asteroid/hivelord/legion(loc) - if(prob(45)) - new /obj/item/reagent_containers/glass/bottle/necropolis_seed(loc) ..(gibbed) /mob/living/simple_animal/hostile/big_legion/Initialize() @@ -339,7 +331,7 @@ icon_living = "snowlegion" icon_aggro = "snowlegion_alive" icon_dead = "snowlegion" - crusher_loot = /obj/item/crusher_trophy/legion_skull + mob_trophy = /obj/item/mob_trophy/legion_skull loot = list(/obj/item/organ/regenerative_core/legion) brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow @@ -403,521 +395,38 @@ /obj/effect/mob_spawn/human/corpse/damaged/legioninfested/Initialize() //in an ideal world, these would generate, the legion would overlay over the corpse, and we'd get cool sprites mob_species = pickweight(list( - /datum/species/human = 31, - /datum/species/lizard = 26, - /datum/species/elzuose = 24, - /datum/species/spider = 7, - /datum/species/ipc = 7, - /datum/species/jelly = 4, - /datum/species/fly = 1 + /datum/species/human = 50, + /datum/species/lizard = 20, + /datum/species/ipc = 10, + /datum/species/elzuose = 10, + /datum/species/moth = 5, + /datum/species/spider = 5 ) ) var/type = pickweight(list( - "Miner" = 44, - "Waldo" = 3, - "Ashwalker" = 7, - "Soldier" = 5, - "Oldminer" = 8, - "Kobold" = 5, - "SRM" = 6, - "Operative" = 5, - pick("Shadow", "YeOlde") = 4 + "Miner" = 40, + "Assistant" = 10, + "Engineer" = 5, + "Doctor" = 5, + "Scientist" = 5, + "Cargo" = 5, + "Security" = 5 ) ) + switch(type) if("Miner") - if(prob(2)) - mob_species = /datum/species/plasmaman - uniform = /obj/item/clothing/under/plasmaman - head = /obj/item/clothing/head/helmet/space/plasmaman - belt = /obj/item/tank/internals/plasmaman/belt - else - uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland - if (prob(4)) - belt = pickweight(list( - /obj/item/storage/belt/mining = 2, - /obj/item/storage/belt/mining/alt = 2 - ) - ) - else if(prob(10)) - belt = pickweight(list( - /obj/item/pickaxe = 8, - /obj/item/pickaxe/mini = 4, - /obj/item/pickaxe/silver = 2, - /obj/item/pickaxe/diamond = 1, - /obj/item/gun/energy/kinetic_accelerator = 1 - ) - ) - else - belt = /obj/item/tank/internals/emergency_oxygen/engi - if(mob_species != /datum/species/lizard) - shoes = /obj/item/clothing/shoes/workboots/mining - gloves = /obj/item/clothing/gloves/color/black - mask = /obj/item/clothing/mask/gas/explorer - if(prob(45)) - glasses = /obj/item/clothing/glasses/meson - if(prob(20)) - suit = pickweight(list( - /obj/item/clothing/suit/hooded/explorer = 18, - /obj/item/clothing/suit/hooded/cloak/goliath = 2 - ) - ) - if(prob(30)) - r_pocket = pickweight(list( - /obj/item/stack/marker_beacon = 20, - /obj/item/spacecash/bundle/mediumrand = 7, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/damage = 1 - ) - ) - if(prob(10)) - l_pocket = pickweight(list( - /obj/item/spacecash/bundle/mediumrand = 7, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/cooldown = 1 - ) - ) - if(prob(95)) - back = /obj/item/storage/backpack/explorer - backpack_contents = list(/obj/item/radio) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite = 3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite = 3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(30)) - backpack_contents += list( - /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( - 1 = 3, - 2 = 2, - 3 = 1 - ) - ) - ) - else - back = /obj/item/kinetic_crusher - if("Oldminer") - suit = /obj/item/clothing/suit/hooded/explorer/old - mask = /obj/item/clothing/mask/gas/explorer/old - if(prob(95)) - glasses = /obj/item/clothing/glasses/meson - else - glasses = /obj/item/clothing/glasses/meson/night - suit_store = /obj/item/tank/internals/oxygen - gloves = /obj/item/clothing/gloves/explorer/old - uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland/old - if(prob(85)) - back = /obj/item/storage/backpack/explorer //someone could totally make these backpacks a subtype and just have them be there. It'd cut down this file size a bit. - backpack_contents = list() - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(30)) - backpack_contents += list( - /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( - 1 = 3, - 2 = 2, - 3 = 1 - ) - ) - ) - else - back = /obj/item/kinetic_crusher/old - if(prob(30)) - belt = /obj/item/gun/energy/kinetic_accelerator/old - if(prob(30)) - r_pocket = pickweight(list( - /obj/item/stack/marker_beacon = 20, - /obj/item/spacecash/bundle/mediumrand = 7, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/damage = 1 - ) - ) - if(prob(30)) - l_pocket = pickweight(list( - /obj/item/spacecash/bundle/mediumrand = 5, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/cooldown = 1 - ) - ) - if("Ashwalker") - mob_species = /datum/species/lizard/ashwalker - uniform = /obj/item/clothing/under/costume/gladiator/ash_walker - if(prob(95)) - head = /obj/item/clothing/head/helmet/gladiator - else - head = /obj/item/clothing/head/helmet/skull - suit = /obj/item/clothing/suit/armor/bone - gloves = /obj/item/clothing/gloves/bracer - if(prob(45)) - back = pickweight(list( - /obj/item/spear/bonespear = 3, - /obj/item/fireaxe/boneaxe = 2 - ) - ) - if(prob(10)) - belt = /obj/item/storage/belt/mining/primitive - if(prob(30)) - r_pocket = /obj/item/restraints/legcuffs/bola/watcher - if(prob(30)) - l_pocket = /obj/item/kitchen/knife/combat/bone - if("Soldier") - mob_species = /datum/species/human - if(prob(90)) - uniform = /obj/item/clothing/under/solgov - suit = /obj/item/clothing/suit/armor/vest/bulletproof/solgov - shoes = /obj/item/clothing/shoes/jackboots - gloves = /obj/item/clothing/gloves/color/black - mask = /obj/item/clothing/mask/gas/sechailer - head = /obj/item/clothing/head/solgov/sonnensoldner - id = /obj/item/card/id/solgov - else - uniform = /obj/item/clothing/under/solgov - suit = /obj/item/clothing/suit/space/hardsuit/solgov - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat - mask = /obj/item/clothing/mask/gas/sechailer/swat - id = /obj/item/card/id/solgov - if(prob(85)) - back = /obj/item/storage/backpack - backpack_contents = list() - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/tactical = 1, - /obj/item/gun/ballistic/automatic/pistol/solgov = 1, - /obj/item/gps = 1, - /obj/item/stock_parts/cell/gun/upgraded = 2, - /obj/item/ammo_box/magazine/pistol556mm = 3, - /obj/item/desk_flag/solgov = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/detective_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/kitchen/knife/combat = 3, - /obj/item/flashlight/seclite=3, - /obj/item/ammo_casing/shotgun = 3, - /obj/item/binoculars = 3, - /obj/item/clipboard = 3 - ) - ) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/tactical = 1, - /obj/item/gun/ballistic/automatic/pistol/solgov = 1, - /obj/item/gps = 1, - /obj/item/stock_parts/cell/gun/upgraded = 2, - /obj/item/ammo_box/magazine/pistol556mm = 3, - /obj/item/desk_flag/solgov = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/detective_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/kitchen/knife/combat = 3, - /obj/item/flashlight/seclite=3, - /obj/item/ammo_casing/shotgun = 3, - /obj/item/binoculars = 3, - /obj/item/clipboard = 3 - ) - ) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/tactical = 1, - /obj/item/gun/ballistic/automatic/pistol/solgov = 1, - /obj/item/gps = 1, - /obj/item/stock_parts/cell/gun/upgraded = 2, - /obj/item/ammo_box/magazine/pistol556mm = 3, - /obj/item/desk_flag/solgov = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/detective_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/kitchen/knife/combat = 3, - /obj/item/flashlight/seclite=3, - /obj/item/ammo_casing/shotgun = 3, - /obj/item/binoculars = 3, - /obj/item/clipboard = 3 - ) - ) - else - back = pickweight(list( - /obj/item/energyhalberd = 5, - /obj/item/gun/ballistic/rocketlauncher = 5 - ) - ) - if(prob(25)) - belt = /obj/item/storage/belt/military - if(prob(50)) - r_pocket = pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack = 1, - /obj/item/kitchen/knife/letter_opener = 3, - /obj/item/radio = 3, - /obj/item/grenade/syndieminibomb/concussion = 1, - /obj/item/melee/transforming/energy/ctf/solgov = 1 - ) - ) - if(prob(50)) - l_pocket = pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack = 1, - /obj/item/kitchen/knife/letter_opener = 3, - /obj/item/radio = 3, - /obj/item/grenade/syndieminibomb/concussion = 1, - /obj/item/melee/transforming/energy/ctf/solgov = 1 - ) - ) - if(prob(70)) - glasses = pickweight(list( - /obj/item/clothing/glasses/sunglasses = 3, - /obj/item/clothing/glasses/hud/health = 3, - /obj/item/clothing/glasses/hud/health/night = 1, - /obj/item/clothing/glasses/night = 2 - ) - ) - if("Kobold") - mob_species = /datum/species/lizard/ashwalker/kobold - uniform = /obj/item/clothing/under/costume/gladiator/ash_walker - if(prob(95)) - head = /obj/item/clothing/head/helmet/gladiator - else - head = /obj/item/clothing/head/helmet/skull - suit = /obj/item/clothing/suit/armor/bone - gloves = /obj/item/clothing/gloves/bracer - if(prob(5)) - back = pickweight(list( - /obj/item/spear/bonespear = 3, - /obj/item/fireaxe/boneaxe = 2 - ) - ) - if(prob(10)) - belt = /obj/item/storage/belt/mining/primitive - if(prob(30)) - r_pocket = /obj/item/kitchen/knife/combat/bone - if(prob(30)) - l_pocket = /obj/item/kitchen/knife/combat/bone - if("YeOlde") - mob_gender = FEMALE - uniform = /obj/item/clothing/under/costume/maid - gloves = /obj/item/clothing/gloves/color/white - shoes = /obj/item/clothing/shoes/laceup - head = /obj/item/clothing/head/helmet/knight - suit = /obj/item/clothing/suit/armor/riot/knight - back = /obj/item/shield/riot/buckler - belt = /obj/item/nullrod/claymore - r_pocket = /obj/item/tank/internals/emergency_oxygen - mask = /obj/item/clothing/mask/breath - if("Operative") - id_job = "Operative" - if(prob(40)) - outfit = /datum/outfit/syndicatecommandocorpse - else if(prob(5)) - outfit = /datum/outfit/syndicatestormtroopercorpse - else - outfit = /datum/outfit/syndicateramzicorpse - if("Waldo")//WE FINALLY FOUND HIM - name = "Waldo" - uniform = /obj/item/clothing/under/pants/jeans - suit = /obj/item/clothing/suit/striped_sweater - head = /obj/item/clothing/head/beanie/waldo - shoes = /obj/item/clothing/shoes/sneakers/brown - ears = /obj/item/radio/headset - glasses = /obj/item/clothing/glasses/regular/circle - back = /obj/item/storage/backpack/satchel/leather - backpack_contents = list() - if(prob(50)) - backpack_contents += pickweight(list( - /obj/item/book/granter/spell/knock = 1, - /obj/item/book/granter/spell/blind = 1, - /obj/item/shadowcloak = 1, - /obj/item/book/granter/spell/smoke = 2, - /obj/item/reagent_containers/syringe/mulligan = 2, - /obj/item/dice/d20 = 3, - /obj/item/dice/d20/fate/stealth/one_use = 1, - /obj/item/clothing/head/chameleon/broken = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/grenade/smokebomb = 3, - /obj/item/grenade/flashbang = 3 - ) - ) - if(prob(50)) - backpack_contents += pickweight(list( - /obj/item/book/granter/spell/knock = 1, - /obj/item/book/granter/spell/blind = 1, - /obj/item/shadowcloak = 1, - /obj/item/book/granter/spell/smoke = 2, - /obj/item/reagent_containers/syringe/mulligan = 2, - /obj/item/dice/d20/fate/stealth/one_use = 1, - /obj/item/dice/d20 = 3, - /obj/item/clothing/head/chameleon/broken = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/grenade/smokebomb = 3, - /obj/item/grenade/flashbang = 3 - ) - ) - if(prob(50)) - backpack_contents += pickweight(list( - /obj/item/book/granter/spell/knock = 1, - /obj/item/book/granter/spell/blind = 1, - /obj/item/shadowcloak = 1, - /obj/item/book/granter/spell/smoke = 2, - /obj/item/reagent_containers/syringe/mulligan = 2, - /obj/item/dice/d20/fate/stealth/one_use = 1, - /obj/item/clothing/head/chameleon/broken = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/grenade/smokebomb = 3, - /obj/item/grenade/flashbang = 3 - ) - ) - if(prob(25)) - r_pocket = pickweight(list( - /obj/item/chameleon, - /obj/item/dnainjector/chameleonmut = 1, - /obj/item/flashlight/flashdark = 1 - ) - ) - if(prob(25)) - l_pocket = pickweight(list( - /obj/item/chameleon, - /obj/item/dnainjector/chameleonmut = 1, - /obj/item/flashlight/flashdark = 1 - ) - ) - if("Shadow") - mob_species = /datum/species/shadow - neck = /obj/item/clothing/accessory/medal/plasma/nobel_science - uniform = /obj/item/clothing/under/color/black - shoes = /obj/item/clothing/shoes/sneakers/black - suit = /obj/item/clothing/suit/toggle/labcoat - glasses = /obj/item/clothing/glasses/blindfold - back = /obj/item/tank/internals/oxygen - mask = /obj/item/clothing/mask/breath - if("SRM") - uniform = /obj/item/clothing/under/suit/roumain - shoes = /obj/item/clothing/shoes/workboots/mining - if(prob(50)) - suit = /obj/item/clothing/suit/armor/roumain/shadow - head = /obj/item/clothing/head/cowboy/sec/roumain/shadow - else - suit = /obj/item/clothing/suit/armor/roumain - head = /obj/item/clothing/head/cowboy/sec/roumain - if(prob(25)) - suit_store = /obj/item/gun/ballistic/shotgun/flamingarrow - r_pocket = /obj/item/book/manual/trickwines_4_brewers - belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) - back = /obj/item/storage/backpack/cultpack - backpack_contents = list() - if(prob(75)) - backpack_contents += list(/obj/item/ammo_box/c38_box = 1) - if(prob(75)) - backpack_contents += list(pick( - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) + outfit = /datum/outfit/generic/miner + if("Assistant") + outfit = /datum/outfit/generic + if("Engineer") + outfit = /datum/outfit/generic/engineer + if("Doctor") + outfit = /datum/outfit/generic/doctor + if("Scientist") + outfit = /datum/outfit/generic/science + if("Cargo") + outfit = /datum/outfit/generic/cargo + if("Security") + outfit = /datum/outfit/generic/security . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm new file mode 100644 index 000000000000..0dca4c21dade --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -0,0 +1,479 @@ +/datum/outfit/generic/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + uniform = pickweight(list( + /obj/item/clothing/under/utility = 5, + /obj/item/clothing/under/utility/skirt = 5, + /obj/item/clothing/under/color/black = 1, + /obj/item/clothing/under/color/white = 1, + /obj/item/clothing/under/color/random = 1, + /obj/item/clothing/under/suit/white = 1, + /obj/item/clothing/under/suit/tan = 1, + /obj/item/clothing/under/suit/black_really = 1, + /obj/item/clothing/under/suit/navy = 1, + /obj/item/clothing/under/suit/burgundy = 1, + /obj/item/clothing/under/suit/charcoal = 1, + /obj/item/clothing/under/rank/civilian/lawyer/galaxy = 1, + /obj/item/clothing/under/suit/black/skirt = 1, + /obj/item/clothing/under/suit/black = 1, + /obj/item/clothing/under/dress/sailor = 1, + /obj/item/clothing/under/dress/striped = 1, + /obj/item/clothing/under/dress/skirt/blue = 1, + /obj/item/clothing/under/syndicate/tacticool = 1, + ) + ) + suit = pickweight(list( + /obj/item/clothing/suit/hooded/wintercoat = 1, + /obj/item/clothing/suit/jacket = 1, + /obj/item/clothing/suit/jacket/leather = 1, + /obj/item/clothing/suit/jacket/leather/overcoat = 1, + /obj/item/clothing/suit/jacket/leather/duster = 1, + /obj/item/clothing/suit/jacket/miljacket = 1, + /obj/item/clothing/suit/jacket/puffer = 1, + /obj/item/clothing/suit/gothcoat = 1, + /obj/item/clothing/suit/toggle/industrial = 1, + /obj/item/clothing/suit/toggle/hazard = 1, + ) + ) + back = pickweight(list( + /obj/item/storage/backpack = 1, + /obj/item/storage/backpack/satchel = 1, + /obj/item/storage/backpack/duffelbag = 1, + /obj/item/storage/backpack/messenger = 1, + /obj/item/storage/backpack/satchel/leather = 1 + ) + ) + if (prob(10)) + belt = pickweight(list( + /obj/item/gun/ballistic/automatic/pistol/candor = 2, + /obj/item/gun/ballistic/automatic/pistol/commander = 1, + /obj/item/gun/ballistic/automatic/pistol = 1, + /obj/item/gun/ballistic/revolver = 1, + /obj/item/gun/ballistic/revolver/firebrand = 1, + ) + ) + if(prob(50)) + gloves = pickweight(list( + /obj/item/clothing/gloves/color/black = 1, + /obj/item/clothing/gloves/fingerless = 1, + /obj/item/clothing/gloves/color/white = 1, + ) + ) + shoes = pickweight(list( + /obj/item/clothing/shoes/laceup = 1, + /obj/item/clothing/shoes/sandal = 1, + /obj/item/clothing/shoes/winterboots = 1, + /obj/item/clothing/shoes/workboots/mining = 1, + /obj/item/clothing/shoes/workboots = 1, + /obj/item/clothing/shoes/sneakers/black = 1, + /obj/item/clothing/shoes/sneakers/brown = 1, + /obj/item/clothing/shoes/sneakers/white = 1 + ) + ) + if(prob(50)) + head = pickweight(list( + /obj/item/clothing/head/beret = 3, + /obj/item/clothing/head/beret/grey = 3, + /obj/item/clothing/head/flatcap = 3, + /obj/item/clothing/head/beanie = 3, + /obj/item/clothing/head/cowboy = 3, + /obj/item/clothing/head/trapper = 2, + /obj/item/clothing/head/hardhat = 2, + /obj/item/clothing/head/hardhat/orange = 2, + /obj/item/clothing/head/hardhat/dblue = 2, + /obj/item/clothing/head/pirate = 1, + /obj/item/clothing/head/foilhat = 1 + ) + ) + if(prob(50)) + mask = pickweight(list( + /obj/item/clothing/mask/balaclava = 1, + /obj/item/clothing/mask/bandana/red = 1, + /obj/item/clothing/mask/gas = 3, + /obj/item/clothing/mask/breath = 3, + ) + ) + if(prob(25)) + neck = pickweight(list( + /obj/item/clothing/neck/scarf/red = 1, + /obj/item/clothing/neck/scarf/green = 1, + /obj/item/clothing/neck/scarf/darkblue = 1, + /obj/item/clothing/neck/shemagh = 1, + /obj/item/clothing/neck/stripedredscarf = 1, + /obj/item/clothing/neck/stripedgreenscarf = 1, + /obj/item/clothing/neck/stripedbluescarf = 1 + ) + ) + ears = pick(/obj/item/radio/headset, /obj/item/radio/headset/alt) + if(prob(50)) + glasses = pickweight(list( + /obj/item/clothing/glasses/regular = 1, + /obj/item/clothing/glasses/regular/circle = 1, + /obj/item/clothing/glasses/regular/jamjar = 1, + /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/clothing/glasses/cheapsuns = 1, + /obj/item/clothing/glasses/regular/hipster = 1, + /obj/item/clothing/glasses/cold = 1, + /obj/item/clothing/glasses/heat = 1, + /obj/item/clothing/glasses/orange = 1, + ) + ) + if(prob(75)) + r_pocket = /obj/item/tank/internals/emergency_oxygen + if(prob(75)) + l_pocket = pick(/obj/item/radio, /obj/item/flashlight) + id = /obj/item/card/id + backpack_contents = list() + backpack_contents += pickweight(list( + /obj/item/dice/d20 = 1, + /obj/item/lipstick = 1, + /obj/item/clothing/mask/vape = 1, + /obj/item/clothing/mask/vape/cigar = 1, + /obj/item/reagent_containers/food/drinks/flask = 1, + /obj/item/lighter = 1, + /obj/item/toy/cards/deck = 1, + /obj/item/toy/eightball = 1, + /obj/item/storage/wallet = 1, + /obj/item/paicard = 1, + /obj/item/pen/fourcolor = 1, + /obj/item/paper_bin = 1, + /obj/item/cane = 1, + /obj/item/radio = 1, + /obj/item/dyespray = 1, + /obj/item/table_bell/brass = 1, + /obj/item/flashlight = 1, + /obj/item/crowbar/red = 1 + ) + ) + +/datum/outfit/generic + name = "Generic (Legion)" + box = /obj/item/storage/box/survival + random = TRUE + +/datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pickweight(list( + /obj/item/clothing/under/rank/cargo/miner/lavaland = 5, + /obj/item/clothing/under/rank/cargo/miner = 4, + /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 1, + ) + ) + if(prob(25)) + suit = pickweight(list( + /obj/item/clothing/suit/hooded/explorer = 18, + /obj/item/clothing/suit/hooded/explorer/old = 1, + /obj/item/clothing/suit/hooded/cloak/goliath = 1 + ) + ) + if(prob(75)) + back = /obj/item/storage/backpack/explorer + if(prob(75)) + belt = pickweight(list( + /obj/item/storage/belt/mining = 2, + /obj/item/storage/belt/mining/alt = 2 + ) + ) + else if(prob(75)) + belt = pickweight(list( + /obj/item/pickaxe = 16, + /obj/item/pickaxe/mini = 8, + /obj/item/pickaxe/silver = 4, + /obj/item/pickaxe/diamond = 2, + /obj/item/gun/energy/kinetic_accelerator = 2, + /obj/item/kinetic_crusher/old = 1 + ) + ) + if(prob(75)) + gloves = pickweight(list( + /obj/item/clothing/gloves/color/black = 9, + /obj/item/clothing/gloves/explorer/old = 1 + ) + ) + if(prob(75)) + shoes = /obj/item/clothing/shoes/workboots/mining + if(prob(75)) + mask = pickweight(list( + /obj/item/clothing/mask/gas/explorer = 9, + /obj/item/clothing/mask/gas/explorer/old = 1 + ) + ) + if(prob(50)) + glasses = /obj/item/clothing/glasses/meson + if(prob(50)) + r_pocket = pickweight(list( + /obj/item/stack/marker_beacon = 20, + /obj/item/spacecash/bundle/mediumrand = 7, + /obj/item/reagent_containers/hypospray/medipen/survival = 2, + /obj/item/borg/upgrade/modkit/damage = 1 + ) + ) + if(prob(25)) + l_pocket = pickweight(list( + /obj/item/spacecash/bundle/mediumrand = 5, + /obj/item/reagent_containers/hypospray/medipen/survival = 2, + /obj/item/borg/upgrade/modkit/cooldown = 1 + ) + ) + if(prob(75)) + for(var/count in 1 to 3) + if(prob(70)) + backpack_contents += pickweight(list( + /obj/item/borg/upgrade/modkit/damage = 1, + /obj/item/borg/upgrade/modkit/trigger_guard = 1, + /obj/item/soap/nanotrasen = 1, + /obj/item/wormhole_jaunter = 1, + /obj/item/fulton_core = 1, + /obj/item/extraction_pack = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 3, + /obj/item/hivelordstabilizer = 2, + /obj/item/stack/marker_beacon/ten = 2, + /obj/item/mining_scanner = 2, + /obj/item/extinguisher/mini = 2, + /obj/item/kitchen/knife/combat/survival = 3, + /obj/item/flashlight/seclite = 3, + /obj/item/stack/sheet/sinew = 3, + /obj/item/stack/sheet/bone = 3 + ) + ) + if(prob(30)) + backpack_contents += list( + /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( + 1 = 3, + 2 = 2, + 3 = 1 + ) + ) + ) + else if (prob(75)) + backpack_contents = list() + back = pickweight(list( + /obj/item/kinetic_crusher = 9, + /obj/item/kinetic_crusher/old = 1 + ) + ) + +/datum/outfit/generic/miner + name = "Miner (Legion)" + +/datum/outfit/generic/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/engineering/engineer, /obj/item/clothing/under/rank/engineering/engineer/hazard, /obj/item/clothing/under/rank/security/officer/military/eng) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/toggle/hazard, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hooded/wintercoat/engineering) + if(prob(75)) + gloves = pick(/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/gloves/color/fyellow/old) + if(prob(75)) + belt = pick(/obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility) + if(prob(50)) + head = /obj/item/clothing/head/welding + if(prob(75)) + ears = /obj/item/radio/headset/headset_eng + else if(prob(50)) + glasses = /obj/item/clothing/glasses/welding + if(prob(75)) + back = pick(/obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/storage/backpack/duffelbag/engineering, /obj/item/storage/backpack/messenger/engi) + if(prob(10)) + back = /obj/item/fireaxe + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/stack/tape/industrial/electrical = 1, + /obj/item/electronics/apc = 1, + /obj/item/multitool = 1, + /obj/item/pipe_dispenser = 1, + /obj/item/tank/internals/emergency_oxygen/engi = 1, + /obj/item/holosign_creator/engineering = 1, + /obj/item/extinguisher/advanced = 1, + /obj/item/stack/sheet/metal/twenty = 1 + ) + ) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/engine + +/datum/outfit/generic/engineer + name = "Mechanic (Legion)" + box = /obj/item/storage/box/survival/engineer + +/datum/outfit/generic/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/medical/doctor, /obj/item/clothing/under/rank/medical/doctor/blue) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/toggle/labcoat, /obj/item/clothing/suit/apron/surgical ,/obj/item/clothing/suit/hooded/wintercoat/medical) + if(prob(75)) + back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med) + else if (prob(75)) + back = /obj/item/defibrillator/loaded + if(prob(75)) + belt = pickweight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1)) + if(prob(75)) + gloves = pick(/obj/item/clothing/gloves/color/white, /obj/item/clothing/gloves/color/latex/nitrile) + if(prob(75)) + mask = /obj/item/clothing/mask/surgical + if(prob(75)) + shoes = /obj/item/clothing/shoes/sneakers/white + if(prob(75)) + head = /obj/item/clothing/head/beret/med + if(prob(75)) + ears = /obj/item/radio/headset/headset_med + if(prob(75)) + glasses = pick(/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health/prescription) + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/reagent_containers/pill/patch/styptic = 5, + /obj/item/reagent_containers/pill/patch/silver_sulf = 5, + /obj/item/storage/firstaid/medical = 3, + /obj/item/reagent_containers/syringe = 3, + /obj/item/reagent_containers/glass/beaker = 2, + /obj/item/reagent_containers/dropper = 2, + /obj/item/reagent_containers/pill/charcoal = 2, + /obj/item/reagent_containers/medigel/styptic = 2, + /obj/item/reagent_containers/medigel/silver_sulf = 2, + /obj/item/reagent_containers/medigel/sterilizine = 1, + /obj/item/flashlight/pen = 1, + /obj/item/hypospray/mkii = 1, + /obj/item/healthanalyzer = 1, + ) + ) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/medblue + +/datum/outfit/generic/doctor + name = "Medical Doctor (Legion)" + box = /obj/item/storage/box/survival/medical + +/datum/outfit/generic/science/pre_equip(mob/living/carbon/human/H) + ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/rnd/scientist, /obj/item/clothing/under/rank/rnd/roboticist) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/toggle/labcoat/science, /obj/item/clothing/suit/hooded/wintercoat/science) + if(prob(75)) + back = pick(/obj/item/storage/backpack/science, /obj/item/storage/backpack/satchel/tox, /obj/item/storage/backpack/messenger/tox) + if(prob(75)) + shoes = /obj/item/clothing/shoes/sneakers/white + if(prob(75)) + gloves = /obj/item/clothing/gloves/color/white + if(prob(75)) + head = /obj/item/clothing/head/beret/sci + if(prob(75)) + ears = /obj/item/radio/headset/headset_sci + if(prob(75)) + glasses = pick(/obj/item/clothing/glasses/hud/diagnostic, /obj/item/clothing/glasses/science) + if(prob(1)) + neck = /obj/item/clothing/neck/tie/horrible + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/research_notes/loot/tiny = 3, + /obj/item/research_notes/loot/small = 3, + /obj/item/reagent_scanner = 3, + /obj/item/assembly/flash/handheld = 3, + /obj/item/stock_parts/capacitor/adv = 2, + /obj/item/stock_parts/scanning_module/adv = 2, + /obj/item/stock_parts/manipulator/nano = 2, + /obj/item/stock_parts/micro_laser/high = 2, + /obj/item/stock_parts/matter_bin/adv = 2, + /obj/item/survey_handheld = 1, + /obj/item/weldingtool/experimental = 1, + /obj/item/mmi/posibrain = 1, + /obj/item/reagent_containers/glass/beaker/plastic = 1, + /obj/item/organ/eyes/robotic/shield = 1, + /obj/item/organ/eyes/robotic/glow = 1, + ) + ) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/science + + +/datum/outfit/generic/science + name = "Scientist (Legion)" + +/datum/outfit/generic/cargo/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/cargo/tech, /obj/item/clothing/under/shorts/grey) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hooded/wintercoat/cargo) + if(prob(25)) + belt = /obj/item/gun/ballistic/automatic/zip_pistol + if(prob(75)) + gloves = /obj/item/clothing/gloves/fingerless + if(prob(75)) + shoes = /obj/item/clothing/shoes/sneakers/black + if(prob(75)) + head = /obj/item/clothing/head/soft + if(prob(75)) + ears = /obj/item/radio/headset/headset_cargo + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/spacecash/bundle/mediumrand = 5, + /obj/item/ammo_box/magazine/illestren_a850r = 5, + /obj/item/ammo_box/magazine/zip_ammo_9mm = 5, + /obj/item/modular_computer/tablet/preset/cargo = 3, + /obj/item/stack/tape = 3, + /obj/item/stack/tape/industrial = 3, + /obj/item/stack/sheet/plastic/five = 3, + /obj/item/grenade/frag = 1 + ) + ) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/cargo + if(prob(25)) + suit = /obj/item/clothing/suit/armor/vest/scrap_armor + suit_store = /obj/item/gun/ballistic/rifle/illestren + +/datum/outfit/generic/cargo + name = "Cargo Technician (Legion)" + +/datum/outfit/generic/security/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = /obj/item/clothing/under/rank/security/officer + if(prob(75)) + suit = pick(/obj/item/clothing/suit/armor/vest, /obj/item/clothing/suit/armor/vest/security/officer, /obj/item/clothing/suit/armor/vest/bulletproof, /obj/item/clothing/suit/armor/vest/blueshirt) + if(prob(75)) + back = pick(/obj/item/storage/backpack/security, /obj/item/storage/backpack/satchel/sec, /obj/item/storage/backpack/duffelbag/sec, /obj/item/storage/backpack/messenger/sec) + if(prob(75)) + belt = pick(/obj/item/storage/belt/security, /obj/item/storage/belt/security/webbing) + if(prob(75)) + gloves = pick(/obj/item/clothing/gloves/color/black, /obj/item/clothing/gloves/tackler) + if(prob(75)) + shoes = /obj/item/clothing/shoes/jackboots + if(prob(75)) + head = pick(/obj/item/clothing/head/helmet/sec, /obj/item/clothing/head/helmet/blueshirt, /obj/item/clothing/head/helmet/bulletproof) + if(prob(75)) + mask = /obj/item/clothing/mask/gas/sechailer + if(prob(75)) + ears = /obj/item/radio/headset/headset_sec + if(prob(75)) + glasses = pick(/obj/item/clothing/glasses/hud/security, /obj/item/clothing/glasses/sunglasses) + if(prob(75)) + r_pocket = pick(/obj/item/flashlight/seclite, /obj/item/assembly/flash/handheld, /obj/item/restraints/handcuffs) + if(prob(50)) + suit_store = pick(/obj/item/gun/energy/e_gun, /obj/item/gun/energy/e_gun/smg, /obj/item/gun/energy/e_gun/iot) + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/restraints/handcuffs = 8, + /obj/item/assembly/flash/handheld = 5, + /obj/item/storage/box/evidence = 6, + /obj/item/flashlight/seclite = 4, + /obj/item/ammo_box/c9mm/rubbershot = 3, + /obj/item/ammo_box/c9mm = 1, + /obj/item/stock_parts/cell/gun = 3, + /obj/item/coin/antagtoken = 1, + /obj/item/grenade/stingbang = 1 + ) + ) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/deputy + +/datum/outfit/generic/security + name = "Security Officer (Legion)" + box = /obj/item/storage/box/survival/security + diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm index 2315f6e61a4f..786cdaa80966 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm @@ -74,8 +74,6 @@ new /obj/item/assembly/signaler/anomaly/bluespace(loc) if(prob(5)) new /obj/item/gem/fdiamond(loc) - if(prob(10)) - new /obj/item/crusher_trophy/ice_wing(loc) return ..() /mob/living/simple_animal/hostile/asteroid/old_demon @@ -122,7 +120,7 @@ footstep_type = FOOTSTEP_MOB_CLAW /// Distance the demon will teleport from the target var/teleport_distance = 3 - crusher_drop_mod = 75 + trophy_drop_mod = 75 /obj/projectile/temp/basilisk/ice name = "ice blast" @@ -157,8 +155,6 @@ new /obj/item/assembly/signaler/anomaly/bluespace(loc) if(prob(20)) new /obj/item/gem/fdiamond(loc) - if(prob(50)) - new /obj/item/crusher_trophy/ice_crystal(loc) return ..() /mob/living/simple_animal/hostile/asteroid/ice_demon/random/Initialize() @@ -166,49 +162,3 @@ if(prob(15)) new /mob/living/simple_animal/hostile/asteroid/old_demon(loc) return INITIALIZE_HINT_QDEL - -/obj/item/crusher_trophy/ice_crystal - name = "frost gem" - icon = 'icons/obj/lavaland/elite_trophies.dmi' - desc = "The glowing remnant of an ancient ice demon- so cold that it hurts to touch." - icon_state = "ice_crystal" - denied_type = /obj/item/crusher_trophy/ice_crystal - -/obj/item/crusher_trophy/ice_crystal/effect_desc() - return "waveform collapse to freeze a creature in a block of ice for a period, preventing them from moving" - -/obj/item/crusher_trophy/ice_crystal/on_mark_detonation(mob/living/target, mob/living/user) - target.apply_status_effect(/datum/status_effect/ice_crystal) - -/datum/status_effect/ice_crystal - id = "ice_crystal" - duration = 20 - status_type = STATUS_EFFECT_REFRESH - alert_type = /atom/movable/screen/alert/status_effect/ice_crystal - /// Stored icon overlay for the hit mob, removed when effect is removed - var/icon/cube - -/atom/movable/screen/alert/status_effect/ice_crystal - name = "Frozen Solid" - desc = "You're frozen inside an ice cube, and cannot move!" - icon_state = "frozen" - -/datum/status_effect/ice_crystal/on_apply() - RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) - if(!owner.stat) - to_chat(owner, "You become frozen in a cube!") - cube = icon('icons/effects/freeze.dmi', "ice_cube") - var/icon/size_check = icon(owner.icon, owner.icon_state) - cube.Scale(size_check.Width(), size_check.Height()) - owner.add_overlay(cube) - return ..() - -/// Blocks movement from the status effect owner -/datum/status_effect/ice_crystal/proc/owner_moved() - return COMPONENT_MOVABLE_BLOCK_PRE_MOVE - -/datum/status_effect/ice_crystal/on_remove() - if(!owner.stat) - to_chat(owner, "The cube melts!") - owner.cut_overlay(cube) - UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm index ceef301b2349..7a4d8cb234c2 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm @@ -28,7 +28,7 @@ move_resist = MOVE_FORCE_VERY_STRONG butcher_results = list(/obj/item/stack/ore/diamond = 3, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 10, /obj/item/stack/sheet/animalhide/ashdrake = 1) loot = list() - crusher_loot = /obj/item/crusher_trophy/tail_spike + //mob_trophy = /obj/item/mob_trophy/tail_spike deathmessage = "collapses on its side." deathsound = 'sound/magic/demon_dies.ogg' stat_attack = HARD_CRIT diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm index d95c21ec9bbb..074bda5cf91a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm @@ -33,7 +33,7 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 2, /obj/item/stack/sheet/bone = 2) robust_searching = TRUE footstep_type = FOOTSTEP_MOB_CLAW - crusher_loot = /obj/item/crusher_trophy/lobster_claw + //mob_trophy = /obj/item/mob_trophy/lobster_claw /mob/living/simple_animal/hostile/asteroid/lobstrosity/beach name = "tropical lobstrosity" @@ -42,15 +42,3 @@ icon_living = "lobstrosity" icon_dead = "lobstrosity_dead" -/obj/item/crusher_trophy/lobster_claw - name = "lobster claw" - icon_state = "lobster_claw" - desc = "A lobster claw." - denied_type = /obj/item/crusher_trophy/lobster_claw - bonus_value = 1 - -/obj/item/crusher_trophy/lobster_claw/effect_desc() - return "mark detonation to briefly stagger the target for [bonus_value] seconds" - -/obj/item/crusher_trophy/lobster_claw/on_mark_detonation(mob/living/target, mob/living/user) - target.apply_status_effect(/datum/status_effect/stagger, bonus_value SECONDS) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index b66c71fd58b2..eaf546b3f627 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -12,7 +12,7 @@ response_harm_simple = "strike" status_flags = 0 a_intent = INTENT_HARM - var/crusher_loot + var/mob_trophy var/throw_message = "bounces off of" var/throw_deflection = 20 //WS edit - Whitesands var/fromtendril = FALSE @@ -20,7 +20,7 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE mob_size = MOB_SIZE_LARGE var/icon_aggro = null - var/crusher_drop_mod = 25 + var/trophy_drop_mod = 25 var/datum/armor/armor //WS edit - Whitesands /mob/living/simple_animal/hostile/asteroid/Initialize(mapload) @@ -70,13 +70,12 @@ /mob/living/simple_animal/hostile/asteroid/death(gibbed) SSblackbox.record_feedback("tally", "mobs_killed_mining", 1, type) - var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) - if(C && crusher_loot && prob((C.total_damage/maxHealth) * crusher_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item - spawn_crusher_loot() + if(prob(trophy_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item + spawn_mob_trophy() ..(gibbed) -/mob/living/simple_animal/hostile/asteroid/proc/spawn_crusher_loot() - butcher_results[crusher_loot] = 1 +/mob/living/simple_animal/hostile/asteroid/proc/spawn_mob_trophy() + butcher_results[mob_trophy] = 1 /mob/living/simple_animal/hostile/asteroid/handle_temperature_damage() if(bodytemperature < minbodytemp) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index f9d15892f75d..2bcb3fe06f9a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -27,7 +27,7 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 1) loot = list() - crusher_loot = /obj/item/crusher_trophy/bear_paw + //mob_trophy = /obj/item/mob_trophy/bear_paw stat_attack = HARD_CRIT robust_searching = TRUE footstep_type = FOOTSTEP_MOB_CLAW @@ -57,24 +57,6 @@ desc = "It seems sentient somehow." faction = list("neutral") -/obj/item/crusher_trophy/bear_paw - name = "polar bear paw" - desc = "It's a polar bear paw." - icon_state = "bear_paw" - icon ='icons/obj/lavaland/elite_trophies.dmi' - denied_type = /obj/item/crusher_trophy/bear_paw - -/obj/item/crusher_trophy/bear_paw/effect_desc() - return "doubled strikes when below 50% health" - -/obj/item/crusher_trophy/bear_paw/on_mark_detonation(mob/living/target, mob/living/user) - if(user.health / user.maxHealth > 0.5) - return - var/obj/item/I = user.get_active_held_item() - if(!I) - return - I.melee_attack_chain(user, target, null) - //elite bear /mob/living/simple_animal/hostile/asteroid/polarbear/warrior name = "polar warbear" @@ -91,29 +73,11 @@ icon_state = "warbear" icon_living = "warbear" icon_dead = "warbear_dead" - crusher_loot = /obj/item/crusher_trophy/war_paw - crusher_drop_mod = 75 + //mob_trophy = /obj/item/mob_trophy/war_paw + trophy_drop_mod = 75 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3, /obj/item/bear_armor = 1) -/obj/item/crusher_trophy/war_paw - name = "Armored bear paw" - desc = "It's a paw from a true warrior. Still remembers the basics of CQB." - icon_state = "armor_paw" - icon ='icons/obj/lavaland/elite_trophies.dmi' - denied_type = /obj/item/crusher_trophy/war_paw - -/obj/item/crusher_trophy/war_paw/effect_desc() - return "doubled strikes when below 70% health" - -/obj/item/crusher_trophy/war_paw/on_mark_detonation(mob/living/target, mob/living/user) - if(user.health / user.maxHealth > 0.7) - return - var/obj/item/I = user.get_active_held_item() - if(!I) - return - I.melee_attack_chain(user, target, null) - /mob/living/simple_animal/hostile/asteroid/polarbear/random/Initialize() . = ..() if(prob(15)) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm index 7df8c04f0cf4..336616dfe110 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm @@ -30,9 +30,9 @@ move_force = MOVE_FORCE_WEAK move_resist = MOVE_FORCE_WEAK pull_force = MOVE_FORCE_WEAK - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2, /obj/item/crusher_trophy/wolf_ear = 0.5) + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2, /obj/item/mob_trophy/wolf_ear = 0.5) loot = list() - crusher_loot = /obj/item/crusher_trophy/wolf_ear + mob_trophy = /obj/item/mob_trophy/wolf_ear stat_attack = HARD_CRIT knockdown_time = 1 SECONDS robust_searching = TRUE @@ -108,23 +108,10 @@ move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT if(prob(15)) - new /obj/item/crusher_trophy/wolf_ear(loc) + new /obj/item/mob_trophy/wolf_ear(loc) visible_message("You notice a damaged ear that might be salvagable.") ..() -/obj/item/crusher_trophy/wolf_ear - name = "wolf ear" - desc = "The battered remains of a wolf's ear. You could attach it to a crusher, or use the fur to craft a trophy." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "torn_ear" - denied_type = /obj/item/crusher_trophy/wolf_ear - -/obj/item/crusher_trophy/wolf_ear/effect_desc() - return "waveform collapse to give the user a slight speed boost" - -/obj/item/crusher_trophy/wolf_ear/on_mark_detonation(mob/living/target, mob/living/user) - user.apply_status_effect(/datum/status_effect/speed_boost, 3 SECONDS) - //alpha wolf- smaller chance to spawn, practically a miniboss. Has the ability to do a short, untelegraphed lunge with a stun. Be careful! /mob/living/simple_animal/hostile/asteroid/wolf/alpha name = "alpha wolf" @@ -149,35 +136,12 @@ charge_frequency = 20 SECONDS butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 4, /obj/item/stack/sheet/sinew/wolf = 4, /obj/item/stack/sheet/bone = 5) loot = list() - crusher_loot = /obj/item/crusher_trophy/fang + mob_trophy = /obj/item/mob_trophy/fang /mob/living/simple_animal/hostile/asteroid/wolf/alpha/gib() move_force = MOVE_FORCE_DEFAULT move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT - if(prob(75)) - new /obj/item/crusher_trophy/fang(loc) - visible_message("You find an intact fang that looks salvagable.") - ..() - -/obj/item/crusher_trophy/fang - name = "battle-stained fang" - desc = "A wolf fang, displaying the wear and tear associated with a long and colorful life. Could be attached to a kinetic crusher or used to make a trophy." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "fang" - denied_type = /obj/item/crusher_trophy/fang - var/bleed_stacks_per_hit = 5 - -/obj/item/crusher_trophy/fang/effect_desc() - return "waveform collapse to build up a small stack of bleeding, causing a burst of damage if applied repeatedly." - -/obj/item/crusher_trophy/fang/on_mark_detonation(mob/living/M, mob/living/user) - if(istype(M) && (M.mob_biotypes & MOB_ORGANIC)) - var/datum/status_effect/stacking/saw_bleed/bloodletting/B = M.has_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting) - if(!B) - M.apply_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting, bleed_stacks_per_hit) - else - B.add_stacks(bleed_stacks_per_hit) /mob/living/simple_animal/hostile/asteroid/wolf/random/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm deleted file mode 100644 index 4417e68e2ec1..000000000000 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ /dev/null @@ -1,59 +0,0 @@ -/mob/living/simple_animal/hostile/nanotrasen - name = "\improper Nanotrasen Private Security Officer" - desc = "An officer part of Nanotrasen's private security force, he seems rather unpleased to meet you." - icon = 'icons/mob/simple_human.dmi' - icon_state = "nanotrasen" - icon_living = "nanotrasen" - icon_dead = null - icon_gib = "syndicate_gib" - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID - speak_chance = 0 - turns_per_move = 5 - speed = 0 - stat_attack = HARD_CRIT - robust_searching = 1 - maxHealth = 100 - health = 100 - harm_intent_damage = 5 - melee_damage_lower = 10 - melee_damage_upper = 15 - attack_verb_continuous = "punches" - attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM - loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier) - atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 15 - faction = list(ROLE_DEATHSQUAD) - check_friendly_fire = TRUE - status_flags = CANPUSH - del_on_death = TRUE - dodging = TRUE - footstep_type = FOOTSTEP_MOB_SHOE - -/mob/living/simple_animal/hostile/nanotrasen/screaming - icon_state = "nanotrasen" - icon_living = "nanotrasen" - -/mob/living/simple_animal/hostile/nanotrasen/screaming/Aggro() - ..() - summon_backup(15) - say("411 in progress, requesting backup!") - - -/mob/living/simple_animal/hostile/nanotrasen/ranged - icon_state = "nanotrasenranged" - icon_living = "nanotrasenranged" - ranged = 1 - retreat_distance = 3 - minimum_distance = 5 - casingtype = /obj/item/ammo_casing/c45 - projectilesound = 'sound/weapons/gun/pistol/shot_alt.ogg' - - -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg - icon_state = "nanotrasenrangedsmg" - icon_living = "nanotrasenrangedsmg" - rapid = 3 - casingtype = /obj/item/ammo_casing/c46x30mm - projectilesound = 'sound/weapons/gun/smg/shot.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm deleted file mode 100644 index 1eb03b07650c..000000000000 --- a/code/modules/mob/living/simple_animal/hostile/stickman.dm +++ /dev/null @@ -1,61 +0,0 @@ -/mob/living/simple_animal/hostile/stickman - name = "Angry Stick Man" - desc = "A being from a realm with only 2 dimensions. At least it's trying to stay faced towards you." - icon_state = "stickman" - icon_living = "stickman" - icon_dead = "stickman_dead" - icon_gib = "syndicate_gib" - mob_biotypes = MOB_HUMANOID - gender = MALE - speak_chance = 0 - turns_per_move = 5 - speed = 0 - stat_attack = HARD_CRIT - robust_searching = 1 - environment_smash = ENVIRONMENT_SMASH_NONE - maxHealth = 100 - health = 100 - harm_intent_damage = 5 - obj_damage = 0 - melee_damage_lower = 10 - melee_damage_upper = 10 - attack_verb_continuous = "punches" - attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM - atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 15 - faction = list("hostile","stickman") - check_friendly_fire = 1 - status_flags = CANPUSH - var/datum/action/boss/wizard_summon_minions/changesummons = /datum/action/boss/wizard_summon_minions - var/summoned_by_wizard = 0 - -/mob/living/simple_animal/hostile/stickman/ranged - ranged = 1 - retreat_distance = 5 - minimum_distance = 5 - icon_state = "stickmanranged" - icon_living = "stickmanranged" - casingtype = /obj/item/ammo_casing/c45 - projectilesound = 'sound/misc/bang.ogg' - loot = list(/obj/item/gun/ballistic/automatic/pistol/stickman) - - -/mob/living/simple_animal/hostile/stickman/dog - name = "Angry Stick Dog" - desc = "Stickman's best friend, if he could see him at least." - icon_state = "stickdog" - icon_living = "stickdog" - icon_dead = "stickdog_dead" - mob_biotypes = MOB_BEAST - -/mob/living/simple_animal/hostile/stickman/Initialize(mapload, wizard_summoned) - . = ..() - new /obj/effect/temp_visual/paper_scatter(src) - summoned_by_wizard = wizard_summoned - -/mob/living/simple_animal/hostile/stickman/death() - ..() - if(summoned_by_wizard == 1) - changesummons.summoned_minions -- diff --git a/code/modules/mob/living/simple_animal/hostile/wizard.dm b/code/modules/mob/living/simple_animal/hostile/wizard.dm deleted file mode 100644 index 0d97a1f18869..000000000000 --- a/code/modules/mob/living/simple_animal/hostile/wizard.dm +++ /dev/null @@ -1,82 +0,0 @@ -/mob/living/simple_animal/hostile/wizard - name = "Space Wizard" - desc = "EI NATH?" - icon = 'icons/mob/simple_human.dmi' - icon_state = "wizard" - icon_living = "wizard" - icon_dead = "wizard_dead" - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID - speak_chance = 0 - turns_per_move = 3 - speed = 0 - maxHealth = 100 - health = 100 - harm_intent_damage = 5 - melee_damage_lower = 5 - melee_damage_upper = 5 - attack_verb_continuous = "punches" - attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HARM - atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 15 - faction = list(ROLE_WIZARD) - status_flags = CANPUSH - - retreat_distance = 3 //out of fireball range - minimum_distance = 3 - del_on_death = 1 - loot = list(/obj/effect/mob_spawn/human/corpse/wizard, - /obj/item/staff) - - var/obj/effect/proc_holder/spell/aimed/fireball/fireball = null - var/obj/effect/proc_holder/spell/targeted/turf_teleport/blink/blink = null - var/obj/effect/proc_holder/spell/targeted/projectile/magic_missile/mm = null - - var/next_cast = 0 - - footstep_type = FOOTSTEP_MOB_SHOE - -/mob/living/simple_animal/hostile/wizard/Initialize() - . = ..() - fireball = new /obj/effect/proc_holder/spell/aimed/fireball - fireball.clothes_req = 0 - fireball.human_req = 0 - fireball.player_lock = 0 - AddSpell(fireball) - implants += new /obj/item/implant/exile(src) - - mm = new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile - mm.clothes_req = 0 - mm.human_req = 0 - mm.player_lock = 0 - AddSpell(mm) - - blink = new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink - blink.clothes_req = 0 - blink.human_req = 0 - blink.player_lock = 0 - blink.outer_tele_radius = 3 - AddSpell(blink) - -/mob/living/simple_animal/hostile/wizard/handle_automated_action() - . = ..() - if(target && next_cast < world.time) - if((get_dir(src,target) in list(SOUTH,EAST,WEST,NORTH)) && fireball.cast_check(0,src)) //Lined up for fireball - src.setDir(get_dir(src,target)) - fireball.perform(list(target), user = src) - next_cast = world.time + 10 //One spell per second - return . - if(mm.cast_check(0,src)) - mm.choose_targets(src) - next_cast = world.time + 10 - return . - if(blink.cast_check(0,src)) //Spam Blink when you can - blink.choose_targets(src) - next_cast = world.time + 10 - return . - -/mob/living/simple_animal/hostile/wizard/planet - weather_immunities = list("lava","ash") - minbodytemp = 0 - maxbodytemp = INFINITY diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 131e3f971113..c7070a66bcdf 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -522,7 +522,7 @@ to_chat(src, "You don't have a free hand to examine this!") return FALSE //can only queue up one examine on something at a time - if(examined_thing in do_afters) + if(DOING_INTERACTION_WITH_TARGET(src, examined_thing)) return FALSE to_chat(src, "You start feeling around for something...") @@ -821,8 +821,10 @@ src << browse(null, t1) if(href_list["flavor_more"]) - usr << browse(text("[][]", name, replacetext(flavor_text, "\n", "
")), text("window=[];size=500x200", name)) - onclose(usr, "[name]") + var/datum/browser/popup = new(usr, "[name]'s flavor text", "[name]'s Flavor Text (expanded)", 500, 200) + popup.set_content(text("[][]", "[name]'s flavor text (expanded)", replacetext(flavor_text, "\n", "
"))) + popup.open() + return if(user != src) if(href_list["item"] && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY)) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 6873ee602dac..def2bde930e0 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -191,7 +191,7 @@ ///List of progress bars this mob is currently seeing for actions var/list/progressbars = null //for stacking do_after bars - ///For storing what do_after's someone has, in case we want to restrict them to only one of a certain do_after at a time + ///For storing what do_after's someone has, key = string, value = amount of interactions of that type happening. var/list/do_afters ///Allows a datum to intercept all click calls this mob is the source of diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index d2e6a4f0dda2..01e3a4d33b1a 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -11,7 +11,7 @@ if(usr != src) to_chat(usr, span_warning("You can't set someone else's flavour text!")) - var/msg = sanitize(input(usr,"Set the flavor text in your 'examine' verb. Can also be used for OOC notes about your character.","Flavor Text",html_decode(flavor_text)) as message|null) + var/msg = input(usr, "A snippet of text shown when others examine you, describing what you may look like. This can also be used for OOC notes.", "Flavor Text", html_decode("flavor_text")) as message|null if(msg) msg = copytext(msg, 1, MAX_MESSAGE_LEN) @@ -22,10 +22,10 @@ /mob/proc/print_flavor_text() if(flavor_text && flavor_text != "") var/msg = replacetext(flavor_text, "\n", " ") - if(length(msg) <= 100) + if(length(msg) <= MAX_SHORTFLAVOR_LEN) return "[msg]" else - return "[copytext(msg, 1, 97)]... More..." + return "[copytext(msg, 1, MAX_SHORTFLAVOR_LEN)]... More..." /mob/proc/get_top_level_mob() if(istype(src.loc,/mob)&&src.loc!=src) diff --git a/code/modules/modular_computers/computers/machinery/modular_console.dm b/code/modules/modular_computers/computers/machinery/modular_console.dm index 6213cba441a6..a1af42ca3169 100644 --- a/code/modules/modular_computers/computers/machinery/modular_console.dm +++ b/code/modules/modular_computers/computers/machinery/modular_console.dm @@ -9,8 +9,8 @@ screen_icon_state_menu = "menu" hardware_flag = PROGRAM_CONSOLE density = TRUE - base_idle_power_usage = 100 - base_active_power_usage = 500 + base_idle_power_usage = IDLE_DRAW_MINIMAL + base_active_power_usage = ACTIVE_DRAW_LOW max_hardware_size = 4 steel_sheet_cost = 10 light_strength = 2 diff --git a/code/modules/overmap/helm.dm b/code/modules/overmap/helm.dm index 59fdee827907..5b1f27fa2cb9 100644 --- a/code/modules/overmap/helm.dm +++ b/code/modules/overmap/helm.dm @@ -388,11 +388,11 @@ return to_chat(user, "You begin to manually override the local database...") - if(!do_after_mob(user, list(src), 2 SECONDS)) + if(!do_after(user, 2 SECONDS, list(src))) return COMPONENT_BLOCK_TOOL_ATTACK priority_announce("Illegal access to local ship database detected.", sender_override="[src.name]", zlevel=virtual_z()) - if(!do_after_mob(user, list(src), 10 SECONDS)) + if(!do_after(user, 10 SECONDS, list(src))) return COMPONENT_BLOCK_TOOL_ATTACK say("Warning, database corruption present, resetting local database state.") diff --git a/code/modules/overmap/missions/research_mission.dm b/code/modules/overmap/missions/research_mission.dm index a84b07b6529a..9481556d33be 100644 --- a/code/modules/overmap/missions/research_mission.dm +++ b/code/modules/overmap/missions/research_mission.dm @@ -106,7 +106,7 @@ density = FALSE anchored = FALSE use_power = NO_POWER_USE - idle_power_usage = 400 + idle_power_usage = IDLE_DRAW_MEDIUM processing_flags = START_PROCESSING_MANUALLY /obj/machinery/mission_scanner/wrench_act(mob/living/user, obj/item/I) @@ -122,7 +122,7 @@ if(anchorvalue) set_is_operational(TRUE) START_PROCESSING(SSmachines, src) - use_power = IDLE_POWER_USE + set_idle_power() else set_is_operational(FALSE) STOP_PROCESSING(SSmachines, src) diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index b87d3efda187..ec4b78629027 100644 --- a/code/modules/overmap/ships/controlled_ship_datum.dm +++ b/code/modules/overmap/ships/controlled_ship_datum.dm @@ -436,6 +436,9 @@ SStgui.close_uis(helm) helm.say(helm_locked ? "Helm console is now locked." : "Helm console has been unlocked.") +/datum/overmap/ship/controlled/proc/get_faction() + return source_template.faction_name + /obj/item/key/ship name = "ship key" desc = "A key for locking and unlocking the helm of a ship, comes with a ball chain so it can be worn around the neck. Comes with a cute little shuttle-shaped keychain." diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index b289c32e85e0..cd913c57fb0a 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -80,13 +80,6 @@ custom_materials = null grind_results = list(/datum/reagent/ash = 5, /datum/reagent/cellulose = 10) -/datum/crafting_recipe/charcoal_stylus - name = "Charcoal Stylus" - result = /obj/item/pen/charcoal - reqs = list(/obj/item/stack/sheet/mineral/wood = 1, /datum/reagent/ash = 30) - time = 30 - category = CAT_PRIMAL - /obj/item/pen/fountain/captain name = "captain's fountain pen" desc = "It's an expensive Oak fountain pen. The nib is quite sharp." diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index f85bd0bc77f9..40b0771981e4 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -24,8 +24,8 @@ anchored = TRUE density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 30 - active_power_usage = 200 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW power_channel = AREA_USAGE_EQUIP max_integrity = 300 integrity_failure = 0.33 diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm index 87096bad7e56..f4448c4a53ac 100644 --- a/code/modules/plumbing/plumbers/_plumb_machinery.dm +++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm @@ -8,7 +8,7 @@ icon = 'icons/obj/plumbing/plumbers.dmi' icon_state = "pump" density = TRUE - active_power_usage = 30 + active_power_usage = ACTIVE_DRAW_MINIMAL use_power = ACTIVE_POWER_USE resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF ///Plumbing machinery is always gonna need reagents, so we might aswell put it here diff --git a/code/modules/plumbing/plumbers/pumps.dm b/code/modules/plumbing/plumbers/pumps.dm index 331e3fc24d89..294b50eff748 100644 --- a/code/modules/plumbing/plumbers/pumps.dm +++ b/code/modules/plumbing/plumbers/pumps.dm @@ -7,8 +7,8 @@ base_icon_state = "pump" anchored = FALSE density = TRUE - idle_power_usage = 10 - active_power_usage = 1000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM rcd_cost = 30 rcd_delay = 40 diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 3f85acdddfe6..283d41524f79 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -542,7 +542,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list(new/datum/stack_recipe("cable restrain if(affecting && (!IS_ORGANIC_LIMB(affecting))) if(user == H) user.visible_message("[user] starts to fix some of the wires in [H]'s [parse_zone(affecting.body_zone)].", "You start fixing some of the wires in [H == user ? "your" : "[H]'s"] [parse_zone(affecting.body_zone)].") - if(!do_mob(user, H, 50)) + if(!do_after(user, 0.5 SECONDS, H)) return if(item_heal_robotic(H, user, 0, 15)) use(1) diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm index e112b38f2fd7..0fe0b51c6193 100644 --- a/code/modules/power/floodlight.dm +++ b/code/modules/power/floodlight.dm @@ -61,8 +61,8 @@ density = TRUE max_integrity = 100 integrity_failure = 0.8 - idle_power_usage = 100 - active_power_usage = 1000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM anchored = FALSE light_power = 1.75 var/list/light_setting_list = list(0, 5, 10, 15) diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index a6020d0fae11..3ed7e262a53d 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -115,7 +115,7 @@ /obj/machinery/gravity_generator/main icon_state = "on_8" idle_power_usage = 0 - active_power_usage = 3000 + active_power_usage = ACTIVE_DRAW_EXTREME power_channel = AREA_USAGE_ENVIRON sprite_number = 8 use_power = IDLE_POWER_USE @@ -286,7 +286,10 @@ /obj/machinery/gravity_generator/main/proc/set_state(new_state) charging_state = POWER_IDLE on = new_state - use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE + if(on) + set_active_power() + else + set_idle_power() // Sound the alert if gravity was just enabled or disabled. var/alert = FALSE if(SSticker.IsRoundInProgress()) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 5b0655ddd42d..e92efb779d67 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -217,9 +217,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/light_construct/small, 28) desc = "A lighting fixture." layer = WALL_OBJ_LAYER max_integrity = 100 - use_power = ACTIVE_POWER_USE - idle_power_usage = 2 - active_power_usage = 20 + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = 0 power_channel = AREA_USAGE_LIGHT //Lights are calc'd via area so they dont need to be in the machine list var/on = FALSE // 1 if on, 0 if off var/on_gs = FALSE @@ -360,6 +360,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) addtimer(CALLBACK(src, PROC_REF(update), 0), 1) /obj/machinery/light/Destroy() + if(on) + removeStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) var/area/A = get_area(src) if(A) on = FALSE @@ -420,22 +422,18 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) if(trigger) burn_out() else - use_power = ACTIVE_POWER_USE set_light(BR, PO, CO) else if(has_emergency_power(LIGHT_EMERGENCY_POWER_USE) && !turned_off()) - use_power = IDLE_POWER_USE emergency_mode = TRUE START_PROCESSING(SSmachines, src) else - use_power = IDLE_POWER_USE set_light(0) update_appearance() - active_power_usage = (brightness * 10) if(on != on_gs) on_gs = on if(on) - static_power_used = brightness * 20 //20W per unit luminosity + static_power_used = brightness * LIGHT_DRAW //defined in power defines addStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) else removeStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) @@ -859,8 +857,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) if(!..()) //not caught by a mob shatter() -// update the icon state and description of the light +/obj/item/light/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + shatter() + ..() +// update the icon state and description of the light /obj/item/light/proc/update() switch(status) if(LIGHT_OK) diff --git a/code/modules/power/monitor.dm b/code/modules/power/monitor.dm index b1c2a95a938f..debdba4946bf 100644 --- a/code/modules/power/monitor.dm +++ b/code/modules/power/monitor.dm @@ -7,8 +7,8 @@ icon_keyboard = "power_key" light_color = LIGHT_COLOR_YELLOW use_power = ACTIVE_POWER_USE - idle_power_usage = 20 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL circuit = /obj/item/circuitboard/computer/powermonitor tgui_id = "PowerMonitor" @@ -49,10 +49,12 @@ /obj/machinery/computer/monitor/process() if(!get_powernet()) - use_power = IDLE_POWER_USE + if(use_static_power != IDLE_POWER_USE) + set_idle_power() search() else - use_power = ACTIVE_POWER_USE + if(use_static_power != ACTIVE_POWER_USE) + set_active_power() record() /obj/machinery/computer/monitor/proc/search() //keep in sync with /datum/computer_file/program/power_monitor's version diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index e235e9328549..e63cd1298616 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -291,7 +291,6 @@ circuit = /obj/item/circuitboard/machine/pacman/super sheet_path = /obj/item/stack/sheet/mineral/uranium power_gen = 15000 - time_per_sheet = 85 /obj/machinery/power/port_gen/pacman/super/overheat() . =..() @@ -304,7 +303,6 @@ circuit = /obj/item/circuitboard/machine/pacman/mrs sheet_path = /obj/item/stack/sheet/mineral/diamond power_gen = 40000 - time_per_sheet = 80 /obj/machinery/power/port_gen/pacman/mrs/overheat() . =..() diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 3cf5f5766097..a386a739622d 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -19,6 +19,7 @@ /obj/machinery/power/Destroy() disconnect_from_network() + set_no_power() return ..() /////////////////////////////// @@ -96,14 +97,47 @@ chan = power_channel A.use_power(amount, chan) -/obj/machinery/proc/addStaticPower(value, powerchannel) - var/area/A = get_area(src) +/obj/machinery/proc/addStaticPower(value, powerchannel, area/A) if(!A) - return + if(get_area(src)) + A = get_area(src) + else + return A.addStaticPower(value, powerchannel) -/obj/machinery/proc/removeStaticPower(value, powerchannel) - addStaticPower(-value, powerchannel) +/obj/machinery/proc/removeStaticPower(value, powerchannel, area/A) + addStaticPower(-value, powerchannel, A) + +/obj/machinery/proc/set_idle_power(area/A) + set_no_power(A) + if(use_power == NO_POWER_USE) + return + use_static_power = IDLE_POWER_USE + addStaticPower(idle_power_usage, power_channel + 3, A) + +/obj/machinery/proc/set_active_power(area/A) + set_no_power(A) + if(use_power == NO_POWER_USE) + return + use_static_power = ACTIVE_POWER_USE + addStaticPower(active_power_usage, power_channel + 3, A) + +/obj/machinery/proc/set_no_power(area/A) + switch(use_static_power) + if(IDLE_POWER_USE) + removeStaticPower(idle_power_usage, power_channel + 3, A) + if(ACTIVE_POWER_USE) + removeStaticPower(active_power_usage, power_channel + 3, A) + use_static_power = NO_POWER_USE + +/obj/machinery/proc/set_static_power(area/A)//used to set the actual draw to the value of use_static_power + switch(use_power) + if(NO_POWER_USE) + set_no_power(A) + if(IDLE_POWER_USE) + set_idle_power(A) + if(ACTIVE_POWER_USE) + set_active_power(A) /** * Called whenever the power settings of the containing area change @@ -112,13 +146,15 @@ * * Returns TRUE if the NOPOWER flag was toggled */ -/obj/machinery/proc/power_change() +/obj/machinery/proc/power_change(area/A) SIGNAL_HANDLER SHOULD_CALL_PARENT(1) + set_no_power(A) if(machine_stat & BROKEN) return if(powered(power_channel)) + set_static_power(A) if(machine_stat & NOPOWER) SEND_SIGNAL(src, COMSIG_MACHINERY_POWER_RESTORED) . = TRUE diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index d17e12264706..2dcaa224a71e 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -11,8 +11,8 @@ circuit = /obj/item/circuitboard/machine/emitter use_power = NO_POWER_USE - idle_power_usage = 10 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW var/icon_state_on = "emitter_+a" var/icon_state_underpowered = "emitter_+u" @@ -67,7 +67,7 @@ var/max_firedelay = 120 var/firedelay = 120 var/min_firedelay = 24 - var/power_usage = 350 + var/power_usage = ACTIVE_DRAW_LOW for(var/obj/item/stock_parts/micro_laser/L in component_parts) max_firedelay -= 20 * L.rating min_firedelay -= 4 * L.rating diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 7bc3fa552ad3..ddcaf026a40e 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -6,8 +6,8 @@ anchored = FALSE density = TRUE use_power = NO_POWER_USE - idle_power_usage = 500 - active_power_usage = 10000 + idle_power_usage = IDLE_DRAW_MEDIUM + active_power_usage = ACTIVE_DRAW_EXTREME * 2 dir = NORTH mouse_opacity = MOUSE_OPACITY_OPAQUE var/strength_upper_limit = 2 @@ -53,7 +53,7 @@ connected_parts.Cut() return if(!part_scan()) - use_power = IDLE_POWER_USE + set_idle_power() active = FALSE connected_parts.Cut() @@ -106,7 +106,7 @@ active = FALSE use_power = NO_POWER_USE else if(!machine_stat && construction_state == PA_CONSTRUCTION_COMPLETE) - use_power = IDLE_POWER_USE + set_idle_power() /obj/machinery/particle_accelerator/control_box/process() if(active) @@ -175,14 +175,14 @@ message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? ADMIN_LOOKUPFLW(usr) : "outside forces"] in [ADMIN_VERBOSEJMP(src)]") log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] at [AREACOORD(src)]") if(active) - use_power = ACTIVE_POWER_USE + set_active_power() for(var/CP in connected_parts) var/obj/structure/particle_accelerator/part = CP part.strength = strength part.powered = TRUE part.update_appearance() else - use_power = IDLE_POWER_USE + set_idle_power() for(var/CP in connected_parts) var/obj/structure/particle_accelerator/part = CP part.strength = null diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 8ca409051d6c..d25fc732abe7 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -324,7 +324,7 @@ icon_state = "computer" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 250 + idle_power_usage = IDLE_DRAW_LOW max_integrity = 200 integrity_failure = 0.5 var/icon_screen = "solar" diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index 5b7317972175..26597a64f33b 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -38,6 +38,8 @@ var/list/bounce_sfx_override // if true, overrides the bouncing sfx from the turf to this one + var/bullet_per_box + /obj/item/ammo_casing/spent name = "spent bullet casing" @@ -49,6 +51,7 @@ BB = new projectile_type(src) pixel_x = base_pixel_x + rand(-10, 10) pixel_y = base_pixel_y + rand(-10, 10) + item_flags |= NO_PIXEL_RANDOM_DROP if(auto_rotate) transform = transform.Turn(pick(0, 90, 180, 270)) update_appearance() @@ -100,9 +103,14 @@ bounce_away(FALSE, NONE) . = ..() -/obj/item/ammo_casing/proc/on_eject() +/obj/item/ammo_casing/proc/on_eject(atom/shooter) forceMove(drop_location()) //Eject casing onto ground. - bounce_away(TRUE) + pixel_x = rand(-4, 4) + pixel_y = rand(-4, 4) + pixel_z = 8 //bounce time + var/angle_of_movement = !isnull(shooter) ? (rand(-3000, 3000) / 100) + dir2angle(turn(shooter.dir, 180)) : rand(-3000, 3000) / 100 + AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(400, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = bounce_sfx_override) + /obj/item/ammo_casing/proc/bounce_away(still_warm = FALSE, bounce_delay = 3) if(!heavy_metal) diff --git a/code/modules/projectiles/ammunition/ballistic/lmg.dm b/code/modules/projectiles/ammunition/ballistic/lmg.dm index 90030e7b0944..d46001951ba4 100644 --- a/code/modules/projectiles/ammunition/ballistic/lmg.dm +++ b/code/modules/projectiles/ammunition/ballistic/lmg.dm @@ -6,6 +6,7 @@ icon_state = "rifle-steel" caliber = "7.12x82mm" projectile_type = /obj/projectile/bullet/mm712x82 + bullet_per_box = 100 /obj/item/ammo_casing/mm712x82/ap name = "7.12x82mm armor-piercing bullet casing" diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index a105ae6602ee..0f37b5426d2d 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -6,6 +6,7 @@ icon_state = "pistol-steel" caliber = "10mm" projectile_type = /obj/projectile/bullet/c10mm + bullet_per_box = 50 /obj/item/ammo_casing/c10mm/surplus name = "10mm surplus bullet casing" @@ -45,6 +46,7 @@ icon_state = "pistol-brass" caliber = "9mm" projectile_type = /obj/projectile/bullet/c9mm + bullet_per_box = 50 /obj/item/ammo_casing/c9mm/surplus name = "9mm surplus bullet casing" @@ -84,6 +86,7 @@ icon_state = "pistol-steel" caliber = ".45" projectile_type = /obj/projectile/bullet/c45 + bullet_per_box = 50 /obj/item/ammo_casing/c45/surplus name = ".45 surplus bullet casing" @@ -122,6 +125,7 @@ desc = "A .50 AE bullet casing." caliber = ".50 AE" projectile_type = /obj/projectile/bullet/a50AE + bullet_per_box = 20 /obj/item/ammo_casing/a50AE/hp name = ".50 AE hollow point bullet casing" @@ -134,4 +138,5 @@ desc = "A .22 LR bullet casing." projectile_type = /obj/projectile/bullet/c22lr caliber = "22lr" + bullet_per_box = 75 diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index d5684e834e3d..fa77095de9b9 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -6,6 +6,7 @@ caliber = ".357" icon_state = "magnum-brass" projectile_type = /obj/projectile/bullet/a357 + bullet_per_box = 50 /obj/item/ammo_casing/a357/match name = ".357 match bullet casing" @@ -28,6 +29,7 @@ caliber = ".45-70" icon_state = "magnum-brass" projectile_type = /obj/projectile/bullet/a4570 + bullet_per_box = 12 /obj/item/ammo_casing/a4570/match name = ".45-70 match bullet casing" @@ -53,6 +55,7 @@ desc = "A .38 Special bullet casing." caliber = ".38" projectile_type = /obj/projectile/bullet/c38 + bullet_per_box = 50 /obj/item/ammo_casing/c38/surplus name = ".38 surplus bullet casing" diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 5b93bfaa2463..57592185aff6 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -6,6 +6,7 @@ icon_state = "rifle-brass" caliber = "8x50mmR" projectile_type = /obj/projectile/bullet/a8_50r + bullet_per_box = 20 /obj/item/ammo_casing/a8_50rhp name = "8x50mmR hollow point bullet casing" @@ -23,6 +24,7 @@ icon_state = "caseless" caliber = "a858" projectile_type = /obj/projectile/bullet/a858 + bullet_per_box = 20 // .300 Magnum (Smile Rifle) @@ -32,6 +34,7 @@ icon_state = "rifle-steel" caliber = "a300" projectile_type = /obj/projectile/bullet/a300 + bullet_per_box = 20 // 5.56x39mm (M-90gl Carbine & P-16) @@ -41,6 +44,7 @@ icon_state = "rifle-brass" caliber = "5.56x45mm" projectile_type = /obj/projectile/bullet/a556_45 + bullet_per_box = 80 // 5.45x39mm (SKM-24v) @@ -51,6 +55,7 @@ caliber = "5.45x39mm" randomspread = TRUE projectile_type = /obj/projectile/bullet/a545_39 + bullet_per_box = 80 /obj/item/ammo_casing/a545_39/recycled name = "recycled 5.45x39mm bullet casing" @@ -67,6 +72,7 @@ icon_state = "rifle-brass" caliber = "7.62x40mm" projectile_type = /obj/projectile/bullet/a762_40 + bullet_per_box = 80 // .300 Blackout (Polymer Survivor Rifle) @@ -76,6 +82,7 @@ icon_state = "rifle-steel" caliber = ".300 BLK" projectile_type = /obj/projectile/bullet/aac_300blk + bullet_per_box = 20 /obj/item/ammo_casing/aac_300blk/recycled name = "recycled .300 BLK bullet casing" @@ -91,6 +98,7 @@ icon_state = "rifle-brass" caliber = ".308" projectile_type = /obj/projectile/bullet/a308 + bullet_per_box = 20 /obj/item/ammo_casing/caseless/c299 name = ".229 Eoehoma caseless bullet casing" @@ -98,3 +106,4 @@ icon_state = "caseless" caliber = ".299 caseless" projectile_type = /obj/projectile/bullet/c299 + bullet_per_box = 80 diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index b297ee30e776..8e5f2e128ac7 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -8,6 +8,7 @@ caliber = "12ga" custom_materials = list(/datum/material/iron=4000) projectile_type = /obj/projectile/bullet/slug + bullet_per_box = 25 bounce_sfx_override = 'sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg' diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index d947736d5f25..74bb35b1ec2e 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -6,6 +6,7 @@ icon_state = "rifle-brass" caliber = "4.6x30mm" projectile_type = /obj/projectile/bullet/c46x30mm + bullet_per_box = 50 /obj/item/ammo_casing/c46x30mm/ap name = "4.6x30mm armor-piercing bullet casing" @@ -18,6 +19,7 @@ desc = "A 4.6x30mm incendiary bullet casing." bullet_skin = "incen" projectile_type = /obj/projectile/bullet/incendiary/c46x30mm + bullet_per_box = 50 // 4.73x33mm caseless (Solar) @@ -27,6 +29,7 @@ icon_state = "caseless" caliber = "4.73x33mm caseless" projectile_type = /obj/projectile/bullet/c47x33mm + bullet_per_box = 50 // 5.56mm HITP caseless (Pistole C) diff --git a/code/modules/projectiles/ammunition/ballistic/sniper.dm b/code/modules/projectiles/ammunition/ballistic/sniper.dm index af7369204e6d..e4b668c2228f 100644 --- a/code/modules/projectiles/ammunition/ballistic/sniper.dm +++ b/code/modules/projectiles/ammunition/ballistic/sniper.dm @@ -6,6 +6,7 @@ icon_state = "big-steel" caliber = ".50 BMG" projectile_type = /obj/projectile/bullet/p50 + bullet_per_box = 20 /obj/item/ammo_casing/p50/soporific name = ".50 BMG soporific bullet casing" diff --git a/code/modules/projectiles/ammunition/caseless/_caseless.dm b/code/modules/projectiles/ammunition/caseless/_caseless.dm index 2fe0ecf808eb..0d364cc93f5a 100644 --- a/code/modules/projectiles/ammunition/caseless/_caseless.dm +++ b/code/modules/projectiles/ammunition/caseless/_caseless.dm @@ -3,7 +3,7 @@ firing_effect_type = null heavy_metal = FALSE -/obj/item/ammo_casing/caseless/on_eject() +/obj/item/ammo_casing/caseless/on_eject(atom/shooter) qdel(src) // Overridden; caseless ammo does not distinguish between "live" and "empty"/"spent" icon states (because it has no casing). diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm index 3c71d31eb5ed..0051680fd1e8 100644 --- a/code/modules/projectiles/ammunition/caseless/foam.dm +++ b/code/modules/projectiles/ammunition/caseless/foam.dm @@ -9,6 +9,7 @@ custom_materials = list(/datum/material/iron = 11.25) harmful = FALSE var/modified = FALSE + bullet_per_box = 40 /obj/item/ammo_casing/caseless/foam_dart/update_icon_state() . = ..() diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 87f47b99d36d..4c3c8b736c4d 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -51,7 +51,7 @@ if(!start_empty) for(var/i = 1, i <= max_ammo, i++) stored_ammo += new ammo_type(src) - update_appearance() + update_ammo_count() ///gets a round from the magazine, if keep is TRUE the round will stay in the gun /obj/item/ammo_box/proc/get_round(keep = FALSE) @@ -98,7 +98,7 @@ if(istype(attacking_obj, /obj/item/ammo_box)) var/obj/item/ammo_box/attacking_box = attacking_obj for(var/obj/item/ammo_casing/casing_to_insert in attacking_box.stored_ammo) - if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || do_after_mob(user, list(attacking_box), 1 SECONDS))) + if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || do_after(user, 1 SECONDS, list(attacking_box)))) break var/did_load = give_round(casing_to_insert, replace_spent) if(!did_load) @@ -107,8 +107,8 @@ if(!silent) playsound(get_turf(attacking_box), 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) //src is nullspaced, which means internal magazines won't properly play sound, thus we use attacking_box num_loaded++ - attacking_obj.update_appearance() - update_appearance() + attacking_box.update_ammo_count() + update_ammo_count() if(istype(attacking_obj, /obj/item/ammo_casing)) var/obj/item/ammo_casing/casing_to_insert = attacking_obj @@ -117,7 +117,7 @@ if(!silent) playsound(casing_to_insert, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) num_loaded++ - update_appearance() + update_ammo_count() if(num_loaded) diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index fa7b0a133bae..0b5a7f80a837 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -23,6 +23,28 @@ desc = "A 7-round speed loader for quickly reloading .357 revolvers. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones." ammo_type = /obj/item/ammo_casing/a357/hp +/obj/item/ammo_box/a357_box + name = "ammo box (.357)" + desc = "A box of standard .357 ammo." + icon_state = "357box" + ammo_type = /obj/item/ammo_casing/a357 + max_ammo = 50 + +/obj/item/ammo_box/a357_box/match + name = "ammo box (.357)" + desc = "A box of match .357 ammo." + icon_state = "357box-match" + ammo_type = /obj/item/ammo_casing/a357/match + max_ammo = 50 + +/obj/item/ammo_box/a357_box/hp + name = "ammo box (.357)" + desc = "A box of hollow point .357 ammo." + icon_state = "357box-hp" + ammo_type = /obj/item/ammo_casing/a357/hp + max_ammo = 50 + + // .45-70 Ammo Holders (Hunting Revolver) /obj/item/ammo_box/a4570 @@ -443,3 +465,10 @@ icon_state = "8x50mmbox-hp" ammo_type = /obj/item/ammo_casing/a8_50rhp max_ammo = 20 + +/obj/item/ammo_box/a300_box + name = "ammo box (.300 Magnum)" + desc = "A box of standard .300 Magnum ammo." + icon_state = "300box" + ammo_type = /obj/item/ammo_casing/a300 + max_ammo = 20 diff --git a/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm b/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm new file mode 100644 index 000000000000..2c88824623e2 --- /dev/null +++ b/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm @@ -0,0 +1,53 @@ +/obj/item/ammo_box/generic + name = "generic ammo box" + desc = "A generic, unbranded box of ammo. It doesn't have great capacity, but it can hold a variety of different calibers." + max_ammo = 20 + start_empty = TRUE + icon_state = "generic-ammo" + /// Does the box currently have an ammo type set? + var/ammo_set = FALSE + /// Name of the currently set ammo type + var/ammo_name + +/obj/item/ammo_box/generic/update_ammo_count() + . = ..() + if(LAZYLEN(stored_ammo) == 0) + ammo_set = FALSE + ammo_type = /obj/item/ammo_casing + +/obj/item/ammo_box/generic/proc/update_max_ammo(obj/item/ammo_casing/ammo) + if(ammo.bullet_per_box) + max_ammo = round(ammo.bullet_per_box) + else + max_ammo = 10 + + return + +/obj/item/ammo_box/generic/attackby(obj/item/attacking_obj, mob/user, params, silent, replace_spent) + . = ..() + + if(!ammo_set && istype(attacking_obj, /obj/item/ammo_casing)) + var/obj/item/ammo_casing/ammo_load = attacking_obj.type + ammo_type = ammo_load + ammo_set = TRUE + ammo_name = attacking_obj.name + update_max_ammo(attacking_obj) + to_chat(user, span_notice("You set the box to hold [attacking_obj]!")) + + if(istype(attacking_obj, /obj/item/pen)) + if(!user.is_literate()) + to_chat(user, span_notice("You scribble illegibly on the cover of [src]!")) + return + var/inputvalue = stripped_input(user, "What would you like to label the box?", "Box Labelling", "", MAX_NAME_LEN) + + if(!inputvalue) + return + + if(user.canUseTopic(src, BE_CLOSE)) + name = "[initial(src.name)][(inputvalue ? " - '[inputvalue]'" : null)]" + +/obj/item/ammo_box/generic/examine(mob/user) + . = ..() + . += span_notice("[ammo_set ? "It's set to hold [ammo_name]\s. The box can hold up to [max_ammo] rounds." : "It doesn't have an ammo type set. Use a bullet on the box to set it."]") + . += span_notice("You can use a pen on it to rename the box.") + diff --git a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm index 160e1bd5066d..f8ce8223748d 100644 --- a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm +++ b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm @@ -66,7 +66,7 @@ var/list/ammo_list_no_empty = ammo_list(FALSE) listclearnulls(ammo_list_no_empty) for(var/obj/item/ammo_casing/casing_to_insert in attacking_box.stored_ammo) - if(!((instant_load && attacking_box.instant_load) || (ammo_list_no_empty.len >= max_ammo) || do_after_mob(user, list(attacking_box), 1 SECONDS))) //stupid work around for revolvers + if(!((instant_load && attacking_box.instant_load) || (ammo_list_no_empty.len >= max_ammo) || do_after(user, 1 SECONDS, list(attacking_box)))) //stupid work around for revolvers break var/did_load = give_round(casing_to_insert, replace_spent) if(!did_load) diff --git a/code/modules/projectiles/boxes_magazines/internal/revolver.dm b/code/modules/projectiles/boxes_magazines/internal/revolver.dm index 43748f7afe7b..d757ddf03047 100644 --- a/code/modules/projectiles/boxes_magazines/internal/revolver.dm +++ b/code/modules/projectiles/boxes_magazines/internal/revolver.dm @@ -28,7 +28,10 @@ /obj/item/ammo_box/magazine/internal/cylinder/pepperbox name = "pepperbox revolver cylinder" + ammo_type = /obj/item/ammo_casing/a357 + caliber = ".357" max_ammo = 5 + instant_load = FALSE /obj/item/ammo_box/magazine/internal/cylinder/rev45 name = "cattleman revolver cylinder" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 5cd55858537a..892a914b88c5 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -141,7 +141,16 @@ user.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/gun, multiplicative_slowdown = wield_slowdown) wield_time = world.time + wield_delay if(wield_time > 0) - if(do_mob(user, user, wield_delay, FALSE, TRUE, CALLBACK(src, PROC_REF(is_wielded)), ignore_loc_change = TRUE)) + if(do_after( + user, + wield_delay, + user, + FALSE, + TRUE, + CALLBACK(src, PROC_REF(is_wielded)), + timed_action_flags = IGNORE_USER_LOC_CHANGE + ) + ) wielded_fully = TRUE else wielded_fully = TRUE @@ -209,7 +218,7 @@ zoom(user, user.dir, FALSE) //we can only stay zoomed in if it's in our hands //yeah and we only unzoom if we're actually zoomed using the gun!! //called after the gun has successfully fired its chambered ammo. -/obj/item/gun/proc/process_chamber() +/obj/item/gun/proc/process_chamber(atom/shooter) SEND_SIGNAL(src, COMSIG_GUN_CHAMBER_PROCESSED) return FALSE @@ -357,7 +366,7 @@ shoot_with_empty_chamber(user) firing_burst = FALSE return FALSE - process_chamber() + process_chamber(shooter = user) update_appearance() return TRUE @@ -408,7 +417,7 @@ else shoot_with_empty_chamber(user) return - process_chamber() + process_chamber(shooter = user) update_appearance() if(fire_delay) semicd = TRUE @@ -673,7 +682,7 @@ semicd = TRUE - if(!bypass_timer && (!do_mob(user, target, 100) || user.zone_selected != BODY_ZONE_PRECISE_MOUTH)) + if(!bypass_timer && (!do_after(user, 100, target) || user.zone_selected != BODY_ZONE_PRECISE_MOUTH)) if(user) if(user == target) user.visible_message(span_notice("[user] decided not to shoot.")) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 227abceffa01..37b8ceea801c 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -1,3 +1,8 @@ +#define EMPTY_GUN_HELPER(gun_type) \ + /obj/item/gun/ballistic/##gun_type/no_mag { \ + spawnwithmagazine = FALSE; \ + } + ///Subtype for any kind of ballistic gun ///This has a shitload of vars on it, and I'm sorry for that, but it does make making new subtypes really easy /obj/item/gun/ballistic @@ -144,13 +149,13 @@ if(!chambered && empty_indicator) . += "[icon_state]_empty" -/obj/item/gun/ballistic/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) +/obj/item/gun/ballistic/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter) if(!semi_auto && from_firing) return var/obj/item/ammo_casing/casing = chambered //Find chambered round if(istype(casing)) //there's a chambered round if(casing_ejector || !from_firing) - casing.on_eject() + casing.on_eject(shooter) chambered = null else if(empty_chamber) chambered = null @@ -179,7 +184,7 @@ bolt_locked = FALSE if (user) to_chat(user, "You rack the [bolt_wording] of \the [src].") - process_chamber(!chambered, FALSE) + process_chamber(!chambered, FALSE, shooter = user) if (bolt_type == BOLT_TYPE_LOCKING && !chambered) bolt_locked = TRUE playsound(src, lock_back_sound, lock_back_sound_volume, lock_back_sound_vary) @@ -267,7 +272,7 @@ if (istype(A, /obj/item/ammo_casing) || istype(A, /obj/item/ammo_box)) if (bolt_type == BOLT_TYPE_NO_BOLT || internal_magazine) if (chambered && !chambered.BB) - chambered.on_eject() + chambered.on_eject(shooter = user) chambered = null var/num_loaded = magazine.attackby(A, user, params) if (num_loaded) @@ -364,7 +369,10 @@ var/num_unloaded = 0 for(var/obj/item/ammo_casing/CB in get_ammo_list(FALSE, TRUE)) CB.forceMove(drop_location()) - CB.bounce_away(FALSE, NONE) + + var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180)) + CB.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(350, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = CB.bounce_sfx_override) + num_unloaded++ SSblackbox.record_feedback("tally", "station_mess_created", 1, CB.name) if (num_unloaded) @@ -422,7 +430,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( ///Handles all the logic of sawing off guns, /obj/item/gun/ballistic/proc/sawoff(mob/user, obj/item/saw) - if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && !saw.tool_behaviour == TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this. + if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && saw.tool_behaviour != TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this. return if(sawn_off) to_chat(user, "\The [src] is already shortened!") diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 094ea753af10..abc0bcbc9bcb 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -92,6 +92,8 @@ can_suppress = TRUE can_unsuppress = TRUE +EMPTY_GUN_HELPER(automatic/sniper_rifle/syndicate) + // Old Semi-Auto Rifle // /obj/item/gun/ballistic/automatic/surplus @@ -146,6 +148,8 @@ wield_slowdown = 2 spread = -4 +EMPTY_GUN_HELPER(automatic/ebr) + /obj/item/gun/ballistic/automatic/gal name = "\improper CM-GAL-S" desc = "The standard issue DMR of CLIP. Dates back to the Xenofauna War, this particular model is in a carbine configuration, and, as such, is shorter than the standard model. Chambered in .308." diff --git a/code/modules/projectiles/guns/ballistic/hmg.dm b/code/modules/projectiles/guns/ballistic/hmg.dm index 3bd143e98b43..359a9e13e31e 100644 --- a/code/modules/projectiles/guns/ballistic/hmg.dm +++ b/code/modules/projectiles/guns/ballistic/hmg.dm @@ -85,7 +85,7 @@ if(!can_deploy) to_chat(user, "You need to brace against something to deploy [src]'s bipod! Either lie on the floor or stand next to a waist high object like a table!") return - if(!do_mob(user, src, deploy_time, FALSE, TRUE, CALLBACK(src, PROC_REF(is_wielded)))) + if(!do_after(user, deploy_time, src, FALSE, TRUE, CALLBACK(src, PROC_REF(is_wielded)))) to_chat(user, "You need to hold still to deploy [src]'s bipod!") return playsound(src, 'sound/machines/click.ogg', 75, TRUE) diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 1cb86fec256d..11aad5203361 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -34,8 +34,7 @@ muzzleflash_iconstate = "muzzle_flash_light" -/obj/item/gun/ballistic/automatic/pistol/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(automatic/pistol) /obj/item/gun/ballistic/automatic/pistol/suppressed/Initialize(mapload) . = ..() @@ -65,19 +64,23 @@ eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg' recoil = -2 -/obj/item/gun/ballistic/automatic/pistol/candor/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(automatic/pistol/candor) /obj/item/gun/ballistic/automatic/pistol/candor/factory //also give this to the srm, their candors should probably look factory fresh from how well taken care of they are desc = "A classic semi-automatic handgun, widely popular throughout the Frontier. An engraving on the slide marks it as a product of Hunter's Pride. This example has been kept in especially good shape, and may as well be fresh out of the workshop. Chambered in .45." item_state = "hp_generic_fresh" +EMPTY_GUN_HELPER(automatic/pistol/candor/factory) + /obj/item/gun/ballistic/automatic/pistol/candor/factory/update_overlays() . = ..() . += "[initial(icon_state)]_factory" -/obj/item/gun/ballistic/automatic/pistol/candor/factory/no_mag - spawnwithmagazine = FALSE +/obj/item/gun/ballistic/automatic/pistol/candor/phenex + name = "\improper HP Phenex" + desc = "A uniquely modified version of the Candor, famously created by Hunter's Pride. Named after the daemonic Phoenix of legend that the Ashen Huntsman had once slain, this hell-kissed weapon is more visually intimidating than its original counterpart, but mechanically acts the same. Chambered in .45." + icon_state = "phenex" + item_state = "hp_phenex" /obj/item/gun/ballistic/automatic/pistol/deagle name = "\improper Desert Eagle" @@ -154,8 +157,7 @@ eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' -/obj/item/gun/ballistic/automatic/pistol/commander/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(automatic/pistol/commander) /obj/item/gun/ballistic/automatic/pistol/commander/inteq name = "\improper Commissioner" @@ -164,8 +166,7 @@ item_state = "commander-inteq" manufacturer = MANUFACTURER_INTEQ -/obj/item/gun/ballistic/automatic/pistol/commander/inteq/no_mag - spawnwithmagazine = FALSE +EMPTY_GUN_HELPER(automatic/pistol/commander/inteq) /obj/item/gun/ballistic/automatic/pistol/commissar name = "\improper Commissar" diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index f201dfbca548..27c3d124906a 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -57,7 +57,7 @@ . += "[base_icon_state || initial(icon_state)][safety ? "_hammer_up" : "_hammer_down"]" -/obj/item/gun/ballistic/revolver/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) +/obj/item/gun/ballistic/revolver/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter) SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD) return ..() @@ -84,7 +84,9 @@ if(!casing_to_eject) continue casing_to_eject.forceMove(drop_location()) - casing_to_eject.bounce_away(FALSE, NONE) + var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180)) + casing_to_eject.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(450, 550) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = casing_to_eject.bounce_sfx_override) + num_unloaded++ SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_to_eject.name) chamber_round(FALSE) @@ -96,13 +98,13 @@ for(var/i in 1 to num_to_unload) var/doafter_time = 0.4 SECONDS - if(!do_mob(user,user,doafter_time)) + if(!do_after(user, doafter_time, user)) break - if(!eject_casing()) + if(!eject_casing(user)) doafter_time = 0 SECONDS else num_unloaded++ - if(!do_mob(user,user,doafter_time)) + if(!do_after(user, doafter_time, user)) break chamber_round(TRUE, TRUE) @@ -121,7 +123,9 @@ return FALSE playsound(src, eject_sound, eject_sound_volume, eject_sound_vary) casing_to_eject.forceMove(drop_location()) - casing_to_eject.bounce_away(FALSE, NONE) + var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180)) + casing_to_eject.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(350, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = casing_to_eject.bounce_sfx_override) + SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_to_eject.name) if(!gate_loaded) magazine.stored_ammo[casing_index] = null @@ -139,6 +143,12 @@ /obj/item/gun/ballistic/revolver/proc/insert_casing(mob/living/user, obj/item/ammo_casing/casing_to_insert, allow_ejection) if(!casing_to_insert) return FALSE + +// Check if the bullet's caliber matches the magazine's caliber.If not, send a warning message to the user and return FALSE. + if(casing_to_insert.caliber != magazine.caliber) + to_chat(user, "\The [casing_to_insert] is not suitable for [src].") + return FALSE + var/list/rounds = magazine.ammo_list() var/obj/item/ammo_casing/slot = rounds[gate_offset+1] //byond arrays start at 1, so we add 1 to get the correct index var/doafter_time = 0.4 SECONDS @@ -160,7 +170,7 @@ else if(slot) if(!slot.BB && allow_ejection) - if(do_mob(user,user,doafter_time)) + if(!do_after(user, doafter_time, user)) eject_casing(user) rounds = magazine.ammo_list() @@ -204,7 +214,7 @@ var/doafter_time = 0.8 SECONDS if(magazine.instant_load && attacking_box.instant_load) doafter_time = 0 SECONDS - if(!do_mob(user,user,doafter_time)) + if(!do_after(user, doafter_time, user)) break if(!insert_casing(user, casing_to_insert, FALSE)) break @@ -221,7 +231,7 @@ if(!casing_to_insert || (magazine.caliber && casing_to_insert.caliber != magazine.caliber) || (!magazine.caliber && casing_to_insert.type != magazine.ammo_type)) break var/doafter_time = 0.4 SECONDS - if(!do_mob(user,user,doafter_time)) + if(!do_after(user, doafter_time, user)) break if(!insert_casing(null, casing_to_insert, FALSE)) doafter_time = 0 SECONDS @@ -229,7 +239,7 @@ num_loaded++ attacking_box.update_appearance() attacking_box.stored_ammo -= casing_to_insert - if(!do_mob(user,user,doafter_time)) + if(!do_after(user, doafter_time, user)) break switch(gate_load_direction) if(REVOLVER_AUTO_ROTATE_RIGHT_LOADING) @@ -270,7 +280,6 @@ playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) chamber_round(TRUE) - //playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD) update_appearance() @@ -456,6 +465,7 @@ user.visible_message("[user] spins the [src] around their finger by the trigger. That’s pretty badass.") playsound(src, 'sound/items/handling/ammobox_pickup.ogg', 20, FALSE) return + /obj/item/gun/ballistic/revolver/detective name = "\improper HP Detective Special" desc = "A small law enforcement firearm. Originally commissioned by Nanotrasen for their Private Investigation division, it has become extremely popular among independent civilians as a cheap, compact sidearm. Uses .38 Special rounds." @@ -472,10 +482,13 @@ "The Peacemaker" = "detective_peacemaker", "Black Panther" = "detective_panther" ) + w_class = WEIGHT_CLASS_SMALL manufacturer = MANUFACTURER_HUNTERSPRIDE recoil = 0 //weaker than normal revolver, no recoil +EMPTY_GUN_HELPER(revolver/detective) + /obj/item/gun/ballistic/revolver/detective/ComponentInitialize() . = ..() AddComponent(/datum/component/ammo_hud/revolver) //note that the hud at the moment only supports 6 round revolvers, 7 or 5 isn't supported rn @@ -679,6 +692,7 @@ manufacturer = MANUFACTURER_HUNTERSPRIDE spread_unwielded = 50 fire_delay = 0 + gate_offset = 4 semi_auto = TRUE safety_wording = "safety" @@ -713,4 +727,4 @@ // if you go through the pain of not only using this shitty gun, but also with the fucking gunslinger quirk, you deserve this bonus. not a BIG bonus, but enough as an incentive to make people actually take the quirk. if(chambered.BB && (HAS_TRAIT(user, TRAIT_GUNSLINGER))) chambered.BB.damage += 5 - chambered.armour_penetration += 5 + chambered.BB.armour_penetration += 5 diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 9c45ac569da8..24cf3323048a 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -33,11 +33,11 @@ . = ..() . += "[icon_state]_bolt[bolt_locked ? "_locked" : ""]" -/obj/item/gun/ballistic/rifle/rack(mob/user = null) +/obj/item/gun/ballistic/rifle/rack(mob/living/user) if (bolt_locked == FALSE) to_chat(user, "You open the bolt of \the [src].") playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) - process_chamber(FALSE, FALSE, FALSE) + process_chamber(FALSE, FALSE, FALSE, shooter = user) bolt_locked = TRUE update_appearance() if (magazine && !magazine?.ammo_count() && empty_autoeject && !internal_magazine) @@ -113,6 +113,14 @@ item_state = "illestren_factory_sawn" mob_overlay_state = item_state +/obj/item/gun/ballistic/rifle/illestren/sawn + name = "sawn-off Illestren rifle" + desc = "An Illestren rifle sawn down to a ridiculously small size. There was probably a reason it wasn't made this short to begin with, but it still packs a punch." + item_state = "illestren_sawn" + sawn_off = TRUE + weapon_weight = WEAPON_MEDIUM + + /obj/item/gun/ballistic/rifle/solgov name = "SSG-669C" desc = "A bolt-action sniper rifle used by Solarian troops. Beloved for its rotary design and accuracy. Chambered in 8x58mm Caseless." diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 0b7e526c8a2b..4b3d8c7687f0 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -64,6 +64,7 @@ mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal manufacturer = MANUFACTURER_HUNTERSPRIDE fire_delay = 1 + rack_delay = 2 can_be_sawn_off = TRUE @@ -231,6 +232,8 @@ wield_slowdown = 0.6 wield_delay = 0.65 SECONDS +EMPTY_GUN_HELPER(shotgun/bulldog) + /obj/item/gun/ballistic/shotgun/bulldog/inteq name = "\improper Mastiff Shotgun" desc = "A variation of the Bulldog, seized from Syndicate armories by deserting troopers then modified to IRMG's standards." @@ -239,6 +242,8 @@ mag_type = /obj/item/ammo_box/magazine/m12g manufacturer = MANUFACTURER_INTEQ +EMPTY_GUN_HELPER(shotgun/bulldog/inteq) + /obj/item/gun/ballistic/shotgun/bulldog/suns name = "\improper Bulldog-C Shotgun" desc = "A variation of the Bulldog manufactured by Scarborough Arms for SUNS. Its shorter barrel is intended to provide additional maneuverability in personal defense scenarios." @@ -303,7 +308,9 @@ var/num_unloaded = 0 for(var/obj/item/ammo_casing/casing_bullet in get_ammo_list(FALSE, TRUE)) casing_bullet.forceMove(drop_location()) - casing_bullet.bounce_away(FALSE, NONE) + var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180)) + casing_bullet.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(450, 550) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = casing_bullet.bounce_sfx_override) + num_unloaded++ SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_bullet.name) if (num_unloaded) diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index 23ec4247a5da..a6739a79776e 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -60,6 +60,8 @@ empty_indicator = TRUE manufacturer = MANUFACTURER_SCARBOROUGH +EMPTY_GUN_HELPER(automatic/smg/c20r) + /obj/item/gun/ballistic/automatic/smg/c20r/ComponentInitialize() . = ..() AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) @@ -251,13 +253,12 @@ fire_sound = 'sound/weapons/gun/smg/smg_heavy.ogg' manufacturer = MANUFACTURER_MINUTEMAN +EMPTY_GUN_HELPER(automatic/smg/cm5) + /obj/item/gun/ballistic/automatic/smg/cm5/ComponentInitialize() . = ..() AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) -/obj/item/gun/ballistic/automatic/smg/cm5/no_mag - spawnwithmagazine = FALSE - /obj/item/gun/ballistic/automatic/smg/cm5/compact name = "\improper CM-5c" desc = "The compact conversion of the CM-5. While not exactly restricted, it is looked down upon due to CLIP's doctrine on medium-longrange combat, however it excels at close range and is very lightweight. You feel like this gun is mildly unfinished. Chambered in 9mm." diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 95911c9269bc..5f62b8c7ca78 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -59,8 +59,8 @@ . = ..() . += "[icon_state]_toy" -/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0) - ..() +/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter) + . = ..() if(chambered && !chambered.BB) qdel(chambered) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index a6e424901d5e..705789b3484a 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -204,7 +204,7 @@ if(!chambered.BB) chambered.newshot() -/obj/item/gun/energy/process_chamber() +/obj/item/gun/energy/process_chamber(atom/shooter) if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... var/obj/item/ammo_casing/energy/shot = chambered cell.use(shot.e_cost)//... drain the cell cell diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 5f39d407d749..ac3aa9e3d21a 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -1,6 +1,6 @@ /obj/item/gun/energy/kinetic_accelerator name = "kinetic accelerator" - desc = "A self recharging, ranged self-defense and rock pulverizing tool that does increased damage in low pressure. EXOCON does not condone use of this weapon against other sentient life." + desc = "A self recharging, ranged self-defense and rock pulverizing tool that does increased damage in low pressure. EXOCOM does not condone use of this weapon against other sentient life." icon_state = "kineticgun" item_state = "kineticgun" ammo_type = list(/obj/item/ammo_casing/energy/kinetic) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 27b7b65b622d..d84655fb5813 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -221,7 +221,7 @@ if(istype(WH)) WH.gun = WEAKREF(src) -/obj/item/gun/energy/wormhole_projector/process_chamber() +/obj/item/gun/energy/wormhole_projector/process_chamber(atom/shooter) ..() select_fire() diff --git a/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm b/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm index 8684fa867288..aea05fb8fe51 100644 --- a/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm +++ b/code/modules/projectiles/guns/faction/gezena/energy_gunsword.dm @@ -7,7 +7,7 @@ lefthand_file = 'icons/obj/guns/faction/gezena/lefthand.dmi' righthand_file = 'icons/obj/guns/faction/gezena/righthand.dmi' mob_overlay_icon = 'icons/mob/clothing/faction/gezena/belt.dmi' - w_class = WEIGHT_CLASS_NORMAL + w_class = WEIGHT_CLASS_BULKY modifystate = TRUE @@ -45,6 +45,7 @@ desc = "An advanced variant of the BG-12, the BG-16 is the military-grade beam gun designed and manufactured by Etherbor Industries as the standard-issue close-range weapon of the PGF." icon_state = "pgfgun" item_state = "pgfgun" + w_class = WEIGHT_CLASS_NORMAL cell_type = /obj/item/stock_parts/cell/gun/pgf ammo_type = list(/obj/item/ammo_casing/energy/pgf , /obj/item/ammo_casing/energy/disabler/hitscan) @@ -72,8 +73,7 @@ desc = "Etherbor's current and sidearm offering. While intended for marines, it's also available for civillians" icon_state = "kalixpistol" item_state = "kalixpistol" - w_class = WEIGHT_CLASS_SMALL - + w_class = WEIGHT_CLASS_NORMAL modifystate = FALSE wield_delay = 0.2 SECONDS diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 9360c24be499..1f8be937b645 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -41,7 +41,7 @@ if (charges && chambered && !chambered.BB) chambered.newshot() -/obj/item/gun/magic/process_chamber() +/obj/item/gun/magic/process_chamber(atom/shooter) if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... charges--//... drain a charge recharge_newshot() diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index fef47121af5f..7c99b7156000 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -29,7 +29,7 @@ /obj/item/gun/chem/can_shoot() return syringes_left -/obj/item/gun/chem/process_chamber() +/obj/item/gun/chem/process_chamber(atom/shooter) if(chambered && !chambered.BB && syringes_left) chambered.newshot() diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index 96927eb91afc..84d00b226371 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -29,7 +29,7 @@ /obj/item/gun/syringe/can_shoot() return syringes.len -/obj/item/gun/syringe/process_chamber() +/obj/item/gun/syringe/process_chamber(atom/shooter) if(chambered && !chambered.BB) //we just fired recharge_newshot() diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 06698ca53982..829393d4d115 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -306,7 +306,7 @@ if(firer && HAS_TRAIT(firer, TRAIT_NICE_SHOT)) best_angle += NICE_SHOT_RICOCHET_BONUS for(var/mob/living/L in range(ricochet_auto_aim_range, src.loc)) - if(L.stat == DEAD || !isInSight(src, L)) + if(L.stat == DEAD || !isInSight(src, L) || L == firer) continue var/our_angle = abs(closer_angle_difference(Angle, Get_Angle(src.loc, L.loc))) if(our_angle < best_angle) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 458c19d053da..6ca85ca933ec 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -237,8 +237,6 @@ /mob/living/simple_animal/hostile/asteroid/goliath/beast, /mob/living/simple_animal/hostile/headcrab, /mob/living/simple_animal/hostile/morph, - /mob/living/simple_animal/hostile/stickman, - /mob/living/simple_animal/hostile/stickman/dog, /mob/living/simple_animal/hostile/megafauna/dragon/lesser, /mob/living/simple_animal/hostile/gorilla, /mob/living/simple_animal/parrot, diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index f62a3a32035d..86f4e05226e4 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -389,7 +389,7 @@ for(var/addiction in cached_addictions) var/datum/reagent/A = addiction if(istype(R, A)) - A.addiction_stage = -15 // you're satisfied for a good while. + A.addiction_stage = -30 // you're satisfied for a good while. need_mob_update += R.on_mob_life(C) if(can_overdose) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 0985ce758976..037256db302f 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -1,12 +1,12 @@ /proc/translate_legacy_chem_id(id) - switch (id) - if ("sacid") + switch(id) + if("sacid") return "sulphuricacid" - if ("facid") + if("facid") return "fluorosulfuricacid" - if ("co2") + if("co2") return "carbondioxide" - if ("mine_salve") + if("mine_salve") return "minerssalve" else return ckey(id) @@ -15,11 +15,11 @@ name = "chem dispenser" desc = "Creates and dispenses chemicals." density = TRUE - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "dispenser" base_icon_state = "dispenser" use_power = IDLE_POWER_USE - idle_power_usage = 40 + idle_power_usage = IDLE_DRAW_MINIMAL interaction_flags_machine = INTERACT_MACHINE_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OFFLINE resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_dispenser @@ -451,7 +451,7 @@ /obj/machinery/chem_dispenser/drinks name = "soda dispenser" desc = "Contains a large reservoir of soft drinks." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "soda_dispenser" base_icon_state = "soda_dispenser" has_panel_overlay = FALSE @@ -509,7 +509,7 @@ name = "booze dispenser" desc = "Contains a large reservoir of the good stuff." base_icon_state = "booze_dispenser" - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "booze_dispenser" circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer dispensable_reagents = list( diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index b3a0cfee615d..88e7973dd29c 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -1,11 +1,11 @@ /obj/machinery/chem_heater name = "chemical heater" density = TRUE - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "mixer0b" base_icon_state = "mixer" use_power = IDLE_POWER_USE - idle_power_usage = 40 + idle_power_usage = IDLE_DRAW_MINIMAL resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_heater diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 602c37710a57..c9791666b54f 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -3,11 +3,11 @@ desc = "Used to separate chemicals and distribute them in a variety of forms." density = TRUE layer = BELOW_OBJ_LAYER - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "mixer0" base_icon_state = "mixer" use_power = IDLE_POWER_USE - idle_power_usage = 20 + idle_power_usage = IDLE_DRAW_MINIMAL resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_master diff --git a/code/modules/reagents/chemistry/machinery/chem_press.dm b/code/modules/reagents/chemistry/machinery/chem_press.dm index 80500efc78bf..43cd01e63b65 100644 --- a/code/modules/reagents/chemistry/machinery/chem_press.dm +++ b/code/modules/reagents/chemistry/machinery/chem_press.dm @@ -1,7 +1,7 @@ /obj/machinery/chem_press name = "pill press" desc = "A press operated by hand to produce pills in a variety of forms." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "press" pass_flags = PASSTABLE use_power = FALSE @@ -26,17 +26,17 @@ /obj/machinery/chem_press/Initialize() . = ..() beaker = new /obj/item/reagent_containers/glass/beaker/large(src) - beaker_overlay = image(icon = 'icons/obj/chemical.dmi', icon_state = "press_beaker") - bottle_overlay = image(icon = 'icons/obj/chemical.dmi', icon_state = "press_bottle") + beaker_overlay = image(icon = 'icons/obj/chemical/chem_machines.dmi', icon_state = "press_beaker") + bottle_overlay = image(icon = 'icons/obj/chemical/chem_machines.dmi', icon_state = "press_bottle") //shouldn't this use mutable_appearance...? /obj/machinery/chem_press/examine(mob/user) . = ..() - . += "There's a small screw that can help to adjust the pill size." - . += "There's a small dial you could push with a screwdriver to adjust the pill color." + . += span_notice("There's a small screw that can help to adjust the pill size.") + . += span_notice("There's a small dial you could push with a screwdriver to adjust the pill color.") if(!bottle) - . += "The pill bottle slot is empty." + . += span_notice("The pill bottle slot is empty.") if(!beaker) - . += "The beaker slot is empty." + . += span_notice("The beaker slot is empty.") /obj/machinery/chem_press/attack_hand(mob/user) . = ..() diff --git a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm index 2c6f5ed38186..7b5656521209 100644 --- a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm +++ b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm @@ -1,7 +1,7 @@ /obj/machinery/chem_dispenser/chem_synthesizer //formerly SCP-294 made by mrty, but now only for testing purposes name = "\improper debug chemical synthesizer" desc = "If you see this, yell at adminbus." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "dispenser" base_icon_state = "dispenser" amount = 10 diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 1fefd1d55031..6c85e75ccd86 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -5,11 +5,11 @@ name = "PanD.E.M.I.C 2200" desc = "Used to work with viruses." density = TRUE - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "pandemic0" base_icon_state = "pandemic" - use_power = TRUE - idle_power_usage = 20 + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL resistance_flags = ACID_PROOF circuit = /obj/item/circuitboard/computer/pandemic unique_icon = TRUE diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 5e5bd21747dc..5beaca629934 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -8,8 +8,8 @@ base_icon_state = "juicer" layer = BELOW_OBJ_LAYER use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/reagentgrinder pass_flags = PASSTABLE resistance_flags = ACID_PROOF @@ -261,10 +261,11 @@ operating = FALSE /obj/machinery/reagentgrinder/proc/juice() - power_change() if(!beaker || machine_stat & (NOPOWER|BROKEN) || beaker.reagents.total_volume >= beaker.reagents.maximum_volume) return + set_active_power() operate_for(50, juicing = TRUE) + set_idle_power() for(var/obj/item/i in holdingitems) if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume) break @@ -281,10 +282,11 @@ remove_object(I) /obj/machinery/reagentgrinder/proc/grind(mob/user) - power_change() if(!beaker || machine_stat & (NOPOWER|BROKEN) || beaker.reagents.total_volume >= beaker.reagents.maximum_volume) return + set_active_power() operate_for(60) + set_idle_power() for(var/i in holdingitems) if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume) break @@ -310,10 +312,11 @@ /obj/machinery/reagentgrinder/proc/mix(mob/user) //For butter and other things that would change upon shaking or mixing - power_change() if(!beaker || machine_stat & (NOPOWER|BROKEN)) return + set_active_power() operate_for(50, juicing = TRUE) + set_idle_power() addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/reagentgrinder, mix_complete)), 50) /obj/machinery/reagentgrinder/proc/mix_complete() diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm index 7c67609593d5..e93e6f3117ca 100644 --- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm +++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm @@ -3,7 +3,7 @@ /obj/machinery/smoke_machine name = "smoke machine" desc = "A machine with a centrifuge installed into it. It produces smoke with any reagents you put into the machine." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/chem_machines.dmi' icon_state = "smoke0" base_icon_state = "smoke" density = TRUE diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index a35a8c91542a..66465dfafb17 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -77,6 +77,9 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) ///How good of an accelerant is this reagent var/accelerant_quality = 0 + ///The section of the autowiki chem table this reagent will be under + var/category = "Misc" + /datum/reagent/New() . = ..() diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index ad21aa93e745..b776a285b346 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -2,6 +2,7 @@ name = "Drug" metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" + category = "Drug" var/trippy = TRUE //Does this drug make you trip? /datum/reagent/drug/on_mob_end_metabolize(mob/living/M) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index e17af4bd9c86..09812ef20cf3 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -11,6 +11,7 @@ name = "Consumable" taste_description = "generic food" taste_mult = 4 + category = "Food and Drink" var/nutriment_factor = 1 * REAGENTS_METABOLISM var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes @@ -326,12 +327,6 @@ color = "#FFFFFF" // rgb: 255,255,255 taste_description = "salt" -/datum/reagent/consumable/sodiumchloride/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(!istype(M)) - return - if(M.has_bane(BANE_SALT)) - M.mind.disrupt_spells(-200) - /datum/reagent/consumable/sodiumchloride/expose_turf(turf/T, reac_volume) //Creates an umbra-blocking salt pile if(!istype(T)) return diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 24be546cb3f6..7fb71324d7af 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -9,6 +9,7 @@ /datum/reagent/medicine name = "Medicine" taste_description = "bitterness" + category = "Medicine" /datum/reagent/medicine/on_mob_life(mob/living/carbon/M) current_cycle++ diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index d727cbfd0fa6..02d8850f8776 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -795,12 +795,6 @@ C.blood_volume += 0.5 ..() -/datum/reagent/iron/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(M.has_bane(BANE_IRON)) //If the target is weak to cold iron, then poison them. - if(holder && holder.chem_temp < 100) // COLD iron. - M.reagents.add_reagent(/datum/reagent/toxin, reac_volume) - ..() - /datum/reagent/gold name = "Gold" description = "Gold is a dense, soft, shiny metal and the most malleable and ductile metal known." @@ -817,11 +811,6 @@ taste_description = "expensive yet reasonable metal" material = /datum/material/silver -/datum/reagent/silver/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(M.has_bane(BANE_SILVER)) - M.reagents.add_reagent(/datum/reagent/toxin, reac_volume) - ..() - /datum/reagent/uranium name ="Uranium" description = "A jade-green metallic chemical element in the actinide series, weakly radioactive." diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index 62c743558e13..313fb7475e00 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -2,6 +2,7 @@ /datum/reagent/thermite name = "Thermite" description = "Thermite produces an aluminothermic reaction known as a thermite reaction. Can be used to melt walls." + category = "Pyrotechnics" reagent_state = SOLID color = "#550000" taste_description = "sweet tasting metal" @@ -19,6 +20,7 @@ /datum/reagent/nitroglycerin name = "Nitroglycerin" description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol." + category = "Pyrotechnics" color = "#808080" // rgb: 128, 128, 128 taste_description = "oil" @@ -37,6 +39,7 @@ /datum/reagent/clf3 name = "Chlorine Trifluoride" description = "Makes a temporary 3x3 fireball when it comes into existence, so be careful when mixing. ClF3 applied to a surface burns things that wouldn't otherwise burn, including typically-robust flooring, potentially exposing it to the vacuum of space." + category = "Pyrotechnics" reagent_state = LIQUID color = "#FFC8C8" metabolization_rate = 4 @@ -82,6 +85,7 @@ /datum/reagent/sorium name = "Sorium" description = "Sends everything flying from the detonation point." + category = "Pyrotechnics" reagent_state = LIQUID color = "#5A64C8" taste_description = "air and bitterness" @@ -89,6 +93,7 @@ /datum/reagent/liquid_dark_matter name = "Liquid Dark Matter" description = "Sucks everything into the detonation point." + category = "Pyrotechnics" reagent_state = LIQUID color = "#210021" taste_description = "compressed bitterness" @@ -96,6 +101,7 @@ /datum/reagent/gunpowder name = "Gunpowder" description = "Explodes. Violently." + category = "Pyrotechnics" reagent_state = LIQUID color = "#000000" metabolization_rate = 0.05 @@ -120,6 +126,7 @@ /datum/reagent/rdx name = "RDX" description = "Military grade explosive" + category = "Pyrotechnics" reagent_state = SOLID color = "#FFFFFF" taste_description = "salt" @@ -127,6 +134,7 @@ /datum/reagent/tatp name = "TaTP" description = "Suicide grade explosive" + category = "Pyrotechnics" reagent_state = SOLID color = "#FFFFFF" taste_description = "death" @@ -134,6 +142,7 @@ /datum/reagent/flash_powder name = "Flash Powder" description = "Makes a very bright flash." + category = "Pyrotechnics" reagent_state = LIQUID color = "#C8C8C8" taste_description = "salt" @@ -141,6 +150,7 @@ /datum/reagent/smoke_powder name = "Smoke Powder" description = "Makes a large cloud of smoke that can carry reagents." + category = "Pyrotechnics" reagent_state = LIQUID color = "#C8C8C8" taste_description = "smoke" @@ -148,6 +158,7 @@ /datum/reagent/sonic_powder name = "Sonic Powder" description = "Makes a deafening noise." + category = "Pyrotechnics" reagent_state = LIQUID color = "#C8C8C8" taste_description = "loud noises" @@ -155,6 +166,7 @@ /datum/reagent/phlogiston name = "Phlogiston" description = "Catches you on fire and makes you ignite." + category = "Pyrotechnics" reagent_state = LIQUID color = "#FA00AF" taste_description = "burning" @@ -179,6 +191,7 @@ /datum/reagent/napalm name = "Napalm" description = "Very flammable." + category = "Pyrotechnics" reagent_state = LIQUID color = "#FA00AF" taste_description = "burning" @@ -206,6 +219,7 @@ /datum/reagent/cryostylane name = "Cryostylane" description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Cryostylane slowly cools all other reagents in the container 0K." + category = "Pyrotechnics" color = "#0000DC" metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" @@ -227,6 +241,7 @@ /datum/reagent/pyrosium name = "Pyrosium" description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Pyrosium slowly heats all other reagents in the container." + category = "Pyrotechnics" color = "#64FAC8" metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" @@ -242,6 +257,7 @@ /datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective. name = "Teslium" description = "An unstable, electrically-charged metallic slurry. Periodically electrocutes its victim, and makes electrocutions against them more deadly. Excessively heating teslium results in dangerous destabilization. Do not allow to come into contact with water." + category = "Pyrotechnics" reagent_state = LIQUID color = "#20324D" //RGB: 32, 50, 77 metabolization_rate = 0.5 * REAGENTS_METABOLISM @@ -273,6 +289,7 @@ /datum/reagent/teslium/energized_jelly name = "Energized Jelly" description = "Electrically-charged jelly. Boosts jellypeople's nervous system, but only shocks other lifeforms." + category = "Pyrotechnics" reagent_state = LIQUID color = "#CAFF43" taste_description = "jelly" @@ -291,6 +308,7 @@ /datum/reagent/firefighting_foam name = "Firefighting Foam" description = "A historical fire suppressant. Originally believed to simply displace oxygen to starve fires, it actually interferes with the combustion reaction itself. Vastly superior to the cheap water-based extinguishers found on NT vessels." + category = "Pyrotechnics" reagent_state = LIQUID color = "#A6FAFF55" taste_description = "the inside of a fire extinguisher" diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index d95bd68759c7..e03c84dd7840 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -7,6 +7,7 @@ color = "#CF3600" // rgb: 207, 54, 0 taste_description = "bitterness" taste_mult = 1.2 + category = "Toxin" var/toxpwr = 1.5 var/silent_toxin = FALSE //won't produce a pain message when processed by liver/life() if there isn't another non-silent toxin present. @@ -254,11 +255,13 @@ name = "Mindbreaker Toxin" description = "A powerful hallucinogen. Not a thing to be messed with. For some mental patients. it counteracts their symptoms and anchors them to reality." color = "#B31008" // rgb: 139, 166, 233 + metabolization_rate = 0.1 * REAGENTS_METABOLISM toxpwr = 0 taste_description = "sourness" /datum/reagent/toxin/mindbreaker/on_mob_life(mob/living/carbon/M) - M.hallucination += 5 + if(!M.has_quirk(/datum/quirk/insanity)) + M.hallucination += 5 return ..() /datum/reagent/toxin/plantbgone diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index df76f85b1f64..88f1871e6a28 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -180,15 +180,13 @@ /datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_metabolize(mob/living/carbon/human/M) ..() ADD_TRAIT(M, TRAIT_REFLECTIVE, "trickwine") - if(M.physiology.burn_mod <= initial(M.physiology.burn_mod)) - M.physiology.burn_mod *= 0.5 + M.physiology.burn_mod *= 0.5 M.add_filter("prism-wine", 2, list("type"="outline", "color"="#8FD7DF", "size"=1)) M.visible_message("[M] seems to shimmer with power!") /datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_end_metabolize(mob/living/carbon/human/M) REMOVE_TRAIT(M, TRAIT_REFLECTIVE, "trickwine") - if(M.physiology.burn_mod > initial(M.physiology.burn_mod)) - M.physiology.burn_mod *= 2 + M.physiology.burn_mod *= 2 M.remove_filter("prism-wine") M.visible_message("[M] has returned to normal!") ..() diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index b2e275bc0631..302d05f0712b 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -315,12 +315,12 @@ WS End */ required_reagents = list(/datum/reagent/medicine/lavaland_extract = 1, /datum/reagent/medicine/bonefixingjuice = 1, /datum/reagent/titanium = 5) /datum/chemical_reaction/pure_soulus_dust_hollow - results = list(/datum/reagent/medicine/soulus/pure = 10,) - required_reagents = list(/datum/reagent/medicine/soulus = 20, /datum/reagent/medicine/system_cleaner = 1, /datum/reagent/water/hollowwater = 10) + results = list(/datum/reagent/medicine/soulus/pure = 20,) + required_reagents = list(/datum/reagent/medicine/soulus = 20, /datum/reagent/water/hollowwater = 10) /datum/chemical_reaction/pure_soulus_dust_holy - results = list(/datum/reagent/medicine/soulus/pure = 10,) - required_reagents = list(/datum/reagent/medicine/soulus = 20, /datum/reagent/medicine/system_cleaner = 1, /datum/reagent/water/holywater = 10) + results = list(/datum/reagent/medicine/soulus/pure = 20,) + required_reagents = list(/datum/reagent/medicine/soulus = 20, /datum/reagent/water/holywater = 10) /datum/chemical_reaction/chartreuse results = list(/datum/reagent/medicine/chartreuse = 10) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 10cd8ffc72eb..e7494191d1df 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -56,7 +56,7 @@ /datum/chemical_reaction/adamantinesolidification/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) for(var/i = 1, i <= created_volume, i++) - new /obj/item/stack/sheet/mineral/adamantine(location) + new /obj/item/stack/sheet/mineral/hidden/hellstone(location) /datum/chemical_reaction/silversolidification required_reagents = list(/datum/reagent/silver = 20, /datum/reagent/consumable/frostoil = 5, /datum/reagent/carbon = 10) diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 97290d54213f..d3bf1e211290 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -425,7 +425,7 @@ required_other = TRUE /datum/chemical_reaction/slime/adamantine/on_reaction(datum/reagents/holder) - new /obj/item/stack/sheet/mineral/adamantine(get_turf(holder.my_atom)) + new /obj/item/stack/sheet/mineral/hidden/hellstone(get_turf(holder.my_atom)) ..() //Bluespace diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index d63debc16e41..bfecd046f977 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers name = "Container" desc = "..." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/beakers.dmi' icon_state = null w_class = WEIGHT_CLASS_TINY var/amount_per_transfer_from_this = 5 diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 5645ed54957e..df7949c9c654 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -275,12 +275,6 @@ desc = "A small bottle containing Bio Virus Antidote Kit." list_reagents = list(/datum/reagent/vaccine/fungal_tb = 30) -/obj/item/reagent_containers/glass/bottle/necropolis_seed - name = "bowl of blood" - desc = "A clay bowl containing a fledgling spire, preserved in blood. When consumed, allows the user to transform into an avatar of the Necropolis. A robust virologist may be able to unlock its full potential..." - icon_state = "mortar_bone" - spawned_disease = /datum/disease/advance/necropolis - //Oldstation.dmm chemical storage bottles /obj/item/reagent_containers/glass/bottle/hydrogen @@ -439,39 +433,3 @@ /obj/item/reagent_containers/glass/bottle/morphine/sleeper cap_on = FALSE - -//types of syrups - -/obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/caramel - name = "bottle of caramel syrup" - desc = "A pump bottle containing caramalized sugar, also known as caramel. Do not lick." - list_reagents = list(/datum/reagent/consumable/caramel = 50) - -/obj/item/reagent_containers/food/drinks/bottle/syrup_bottle/liqueur - name = "bottle of coffee liqueur syrup" - desc = "A pump bottle containing mexican coffee-flavoured liqueur syrup. In production since 1936, HONK." - list_reagents = list(/datum/reagent/consumable/ethanol/kahlua = 50) - -//Coffeepots: for reference, a standard cup is 30u, to allow 20u for sugar/sweetener/milk/creamer -/obj/item/reagent_containers/food/drinks/bottle/coffeepot - icon = 'icons/obj/food/containers.dmi' - name = "coffeepot" - desc = "A large pot for dispensing that ambrosia of corporate life known to mortals only as coffee. Contains 4 standard cups." - volume = 120 - icon_state = "coffeepot" - fill_icon_state = "coffeepot" - fill_icon_thresholds = list(0, 1, 30, 60, 100) - -/obj/item/reagent_containers/glass/coffee_cup - name = "coffee cup" - desc = "A heat-formed plastic coffee cup. Can theoretically be used for other hot drinks, if you're feeling adventurous." - icon = 'icons/obj/machines/coffeemaker.dmi' - icon_state = "coffee_cup_e" - base_icon_state = "coffee_cup" - possible_transfer_amounts = list(10) - volume = 30 - spillable = TRUE - -/obj/item/reagent_containers/glass/coffee_cup/update_icon_state() - icon_state = reagents.total_volume ? base_icon_state : "[base_icon_state]_e" - return ..() diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 63acf014b214..248586792679 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/dropper name = "dropper" desc = "A dropper. Holds up to 5 units." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/beakers.dmi' icon_state = "dropper0" amount_per_transfer_from_this = 5 possible_transfer_amounts = list(1, 2, 3, 4, 5) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 6682a9ba7943..b0c949d122f9 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -40,7 +40,7 @@ if(M != user) M.visible_message("[user] attempts to feed [M] something from [src].", \ "[user] attempts to feed you something from [src].") - if(!do_mob(user, M)) + if(!do_after(user, target = M)) return if(!reagents || !reagents.total_volume) return // The drink might be empty after the delay, such as by spam-feeding @@ -118,7 +118,7 @@ /obj/item/reagent_containers/glass/beaker name = "beaker" desc = "A beaker. It can hold up to 50 units." - icon = 'icons/obj/chemical.dmi' //Should I modularize this? Yes. Will I do it? + icon = 'icons/obj/chemical/beakers.dmi' icon_state = "beaker" item_state = "beaker" custom_materials = list(/datum/material/glass=500) @@ -296,7 +296,6 @@ /obj/item/reagent_containers/glass/filter name = "seperatory funnel" desc = "A crude tool created by welding several beakers together. It would probably be useful for seperating reagents." - icon = 'icons/obj/chemical.dmi' icon_state = "beakerfilter" item_state = "beaker" volume = 100 diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 7efe82893918..11cbd03c9787 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -490,7 +490,7 @@ if(L != user) L.visible_message("[user] is trying to inject [L] with [src]!", \ "[user] is trying to inject [L] with [src]!") - if(!do_mob(user, L, inject_wait)) + if(!do_after(user, inject_wait, L)) return if(!penetrates && !L.can_inject(user, 1)) return @@ -501,7 +501,7 @@ L.visible_message("[user] uses the [src] on [L]!", \ "[user] uses the [src] on [L]!") else - if(!do_mob(user, L, inject_self)) + if(!do_after(user, inject_self, L)) return if(!penetrates && !L.can_inject(user, 1)) return @@ -526,7 +526,7 @@ if(L != user) L.visible_message("[user] is trying to spray [L] with [src]!", \ "[user] is trying to spray [L] with [src]!") - if(!do_mob(user, L, spray_wait)) + if(!do_after(user, spray_wait, L)) return if(!penetrates && !L.can_inject(user, 1)) return @@ -537,7 +537,7 @@ L.visible_message("[user] uses the [src] on [L]!", \ "[user] uses the [src] on [L]!") else - if(!do_mob(user, L, spray_self)) + if(!do_after(user, spray_self, L)) return if(!penetrates && !L.can_inject(user, 1)) return diff --git a/code/modules/reagents/reagent_containers/hypovial.dm b/code/modules/reagents/reagent_containers/hypovial.dm index f16984cd7e5b..7696bf0d950a 100644 --- a/code/modules/reagents/reagent_containers/hypovial.dm +++ b/code/modules/reagents/reagent_containers/hypovial.dm @@ -2,7 +2,7 @@ /obj/item/reagent_containers/glass/bottle/vial name = "broken hypovial" desc = "A hypovial compatible with most hyposprays." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/hypovial.dmi' icon_state = "hypovial" spillable = FALSE var/comes_with = list() //Easy way of doing this. diff --git a/code/modules/reagents/reagent_containers/jug.dm b/code/modules/reagents/reagent_containers/jug.dm index a863be707c48..80ebcbb4d5b3 100644 --- a/code/modules/reagents/reagent_containers/jug.dm +++ b/code/modules/reagents/reagent_containers/jug.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/glass/chem_jug name = "chemical jug" desc = "A large jug used for storing bulk ammounts chemicals. Provided with a tamper seal which ensures that the contents are pure" - icon = 'icons/obj/chem_jug.dmi' + icon = 'icons/obj/chemical/chem_jug.dmi' icon_state = "chem_jug" item_state = "sheet-plastic" w_class = WEIGHT_CLASS_BULKY diff --git a/code/modules/reagents/reagent_containers/medigel.dm b/code/modules/reagents/reagent_containers/medigel.dm index 7542f606a899..7e85c0c6d1ca 100644 --- a/code/modules/reagents/reagent_containers/medigel.dm +++ b/code/modules/reagents/reagent_containers/medigel.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/medigel name = "medical gel" desc = "A medical gel applicator bottle, designed for precision application, with an unscrewable cap." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "medigel" item_state = "spraycan" lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' @@ -48,7 +48,7 @@ if(M == user) M.visible_message("[user] attempts to [apply_method] [src] on [user.p_them()]self.") if(self_delay) - if(!do_mob(user, M, self_delay)) + if(!do_after(user, self_delay, M)) return if(!reagents || !reagents.total_volume) return @@ -58,7 +58,7 @@ log_combat(user, M, "attempted to apply", src, reagents.log_list()) M.visible_message("[user] attempts to [apply_method] [src] on [M].", \ "[user] attempts to [apply_method] [src] on you.") - if(!do_mob(user, M)) + if(!do_after(user, target = M)) return if(!reagents || !reagents.total_volume) return diff --git a/code/modules/reagents/reagent_containers/mortar.dm b/code/modules/reagents/reagent_containers/mortar.dm index 3c1443bfb9d2..a397176b6afa 100644 --- a/code/modules/reagents/reagent_containers/mortar.dm +++ b/code/modules/reagents/reagent_containers/mortar.dm @@ -10,14 +10,14 @@ to accommodate additional materials. name = "pestle" desc = "An ancient, simple tool used in conjunction with a mortar to grind or juice items." w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/mortar.dmi' icon_state = "pestle" force = 7 /obj/item/reagent_containers/glass/mortar name = "mortar" desc = "A specially formed bowl of ancient design. It is possible to crush or juice items placed in it using a pestle; however the process, unlike modern methods, is slow and physically exhausting. Alt click to eject the item." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/mortar.dmi' icon_state = "mortar_wood" fill_icon_state = "mortar" fill_icon_thresholds = list(1, 20, 40, 80, 100) @@ -136,11 +136,3 @@ to accommodate additional materials. /obj/item/reagent_containers/glass/mortar/mushroom icon_state = "mortar_shroom" custom_materials = list(/datum/material/biomass = MINERAL_MATERIAL_AMOUNT) - -// Mushroom recipes are all over the place so I'm just putting it here -/datum/crafting_recipe/mushroom_mortar - name = "Mushroom Mortar" - result = /obj/item/reagent_containers/glass/mortar/mushroom - reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5) - time = 30 - category = CAT_PRIMAL diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index c8187cd8843d..d244b05f55d3 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/pill/patch name = "chemical patch" desc = "A chemical patch for touch based applications." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "bandaid" item_state = "bandaid" possible_transfer_amounts = list() diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 85853ba5096b..9cac6c3a52a2 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/pill name = "pill" desc = "A tablet or capsule." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "pill" item_state = "pill" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' @@ -34,14 +34,14 @@ if(M == user) M.visible_message("[user] attempts to [apply_method] [src].") if(self_delay) - if(!do_mob(user, M, self_delay)) + if(!do_after(user, self_delay, M)) return FALSE to_chat(M, "You [apply_method] [src].") else M.visible_message("[user] attempts to force [M] to [apply_method] [src].", \ "[user] attempts to force you to [apply_method] [src].") - if(!do_mob(user, M)) + if(!do_after(user, target = M)) return FALSE M.visible_message("[user] forces [M] to [apply_method] [src].", \ "[user] forces you to [apply_method] [src].") diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 8be0bea8a313..05f68682083c 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -213,16 +213,6 @@ /obj/item/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays return -///Subtype used for the lavaland clown ruin. -/obj/item/reagent_containers/spray/waterflower/superlube - name = "clown flower" - desc = "A delightly devilish flower... you got a feeling where this is going." - icon = 'icons/obj/chemical.dmi' - icon_state = "clownflower" - amount_per_transfer_from_this = 3 // WS edit - superlube fix - volume = 30 - list_reagents = list(/datum/reagent/lube/superlube = 30) - /obj/item/reagent_containers/spray/waterflower/cyborg reagent_flags = NONE volume = 100 @@ -345,26 +335,9 @@ volume = 100 list_reagents = list(/datum/reagent/toxin/plantbgone = 100) -/obj/item/reagent_containers/spray/syndicate - name = "suspicious spray bottle" - desc = "A spray bottle, with a high performance plastic nozzle. The color scheme makes you feel slightly uneasy." - icon = 'icons/obj/chemical.dmi' - icon_state = "sprayer_sus_8" - item_state = "sprayer_sus" - lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - spray_range = 4 - stream_range = 2 - volume = 100 - custom_premium_price = 900 - -/obj/item/reagent_containers/spray/syndicate/Initialize() - . = ..() - icon_state = pick("sprayer_sus_1", "sprayer_sus_2", "sprayer_sus_3", "sprayer_sus_4", "sprayer_sus_5","sprayer_sus_6", "sprayer_sus_7", "sprayer_sus_8") - /obj/item/reagent_containers/spray/medical name = "medical spray bottle" - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/medicine.dmi' icon_state = "sprayer_med_red" item_state = "sprayer_med_red" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index f0901e416b25..5d11dcb720ee 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -86,7 +86,7 @@ target.visible_message("[user] is trying to take a blood sample from [target]!", \ "[user] is trying to take a blood sample from you!") busy = TRUE - if(!do_mob(user, target, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + if(!do_after(user, target = target, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) busy = FALSE return if(reagents.total_volume >= reagents.maximum_volume) @@ -136,7 +136,7 @@ if(L != user) L.visible_message("[user] is trying to inject [L]!", \ "[user] is trying to inject you!") - if(!do_mob(user, L, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) + if(!do_after(user, target = L, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE))) return if(!reagents.total_volume) return diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index 9f2861218418..111428528242 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -131,7 +131,7 @@ user.visible_message("[user] starts climbing into [src].", "You start climbing into [src]...") else target.visible_message("[user] starts putting [target] into [src].", "[user] starts putting you into [src]!") - if(do_mob(user, target, 20)) + if(do_after(user, 2 SECONDS, target)) if (!loc) return target.forceMove(src) diff --git a/code/modules/religion/rites.dm b/code/modules/religion/rites.dm index 1c1caa5de1d6..67b337400315 100644 --- a/code/modules/religion/rites.dm +++ b/code/modules/religion/rites.dm @@ -18,7 +18,7 @@ return FALSE to_chat(user, "You begin to perform the rite of [name]...") if(!ritual_invocations) - if(do_after(user, target = user, delay = ritual_length)) + if(do_after(user, ritual_length)) return TRUE return FALSE var/first_invoke = TRUE diff --git a/code/modules/research/bepis.dm b/code/modules/research/bepis.dm index 84d948f7c2b9..a033b59b56ae 100644 --- a/code/modules/research/bepis.dm +++ b/code/modules/research/bepis.dm @@ -17,7 +17,7 @@ density = TRUE layer = ABOVE_MOB_LAYER use_power = IDLE_POWER_USE - active_power_usage = 1500 + active_power_usage = ACTIVE_DRAW_HIGH circuit = /obj/item/circuitboard/machine/bepis var/banking_amount = 100 @@ -254,7 +254,7 @@ return calcsuccess() use_power(MACHINE_OPERATION * power_saver) //This thing should eat your APC battery if you're not careful. - use_power = IDLE_POWER_USE //Machine shuts off after use to prevent spam and look better visually. + set_idle_power() //Machine shuts off after use to prevent spam and look better visually. update_icon_state() if("amount") var/input = text2num(params["amount"]) @@ -262,9 +262,9 @@ banking_amount = input if("toggle_power") if(use_power == ACTIVE_POWER_USE) - use_power = IDLE_POWER_USE + set_idle_power() else - use_power = ACTIVE_POWER_USE + set_active_power() update_icon_state() if("account_reset") if(use_power == IDLE_POWER_USE) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 7c43c3fc5acb..e39d48e5cc77 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -870,6 +870,22 @@ build_path = /obj/item/ammo_box/c556mmHITP/surplus category = list("initial", "Security", "Ammo") +/datum/design/generic_ammo_box + name = "Generic Ammo Box" + id = "ammo-generic" + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 1500) + build_path = /obj/item/ammo_box/generic + category = list("initial", "Security", "Ammo") + +/datum/design/ammo_can + name = "Ammo Can" + id = "ammo-can" + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 500) + build_path = /obj/item/storage/toolbox/ammo + category = list("initial", "Security", "Ammo") + /datum/design/cleaver name = "Butcher's Cleaver" id = "cleaver" @@ -1175,6 +1191,14 @@ build_path = /obj/item/assembly/control category = list("initial","Misc") +/datum/design/holofield_control + name = "Holofield Controller" + id = "holofield" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 100, /datum/material/glass = 50) + build_path = /obj/item/assembly/control/shieldwallgen + category = list("initial","Misc") + /datum/design/trashbag name="Trash Bag" id="trashbag" diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index e12db8a59738..6955bf525d29 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -9,6 +9,13 @@ build_path = /obj/item/circuitboard/machine/smes category = list ("Engineering Machinery") +/datum/design/board/ssu + name = "Machine Design (Suit Storage Unit Board)" + desc = "The circuit board for a suit storage unit." + id = "ssu" + build_path = /obj/item/circuitboard/machine/suit_storage_unit + category = list ("Engineering Machinery") + /datum/design/board/circulator name = "Machine Design (Circulator Board)" desc = "The circuit board for a circulator." diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index dfd373dcd3d7..46dddeb0c586 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -445,7 +445,7 @@ id = "honk_torso" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_torso - materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/bananium=10000) + materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/hellstone=10000) construction_time = 300 category = list("H.O.N.K") @@ -454,7 +454,7 @@ id = "honk_head" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_head - materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -463,7 +463,7 @@ id = "honk_left_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_left_arm - materials = list(/datum/material/iron=15000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=15000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -472,7 +472,7 @@ id = "honk_right_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_right_arm - materials = list(/datum/material/iron=15000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=15000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -481,7 +481,7 @@ id = "honk_left_leg" build_type = MECHFAB build_path =/obj/item/mecha_parts/part/honker_left_leg - materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -490,7 +490,7 @@ id = "honk_right_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_right_leg - materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -657,7 +657,7 @@ id = "mech_mousetrap_mortar" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar - materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000) construction_time = 300 category = list("Exosuit Equipment") @@ -666,7 +666,7 @@ id = "mech_banana_mortar" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar - materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000) construction_time = 300 category = list("Exosuit Equipment") @@ -675,7 +675,7 @@ id = "mech_honker" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/honker - materials = list(/datum/material/iron=20000,/datum/material/bananium=10000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=10000) construction_time = 500 category = list("Exosuit Equipment") @@ -684,7 +684,7 @@ id = "mech_punching_face" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove - materials = list(/datum/material/iron=20000,/datum/material/bananium=7500) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=7500) construction_time = 400 category = list("Exosuit Equipment") @@ -769,7 +769,7 @@ id = "borg_transform_clown" build_type = MECHFAB build_path = /obj/item/borg/upgrade/transform/clown - materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/bananium = 1000) + materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/hellstone = 1000) construction_time = 120 category = list("Cyborg Upgrade Modules") diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 6e4a1b61d06f..95a03b829608 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -395,6 +395,17 @@ category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE +/datum/design/cyberimp_joywire + name = "\improper Midi-Sed pleasure vivifier" + desc = "A widely popular (and addictive) implant produced by Miditeke-Sedari Tokoce that stimulates the brain's pleasure centers. Dramatically increases mood, but interferes with taste reception even if uninstalled." + id = "ci-joywire" + build_type = PROTOLATHE | MECHFAB + construction_time = 60 + materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/gold = 500, /datum/material/silver = 500) + build_path = /obj/item/organ/cyberimp/brain/joywire + category = list("Misc", "Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + /datum/design/cyberimp_nutriment name = "Nutriment Pump Implant" desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving." @@ -465,7 +476,7 @@ desc = "Makes death amusing." id = "implant_trombone" build_type = PROTOLATHE - materials = list(/datum/material/glass = 500, /datum/material/bananium = 500) + materials = list(/datum/material/glass = 500, /datum/material/hellstone = 500) build_path = /obj/item/implantcase/sad_trombone category = list("Medical Designs") diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index eeca189ef2dc..816cd4f9fdbf 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -130,7 +130,7 @@ desc = "Damn son, where'd you find this?" id = "air_horn" build_type = PROTOLATHE - materials = list(/datum/material/iron = 4000, /datum/material/bananium = 1000) + materials = list(/datum/material/iron = 4000, /datum/material/hellstone = 1000) build_path = /obj/item/bikehorn/airhorn category = list("Equipment") diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 36a22dac2cc7..0f8c2eb53c1d 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -2,6 +2,10 @@ name = "technology fabricator" desc = "Makes researched and prototype items with materials and energy." layer = BELOW_OBJ_LAYER + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_HIGH + power_channel = AREA_USAGE_EQUIP var/consoleless_interface = FALSE //Whether it can be used without a console. var/efficiency_coeff = 1 //Materials needed / coeff = actual. var/list/categories = list() @@ -96,6 +100,7 @@ if(notify_admins) investigate_log("[key_name(usr)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH) message_admins("[ADMIN_LOOKUPFLW(usr)] has built [amount] of [path] at \a [src]([type]).") + set_idle_power() for(var/i in 1 to amount) var/obj/item/I = new path(get_turf(src)) if(efficient_with(I.type)) @@ -142,11 +147,11 @@ if(materials.on_hold()) say("Mineral access is on hold, please contact the quartermaster.") return FALSE - var/power = 1000 + var/power = active_power_usage amount = clamp(amount, 1, 50) for(var/M in D.materials) power += round(D.materials[M] * amount / 35) - power = min(3000, power) + power = min(ACTIVE_DRAW_EXTREME, power) use_power(power) var/coeff = efficient_with(D.build_path) ? efficiency_coeff : 1 var/list/efficient_mats = list() @@ -168,6 +173,7 @@ flick(production_animation, src) var/timecoeff = D.lathe_time_factor / efficiency_coeff addtimer(CALLBACK(src, PROC_REF(reset_busy)), (30 * timecoeff * amount) ** 0.5) + set_active_power() addtimer(CALLBACK(src, PROC_REF(do_print), D.build_path, amount, efficient_mats, D.dangerous_construction), (32 * timecoeff * amount) ** 0.8) return TRUE diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm index d5d5fa79e8ca..eb50a70af0bb 100644 --- a/code/modules/research/nanites/nanite_chamber.dm +++ b/code/modules/research/nanites/nanite_chamber.dm @@ -9,8 +9,8 @@ use_power = IDLE_POWER_USE anchored = TRUE density = TRUE - idle_power_usage = 50 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH var/locked = FALSE var/breakout_time = 1200 diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm index 9e39486c2052..b149fda6baae 100644 --- a/code/modules/research/nanites/public_chamber.dm +++ b/code/modules/research/nanites/public_chamber.dm @@ -8,8 +8,8 @@ use_power = IDLE_POWER_USE anchored = TRUE density = TRUE - idle_power_usage = 50 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH var/cloud_id = 1 var/locked = FALSE diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index aac9842415c5..eaa696c8d775 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -183,7 +183,7 @@ prereq_ids = list("base") design_ids = list("solarcontrol", "solarassembly", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", "scanner_gate", "atmosalerts", "atmos_control", "recycler", "autolathe", "high_micro_laser", "nano_mani", "mesons", "welding_goggles", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", - "apc_control", "cell_charger", "power control", "airlock_board", "firelock_board", "aac_electronics", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", + "apc_control", "cell_charger", "ssu", "power control", "airlock_board", "firelock_board", "aac_electronics", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", "oxygen_tank", "plasma_tank", "emergency_oxygen", "emergency_oxygen_engi", "plasmaman_tank_belt", "pneumatic_seal", "shieldwallgen", "shieldwallgen_atmos") //WS edit, solar assemblies from lathe research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) export_price = 5000 @@ -521,7 +521,7 @@ display_name = "Cybernetic Implants" description = "Electronic implants that improve humans." prereq_ids = list("adv_biotech", "datatheory") - design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-diaghud") + design_ids = list("ci-nutriment", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-diaghud", "ci-joywire") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/research/xenobiology/crossbreeding/_potions.dm b/code/modules/research/xenobiology/crossbreeding/_potions.dm index 1fb17ea4d1fd..fc9d9ef06c6a 100644 --- a/code/modules/research/xenobiology/crossbreeding/_potions.dm +++ b/code/modules/research/xenobiology/crossbreeding/_potions.dm @@ -8,7 +8,7 @@ Slimecrossing Potions /obj/item/slimepotion/extract_cloner name = "extract cloning potion" desc = "An more powerful version of the extract enhancer potion, capable of cloning regular slime extracts." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpurple" /obj/item/slimepotion/extract_cloner/afterattack(obj/item/target, mob/user , proximity) @@ -36,7 +36,7 @@ Slimecrossing Potions /obj/item/slimepotion/peacepotion name = "pacification potion" desc = "A light pink solution of chemicals, smelling like liquid peace. And mercury salts." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potlightpink" /obj/item/slimepotion/peacepotion/attack(mob/living/M, mob/user) @@ -70,7 +70,7 @@ Slimecrossing Potions /obj/item/slimepotion/lovepotion name = "love potion" desc = "A pink chemical mix thought to inspire feelings of love." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpink" /obj/item/slimepotion/lovepotion/attack(mob/living/M, mob/user) @@ -104,7 +104,7 @@ Slimecrossing Potions /obj/item/slimepotion/spaceproof name = "slime pressurization potion" desc = "A potent chemical sealant that will render any article of clothing airtight. Has two uses." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potblue" var/uses = 2 @@ -136,14 +136,14 @@ Slimecrossing Potions /obj/item/slimepotion/enhancer/max name = "extract maximizer" desc = "An extremely potent chemical mix that will maximize a slime extract's uses." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpurple" //Lavaproofing potion - Charged Red /obj/item/slimepotion/lavaproof name = "slime lavaproofing potion" desc = "A strange, reddish goo said to repel lava as if it were water, without reducing flammability. Has two uses." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potred" resistance_flags = LAVA_PROOF | FIRE_PROOF var/uses = 2 @@ -174,7 +174,7 @@ Slimecrossing Potions /obj/item/slimepotion/slime_reviver name = "slime revival potion" desc = "Infused with plasma and compressed gel, this brings dead slimes back to life." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potsilver" /obj/item/slimepotion/slime_reviver/attack(mob/living/simple_animal/slime/M, mob/user) @@ -198,7 +198,7 @@ Slimecrossing Potions /obj/item/slimepotion/slime/chargedstabilizer name = "slime omnistabilizer" desc = "An extremely potent chemical mix that will stop a slime from mutating completely." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potcyan" /obj/item/slimepotion/slime/chargedstabilizer/attack(mob/living/simple_animal/slime/M, mob/user) diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index 501ff548e08f..25aa79302918 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -146,7 +146,7 @@ Charged extracts: effect_desc = "Creates bananium. Oh no." /obj/item/slimecross/charged/pyrite/do_effect(mob/user) - new /obj/item/stack/sheet/mineral/bananium(get_turf(user), 10) + new /obj/item/stack/sheet/mineral/hidden/hellstone(get_turf(user), 10) user.visible_message("[src] solidifies with a horrifying banana stench!") ..() diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index 7cb7f8677408..75a1201d924a 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -41,12 +41,12 @@ Regenerative extracts: to_chat(user, "[src] will not work on the dead!") return if(H != user) - if(!do_mob(user, H, slime_delay)) // 1 second delay + if(!do_after(user, slime_delay, H)) // 1 second delay return FALSE user.visible_message("[user] crushes the [src] over [H], the milky goo quickly regenerating some of [H.p_their()] injuries!", "You squeeze the [src], and it bursts over [H], the milky goo regenerating some of [H.p_their()] injuries.") else - if(!do_mob(user, H, (slime_delay * 1.5))) // 1.5 second delay + if(!do_after(user, (slime_delay * 1.5), H)) // 1.5 second delay return FALSE user.visible_message("[user] crushes the [src] over [user.p_them()]self, the milky goo quickly regenerating some of [user.p_their()] injuries!", "You squeeze the [src], and it bursts in your hand, splashing you with milky goo which quickly regenerates some of your injuries!") diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 113f130562de..c907f11c1cfa 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -664,7 +664,7 @@ /obj/item/slimepotion/slime/docility name = "docility potion" desc = "A potent chemical mix that nullifies a slime's hunger, causing it to become docile and tame." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potsilver" /obj/item/slimepotion/slime/docility/attack(mob/living/simple_animal/slime/M, mob/user) @@ -695,7 +695,7 @@ /obj/item/slimepotion/slime/sentience name = "intelligence potion" desc = "A miraculous chemical mix that grants human like intelligence to living beings." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpink" var/list/not_interested = list() var/being_used = FALSE @@ -754,7 +754,7 @@ /obj/item/slimepotion/transference name = "consciousness transference potion" desc = "A strange slime-based chemical that, when used, allows the user to transfer their consciousness to a lesser being." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potorange" var/prompted = 0 var/animal_type = SENTIENCE_ORGANIC @@ -802,7 +802,7 @@ /obj/item/slimepotion/slime/steroid name = "slime steroid" desc = "A potent chemical mix that will cause a baby slime to generate more extract." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potred" /obj/item/slimepotion/slime/steroid/attack(mob/living/simple_animal/slime/M, mob/user) @@ -826,13 +826,13 @@ /obj/item/slimepotion/enhancer name = "extract enhancer" desc = "A potent chemical mix that will give a slime extract an additional use." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potpurple" /obj/item/slimepotion/slime/stabilizer name = "slime stabilizer" desc = "A potent chemical mix that will reduce the chance of a slime mutating." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potcyan" /obj/item/slimepotion/slime/stabilizer/attack(mob/living/simple_animal/slime/M, mob/user) @@ -853,7 +853,7 @@ /obj/item/slimepotion/slime/mutator name = "slime mutator" desc = "A potent chemical mix that will increase the chance of a slime mutating." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potgreen" /obj/item/slimepotion/slime/mutator/attack(mob/living/simple_animal/slime/M, mob/user) @@ -878,7 +878,7 @@ /obj/item/slimepotion/speed name = "slime speed potion" desc = "A potent chemical mix that will reduce the slowdown from any item." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potyellow" /obj/item/slimepotion/speed/afterattack(obj/C, mob/user, proximity) @@ -913,7 +913,7 @@ /obj/item/slimepotion/fireproof name = "slime chill potion" desc = "A potent chemical mix that will fireproof any article of clothing. Has three uses." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potblue" resistance_flags = FIRE_PROOF var/uses = 3 @@ -945,7 +945,7 @@ /obj/item/slimepotion/genderchange name = "gender change potion" desc = "An interesting chemical mix that changes the biological gender of what its applied to. Cannot be used on things that lack gender entirely." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potlightpink" /obj/item/slimepotion/genderchange/attack(mob/living/L, mob/user) @@ -969,7 +969,7 @@ /obj/item/slimepotion/slime/renaming name = "renaming potion" desc = "A potion that allows a self-aware being to change what name it subconciously presents to the world." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potgreen" var/being_used = FALSE @@ -1002,7 +1002,7 @@ /obj/item/slimepotion/slime/slimeradio name = "bluespace radio potion" desc = "A strange chemical that grants those who ingest it the ability to broadcast and receive subscape radio waves." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/chemical/misc.dmi' icon_state = "potgrey" /obj/item/slimepotion/slime/slimeradio/attack(mob/living/M, mob/user) diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 1115224a6733..7f050c3ac5e5 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -75,7 +75,7 @@ /obj/effect/mob_spawn/human/lavaland_syndicate/comms/space/Initialize() . = ..() if(prob(90)) //only has a 10% chance of existing, otherwise it'll just be a NPC syndie. - new /mob/living/simple_animal/hostile/syndicate/ranged(get_turf(src)) + new /mob/living/simple_animal/hostile/human/syndicate/ranged(get_turf(src)) return INITIALIZE_HINT_QDEL /datum/outfit/lavaland_syndicate/comms diff --git a/code/modules/ruins/lavalandruin_code/biodome_winter.dm b/code/modules/ruins/lavalandruin_code/biodome_winter.dm new file mode 100644 index 000000000000..85fed2a74324 --- /dev/null +++ b/code/modules/ruins/lavalandruin_code/biodome_winter.dm @@ -0,0 +1,9 @@ + +/obj/item/paper/pamphlet/biodomelore + name = "Solarian Frontier Project Pamphlet" + default_raw_text = "

Extrasolar Biodome Project



The Most Serene Solar and Intersolar Confederation welcomes you to one of our many experimental biodomes out in the frontier.
These facilities are developed and built as a collaboration with the Pionierskompanien and are to serve as extrasolar research bases for our most accomplished scientists and scribes. These facilities utilize breakthroughs in terraforming technology to create a comfortable, habitable environment in even the harshest of locales. Your purpose here is to research and report on the effectiveness of the technology utilized within the central dome, as well as maintain and protect the facility." + +/obj/item/paper/crumpled/bloody/winterbiodome + name = "hastily written note" + default_raw_text = "Scheiße, I knew this would happen eventually. Legions have been piling up outside for days, and one of my former coworkers was unwise enough to let them in.

...They're all dead. I can hear the legions outside. The display case with the Claris is locked tight, and I cant find anything to break the glass with.

Please forgive me. My time is up. If anyone finds this, the Claris is yours. Just avenge us.
" + diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm index 5d29bf9dc2a6..7a26946f0ddc 100644 --- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm +++ b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm @@ -226,21 +226,10 @@ /obj/structure/closet/crate/grave/loot/lead_researcher/PopulateContents() //ADVANCED GRAVEROBBING ..() new /obj/effect/decal/cleanable/blood/gibs/old(src) - new /obj/item/book/granter/crafting_recipe/boneyard_notes(src) /obj/effect/decal/remains/human/grave turf_loc_check = FALSE -/obj/item/book/granter/crafting_recipe/boneyard_notes - name = "The Complete Works of Lavaland Bone Architecture" - desc = "Pried from the lead Archaeologist's cold, dead hands, this seems to explain how ancient bone architecture was erected long ago." - crafting_recipe_types = list(/datum/crafting_recipe/rib, /datum/crafting_recipe/boneshovel, /datum/crafting_recipe/halfskull, /datum/crafting_recipe/skull) - icon = 'icons/obj/library.dmi' - icon_state = "boneworking_learing" - oneuse = FALSE - remarks = list("Who knew you could bend bones that far back?", "I guess that was much easier before the planet heated up...", "So that's how they made those ruins survive the ashstorms. Neat!", "The page is just filled with insane ramblings about some 'legion' thing.", "But why would they need vinegar to polish the bones? And rags too?", "You spend a few moments cleaning dirt and blood off of the page, yeesh.") - - //***Fluff items for lore/intrigue /obj/item/paper/crumpled/muddy/fluff/elephant_graveyard name = "posted warning" diff --git a/code/modules/ruins/spaceruin_code/DJstation.dm b/code/modules/ruins/spaceruin_code/DJstation.dm deleted file mode 100644 index 3be98b064e3e..000000000000 --- a/code/modules/ruins/spaceruin_code/DJstation.dm +++ /dev/null @@ -1,5 +0,0 @@ -/////////// djstation items - -/obj/item/paper/fluff/ruins/djstation - name = "paper - 'DJ Listening Outpost'" - default_raw_text = "Welcome new owner!

You have purchased the latest in listening equipment. The telecommunication setup we created is the best in listening to common and private radio frequencies. Here is a step by step guide to start listening in on those saucy radio channels:
  1. Equip yourself with a multitool
  2. Use the multitool on the relay.
  3. Turn it on. It has already been configured for you to listen on.
Simple as that. Now to listen to the private channels, you'll have to configure the intercoms. They are located on the front desk. Here is a list of frequencies for you to listen on.
  • 145.9 - Common Channel
  • 144.7 - Private AI Channel
  • 135.9 - Security Channel
  • 135.7 - Engineering Channel
  • 135.5 - Medical Channel
  • 135.3 - Command Channel
  • 135.1 - Science Channel
  • 134.9 - Service Channel
  • 134.7 - Supply Channel
  • " diff --git a/code/modules/ruins/spaceruin_code/forgottenship.dm b/code/modules/ruins/spaceruin_code/forgottenship.dm index def148f22239..57b9f64bf60f 100644 --- a/code/modules/ruins/spaceruin_code/forgottenship.dm +++ b/code/modules/ruins/spaceruin_code/forgottenship.dm @@ -81,45 +81,3 @@ GLOBAL_VAR_INIT(fscpassword, generate_password()) area_flags = NOTELEPORT | UNIQUE_AREA //Cybersun hardsuit - -//Special NT NPCs - -/mob/living/simple_animal/hostile/nanotrasen/ranged/assault - name = "Nanotrasen Assault Officer" - desc = "A Nanotrasen Assault Officer. Prepare to die, if you've been found near Syndicate property." - icon_state = "nanotrasenrangedassault" - icon_living = "nanotrasenrangedassault" - icon_dead = null - icon_gib = "syndicate_gib" - ranged = TRUE - rapid = 4 - rapid_fire_delay = 1 - rapid_melee = 1 - retreat_distance = 2 - minimum_distance = 4 - casingtype = /obj/item/ammo_casing/c46x30mm - projectilesound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' - loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasenassaultsoldier) - -/mob/living/simple_animal/hostile/nanotrasen/elite - name = "Nanotrasen Elite Assault Officer" - desc = "Pray for your life, syndicate. Run while you can." - icon = 'icons/mob/simple_human.dmi' - icon_state = "nanotrasen_ert" - icon_living = "nanotrasen_ert" - maxHealth = 150 - health = 150 - melee_damage_lower = 13 - melee_damage_upper = 18 - ranged = TRUE - rapid = 3 - rapid_fire_delay = 5 - rapid_melee = 3 - retreat_distance = 0 - minimum_distance = 1 - 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) - minbodytemp = 0 - projectiletype = /obj/projectile/beam/laser - projectilesound = 'sound/weapons/laser.ogg' - loot = list(/obj/effect/gibspawner/human) - faction = list(ROLE_DEATHSQUAD) diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 7f3693e98760..58e75c399d81 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -10,8 +10,8 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) icon = 'icons/obj/monitors.dmi' icon_state = "auth_off" use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL power_channel = AREA_USAGE_ENVIRON req_access = list(ACCESS_KEYCARD_AUTH) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index f91eb07f52cb..45d7f96b7df4 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -366,7 +366,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th smoke.start() -/obj/effect/proc_holder/spell/proc/cast(list/targets,mob/user = usr) +/obj/effect/proc_holder/spell/proc/cast(list/targets, mob/user = usr) return /obj/effect/proc_holder/spell/proc/view_or_range(distance = world.view, center=usr, type="view") diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index 6631d943a3aa..b7da88dfe790 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -107,7 +107,7 @@ if(istype(user.loc, /obj/effect/dummy/phased_mob/slaughter/)) if(valid_location(user)) to_chat(user, "You are now phasing in.") - if(do_mob(user,user,150)) + if(do_after(user, 1.5 SECONDS, user)) if(valid_location(user)) user.infernalphasein() else @@ -121,7 +121,7 @@ user.notransform = TRUE user.fakefire() to_chat(src, "You begin to phase back into sinful flames.") - if(do_mob(user,user,150)) + if(do_after(user, 1.5 SECONDS, user)) user.infernalphaseout() else to_chat(user, "You must remain still while exiting.") diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index c8d1c4a7c027..720670e3fc21 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -49,7 +49,7 @@ playsound(user, 'sound/effects/pope_entry.ogg', 100) - if(!do_after(M, 50, needhand=FALSE, target=marked_item)) + if(!do_after(M, 50, target=marked_item, timed_action_flags = IGNORE_HELD_ITEM)) to_chat(M, "Your soul snaps back to your body as you stop ensouling [marked_item]!") return diff --git a/code/modules/spells/spell_types/lightning.dm b/code/modules/spells/spell_types/lightning.dm index 3231d22170e1..85f211511135 100644 --- a/code/modules/spells/spell_types/lightning.dm +++ b/code/modules/spells/spell_types/lightning.dm @@ -28,7 +28,7 @@ halo = halo || mutable_appearance('icons/effects/effects.dmi', "electricity", EFFECTS_LAYER) user.add_overlay(halo) playsound(get_turf(user), Snd, 50, FALSE) - if(do_mob(user,user,100,1)) + if(do_after(user, 10 SECONDS, user, timed_action_flags = (IGNORE_USER_LOC_CHANGE|IGNORE_TARGET_LOC_CHANGE|IGNORE_HELD_ITEM))) if(ready && cast_check(skipcharge=1)) choose_targets() else diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index 387a2ee9712c..2fab8c5848ef 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -242,46 +242,34 @@ sound = 'sound/magic/repulse.ogg' var/maxthrow = 5 var/sparkle_path = /obj/effect/temp_visual/gravpush - var/anti_magic_check = TRUE var/repulse_force = MOVE_FORCE_EXTREMELY_STRONG - + var/stun_amt = 5 action_icon_state = "repulse" -/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets,mob/user = usr, stun_amt = 5) +/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/hit_turfs, mob/user = usr) var/list/thrownatoms = list() - var/atom/throwtarget var/distfromcaster playMagSound() - for(var/atom/movable/hit_target as anything in targets) //Done this way so things don't get thrown all around hilariously. - thrownatoms += hit_target - for(var/am in thrownatoms) - var/atom/movable/AM = am + for(var/turf/T in hit_turfs) + for(var/atom/movable/hit_target in T.contents) + thrownatoms += hit_target + + for(var/thrown_atom in thrownatoms) + if(!ismovable(thrown_atom)) + continue + var/atom/movable/AM = thrown_atom if(AM == user || AM.anchored) continue - - if(ismob(AM)) - var/mob/M = AM - if(M.anti_magic_check(anti_magic_check, FALSE)) - continue - - throwtarget = get_edge_target_turf(user, get_dir(user, get_step_away(AM, user))) - distfromcaster = get_dist(user, AM) - if(distfromcaster == 0) - if(isliving(AM)) - var/mob/living/M = AM - M.Paralyze(40) - M.adjustBruteLoss(5) - shake_camera(AM, 2, 1) - to_chat(M, "You're slammed into the floor by [user]!") - else - new sparkle_path(get_turf(AM), get_dir(user, AM)) //created sparkles will disappear on their own - if(isliving(AM)) - var/mob/living/M = AM - shake_camera(AM, 2, 1) + var/atom/throwtarget = get_edge_target_turf(user, get_dir(user, get_step_away(AM, user))) + new sparkle_path(get_turf(AM), get_dir(user, AM)) //created sparkles will disappear on their own + if(isliving(AM)) + var/mob/living/M = AM + shake_camera(AM, 2, 1) + if(stun_amt) M.Paralyze(stun_amt) - to_chat(M, "You're thrown back by [user]!") - AM.safe_throw_at(throwtarget, ((clamp((maxthrow - (clamp(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user, force = repulse_force)//So stuff gets tossed around at the same time. + to_chat(M, "You're thrown back by [user]!") + AM.safe_throw_at(throwtarget, ((clamp((maxthrow - (clamp(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user, force = repulse_force)//So stuff gets tossed around at the same time. /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno //i fixed conflicts only to find out that this is in the WIZARD file instead of the xeno file?! name = "Tail Sweep" @@ -297,7 +285,7 @@ action_icon = 'icons/mob/actions/actions_xeno.dmi' action_icon_state = "tailsweep" action_background_icon_state = "bg_alien" - anti_magic_check = FALSE + stun_amt = 0 /obj/effect/proc_holder/spell/aoe_turf/repulse/xeno/cast(list/targets,mob/user = usr) if(iscarbon(user)) diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 9679aa860c9c..b894f99c255d 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -120,7 +120,7 @@ icon_state = "vault" density = TRUE anchored = TRUE - idle_power_usage = 5000 + idle_power_usage = ACTIVE_DRAW_EXTREME pixel_x = -32 pixel_y = -64 light_range = 3 diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 366fb41790ab..7cf31dc83ca6 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -745,8 +745,8 @@ bone_status = BONE_FLAG_NORMAL /obj/item/bodypart/proc/on_mob_move() - // Dont trigger if it isn't broken or if it has no owner - if(bone_status != BONE_FLAG_BROKEN || !owner) + // Dont trigger if it isn't broken or if it has no owner or is buckled to a rollerbed + if(bone_status != BONE_FLAG_BROKEN || !owner || istype(owner?.buckled, /obj/structure/bed/roller)) return if(prob(5)) diff --git a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm index 7ee9a58e3a2b..0794602de953 100644 --- a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm @@ -4,6 +4,7 @@ limb_id = SPECIES_ELZUOSE is_dimorphic = FALSE uses_mutcolor = TRUE + bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_SNOUT /obj/item/bodypart/chest/ethereal icon = 'icons/mob/species/ethereal/bodyparts.dmi' diff --git a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm index 862b3377f96e..50e37ee93e12 100644 --- a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm @@ -4,6 +4,7 @@ limb_id = SPECIES_SARATHI uses_mutcolor = TRUE is_dimorphic = FALSE + bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_SNOUT /obj/item/bodypart/chest/lizard icon = 'icons/mob/species/lizard/bodyparts.dmi' diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index f623bb67606b..022292c282b8 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -137,6 +137,36 @@ /obj/item/organ/cyberimp/brain/anti_stun/proc/reboot() organ_flags &= ~ORGAN_FAILING +/obj/item/organ/cyberimp/brain/joywire + name = "\improper Midi-Sed pleasure vivifier" + desc = "A widely popular (and addictive) implant produced by Miditeke-Sedari Tokoce that stimulates the brain's pleasure centers. Dramatically increases mood, but interferes with taste reception even if uninstalled." + implant_color = "#FFABE0" + slot = ORGAN_SLOT_BRAIN_JOYWIRE + +/obj/item/organ/cyberimp/brain/joywire/on_life() + if(owner || !(organ_flags & ORGAN_FAILING)) + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "joywire", /datum/mood_event/joywire) + ADD_TRAIT(owner, TRAIT_AGEUSIA, TRAIT_GENERIC) + +/obj/item/organ/cyberimp/brain/joywire/emp_act(severity) + . = ..() + if(!owner || . & EMP_PROTECT_SELF) + return + organ_flags |= ORGAN_FAILING + SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "joywire") + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "joywire_emp", /datum/mood_event/joywire_emp) + to_chat(owner, span_boldwarning("That feeling of dream-like, distilled joy is suddenly diluted. Misery sets in...")) + +/obj/item/organ/cyberimp/brain/mindscrew + name = "\improper Midi-Sed MNDFCK implant" + desc = "A horrific after-market modification of Midi-Sed's pleasure vivifier that stimulates intense pain in the brain. Dramatically hurts a user's mood and mental state, and lingers for a time after removal." + implant_color = "#5E1108" + slot = ORGAN_SLOT_BRAIN_JOYWIRE + +/obj/item/organ/cyberimp/brain/mindscrew/on_life() + if(owner || !(organ_flags & ORGAN_FAILING)) + SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "mindscrew", /datum/mood_event/mindscrew) + //[[[[MOUTH]]]] /obj/item/organ/cyberimp/mouth zone = BODY_ZONE_PRECISE_MOUTH diff --git a/code/modules/surgery/surgery_helpers.dm b/code/modules/surgery/surgery_helpers.dm index c4a769c43ed5..c28ce0855933 100644 --- a/code/modules/surgery/surgery_helpers.dm +++ b/code/modules/surgery/surgery_helpers.dm @@ -85,7 +85,7 @@ /proc/attempt_cancel_surgery(datum/surgery/S, obj/item/I, mob/living/M, mob/user) var/selected_zone = user.zone_selected to_chat(user, "You begin to cancel \the [S].") - if (!do_mob(user, M, 3 SECONDS)) + if (!do_after(user, 3 SECONDS, M)) return if(S.status == 1) diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm index aca1d210fbf0..4dc12b4dc6e3 100644 --- a/code/modules/unit_tests/outfit_sanity.dm +++ b/code/modules/unit_tests/outfit_sanity.dm @@ -3,7 +3,10 @@ /* We don't check the result of equip_to_slot_or_del because it returns false for random jumpsuits, as they delete themselves on init */ \ var/obj/item/outfit_item = H.get_item_by_slot(##slot_name); \ if (!outfit_item) { \ - TEST_FAIL("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \ + if (outfit.random != TRUE) \ + TEST_FAIL("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \ + else \ + log_world("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \ } \ } @@ -61,6 +64,10 @@ var/number = backpack_contents[path] || 1 for (var/_ in 1 to number) if (!H.equip_to_slot_or_del(new path(H), ITEM_SLOT_BACKPACK, TRUE)) - TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") + if (outfit.random != TRUE) + TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") + else + log_world("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") + #undef CHECK_OUTFIT_SLOT diff --git a/code/modules/vehicles/cars/car.dm b/code/modules/vehicles/cars/car.dm index 6b53fa9a02c3..d3040f862863 100644 --- a/code/modules/vehicles/cars/car.dm +++ b/code/modules/vehicles/cars/car.dm @@ -80,7 +80,7 @@ if(occupant_amount() >= max_occupants) return FALSE var/atom/old_loc = loc - if(do_mob(forcer, M, get_enter_delay(M), extra_checks=CALLBACK(src, TYPE_PROC_REF(/obj/vehicle/sealed/car, is_car_stationary), old_loc))) + if(do_after(forcer, get_enter_delay(M), M, extra_checks=CALLBACK(src, TYPE_PROC_REF(/obj/vehicle/sealed/car, is_car_stationary), old_loc))) mob_forced_enter(M, silent) return TRUE return FALSE diff --git a/code/modules/vehicles/lavaboat.dm b/code/modules/vehicles/lavaboat.dm index 3c893b9bf8a8..547bac91a2f0 100644 --- a/code/modules/vehicles/lavaboat.dm +++ b/code/modules/vehicles/lavaboat.dm @@ -29,21 +29,6 @@ force = 12 w_class = WEIGHT_CLASS_NORMAL resistance_flags = LAVA_PROOF | FIRE_PROOF - -/datum/crafting_recipe/oar - name = "Goliath Bone Oar" - result = /obj/item/oar - reqs = list(/obj/item/stack/sheet/bone = 2) - time = 15 - category = CAT_PRIMAL - -/datum/crafting_recipe/boat - name = "Goliath Hide Boat" - result = /obj/vehicle/ridden/lavaboat - reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide = 3) - time = 50 - category = CAT_PRIMAL - //Dragon Boat diff --git a/code/modules/vehicles/sealed.dm b/code/modules/vehicles/sealed.dm index 6751ddfe3580..22b1eb42becb 100644 --- a/code/modules/vehicles/sealed.dm +++ b/code/modules/vehicles/sealed.dm @@ -29,7 +29,7 @@ return FALSE if(occupant_amount() >= max_occupants) return FALSE - if(do_after(M, get_enter_delay(M), FALSE, src, TRUE)) + if(do_after(M, get_enter_delay(M), src, progress = TRUE, timed_action_flags = IGNORE_HELD_ITEM)) mob_enter(M) return TRUE return FALSE diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 93fcacba45b1..4c97b3f7eaa2 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -47,6 +47,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "generic" layer = BELOW_OBJ_LAYER density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL verb_say = "beeps" verb_ask = "beeps" verb_exclaim = "beeps" diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm index 8a1c86cc9536..cb3cd0053d8a 100644 --- a/code/modules/vending/assist.dm +++ b/code/modules/vending/assist.dm @@ -10,8 +10,7 @@ /obj/item/stock_parts/manipulator = 3, /obj/item/stock_parts/micro_laser = 3, /obj/item/stock_parts/scanning_module = 3, - /obj/item/stock_parts/capacitor = 3) - contraband = list( + /obj/item/stock_parts/capacitor = 3, /obj/item/assembly/timer = 2, /obj/item/assembly/voice = 2, /obj/item/assembly/health = 2, diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index b1d85fb3fcbb..04ae257730f2 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -109,12 +109,9 @@ /obj/item/clothing/suit/changshan_blue = 1, /obj/item/clothing/suit/cheongsam_red = 1, /obj/item/clothing/suit/cheongsam_blue = 1, - /obj/item/gohei = 1) - contraband = list( + /obj/item/gohei = 1, /obj/item/clothing/suit/judgerobe = 1, /obj/item/clothing/head/powdered_wig = 1, - /obj/item/clothing/accessory/fan_mime_pin = 1, - /obj/item/clothing/accessory/fan_clown_pin = 1, /obj/item/gun/magic/wand/nothing = 2, /obj/item/clothing/glasses/sunglasses/garb = 2, /obj/item/clothing/glasses/blindfold = 1, diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm index 7dd0b6004ea7..3cff7d3c361d 100644 --- a/code/modules/vending/cigarette.dm +++ b/code/modules/vending/cigarette.dm @@ -11,19 +11,19 @@ /obj/item/storage/fancy/cigarettes/cigpack_robust = 3, /obj/item/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/storage/fancy/cigarettes/cigpack_midori = 3, + /obj/item/storage/fancy/cigarettes/dromedaryco = 3, + /obj/item/clothing/mask/vape = 5, /obj/item/storage/box/matches = 10, /obj/item/lighter/greyscale = 4, /obj/item/storage/fancy/rollingpapers = 5) - contraband = list( - /obj/item/clothing/mask/vape = 5, - /obj/item/clothing/mask/vape/cigar = 3) //WS edit - E-Cigars premium = list( /obj/item/storage/fancy/cigarettes/cigpack_robustgold = 3, - /obj/item/storage/box/gum/nicotine = 2, + /obj/item/storage/box/gum/nicotine = 3, /obj/item/lighter = 3, /obj/item/storage/fancy/cigarettes/cigars = 1, /obj/item/storage/fancy/cigarettes/cigars/havana = 1, - /obj/item/storage/fancy/cigarettes/cigars/cohiba = 1) + /obj/item/storage/fancy/cigarettes/cigars/cohiba = 1, + /obj/item/clothing/mask/vape/cigar = 3) refill_canister = /obj/item/vending_refill/cigarette default_price = 75 extra_price = 250 diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 8a7199968774..e9eef49a0e3a 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -104,19 +104,16 @@ /obj/item/clothing/suit/apron/purple_bartender = 2, /obj/item/clothing/under/rank/civilian/bartender/purple = 2, /obj/item/clothing/suit/toggle/suspenders/blue = 2, - /obj/item/clothing/suit/toggle/suspenders/gray = 2) - contraband = list( - /obj/item/clothing/under/syndicate/tacticool = 1, - /obj/item/clothing/under/syndicate/tacticool/skirt = 1, + /obj/item/clothing/suit/toggle/suspenders/gray = 2, + /obj/item/clothing/under/syndicate/tacticool = 2, + /obj/item/clothing/under/syndicate/tacticool/skirt = 2, /obj/item/clothing/mask/balaclava = 1, /obj/item/clothing/head/trapper = 1, /obj/item/storage/belt/fannypack/black = 2, /obj/item/clothing/suit/jacket/letterman_syndie = 1, /obj/item/clothing/under/costume/jabroni = 1, /obj/item/clothing/suit/vapeshirt = 1, - /obj/item/clothing/under/costume/geisha = 1, - /obj/item/clothing/under/rank/centcom/officer/replica = 1, - /obj/item/clothing/under/rank/centcom/officer_skirt/replica = 1) + /obj/item/clothing/under/costume/geisha = 1) premium = list( /obj/item/clothing/under/suit/checkered = 1, /obj/item/clothing/suit/jacket/leather = 1, diff --git a/code/modules/vending/coffee.dm b/code/modules/vending/coffee.dm index 3e45b431b16d..9c4851c134a5 100644 --- a/code/modules/vending/coffee.dm +++ b/code/modules/vending/coffee.dm @@ -7,11 +7,11 @@ products = list( /obj/item/reagent_containers/food/drinks/coffee = 6, /obj/item/reagent_containers/food/drinks/mug/tea = 6, - /obj/item/reagent_containers/food/drinks/mug/coco = 3) + /obj/item/reagent_containers/food/drinks/mug/coco = 3, + /obj/item/reagent_containers/food/drinks/ice = 6) premium = list( /obj/item/reagent_containers/food/drinks/cafelatte = 3, /obj/item/reagent_containers/food/drinks/soylatte = 3) - contraband = list(/obj/item/reagent_containers/food/drinks/ice = 12) refill_canister = /obj/item/vending_refill/coffee default_price = 45 extra_price = 150 diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm index 2ce937979e74..4a9f4a456eee 100644 --- a/code/modules/vending/cola.dm +++ b/code/modules/vending/cola.dm @@ -15,8 +15,7 @@ /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime = 10, /obj/item/reagent_containers/food/drinks/soda_cans/sol_dry = 10, /obj/item/reagent_containers/food/drinks/waterbottle = 10, - /obj/item/reagent_containers/food/drinks/soda_cans/efuel = 5) - contraband = list( + /obj/item/reagent_containers/food/drinks/soda_cans/efuel = 5, /obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko = 6, /obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6) premium = list( diff --git a/code/modules/vending/drinnerware.dm b/code/modules/vending/drinnerware.dm index 7ff7d80ddccd..5dbd8ea733db 100644 --- a/code/modules/vending/drinnerware.dm +++ b/code/modules/vending/drinnerware.dm @@ -17,11 +17,8 @@ /obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife = 2, /obj/item/kitchen/knife/pizza_cutter = 2, - /obj/item/book/granter/crafting_recipe/cooking_sweets_101 = 2) - contraband = list( - /obj/item/kitchen/rollingpin = 2, - /obj/item/kitchen/knife/butcher = 2, - /obj/item/shovel/spoon = 2) // ST - Only a spoonfull + /obj/item/book/granter/crafting_recipe/cooking_sweets_101 = 2, + /obj/item/kitchen/knife/butcher = 1) refill_canister = /obj/item/vending_refill/dinnerware default_price = 50 extra_price = 250 diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index 096bffb1adf7..fb096656c1c3 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -16,8 +16,8 @@ /obj/item/electronics/airalarm = 10, /obj/item/electronics/advanced_airlock_controller = 10, /obj/item/electronics/firealarm = 10, - /obj/item/electronics/firelock = 10) - contraband = list(/obj/item/stock_parts/cell/potato = 3) + /obj/item/electronics/firelock = 10, + /obj/item/stock_parts/cell/potato = 3) premium = list(/obj/item/storage/belt/utility = 3, /obj/item/construction/rcd/loaded = 2, /obj/item/storage/box/smart_metal_foam = 1) diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index d209c93eae8e..d27a1f6ffe6e 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -14,7 +14,6 @@ /obj/item/instrument/piano_synth/headphones = 4, /obj/item/camera = 3, /obj/item/dyespray = 3) - contraband = list(/obj/item/dice/fudge = 9) premium = list( /obj/item/melee/skateboard/pro = 3, /obj/item/melee/skateboard/hoverboard = 1) diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm index 1fff1bd03398..5a35a75a4495 100644 --- a/code/modules/vending/medical.dm +++ b/code/modules/vending/medical.dm @@ -27,15 +27,12 @@ /obj/item/reagent_containers/medigel/sterilizine = 1, /obj/item/sensor_device = 1, /obj/item/pinpointer/crew = 1) - contraband = list( - /obj/item/reagent_containers/pill/tox = 2, - /obj/item/reagent_containers/pill/morphine = 2, - /obj/item/reagent_containers/pill/charcoal = 4, - /obj/item/storage/box/hug/medical = 1) + contraband = list(/obj/item/reagent_containers/pill/tox = 2) premium = list( /obj/item/clothing/glasses/hud/health = 1, /obj/item/clothing/glasses/hud/health/prescription = 1, - /obj/item/shears = 1) + /obj/item/shears = 1, + /obj/item/storage/box/hug/medical = 1) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/medical diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm index cf0bca7c3bdb..dd498ffded07 100644 --- a/code/modules/vending/medical_wall.dm +++ b/code/modules/vending/medical_wall.dm @@ -11,11 +11,11 @@ /obj/item/reagent_containers/pill/charcoal = 1, /obj/item/reagent_containers/medigel/styptic = 1, /obj/item/reagent_containers/medigel/silver_sulf = 1, - /obj/item/reagent_containers/medigel/sterilizine = 1 + /obj/item/reagent_containers/medigel/sterilizine = 1, + /obj/item/reagent_containers/pill/morphine = 1 ) contraband = list( /obj/item/reagent_containers/pill/tox = 1, - /obj/item/reagent_containers/pill/morphine = 1, /obj/item/storage/box/gum/happiness = 1 ) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm index 899bbac5ea87..4d59628f5fd2 100644 --- a/code/modules/vending/megaseed.dm +++ b/code/modules/vending/megaseed.dm @@ -42,12 +42,12 @@ /obj/item/seeds/tower = 3, /obj/item/seeds/watermelon = 3, /obj/item/seeds/wheat = 3, - /obj/item/seeds/whitebeet = 3) + /obj/item/seeds/whitebeet = 3, + /obj/item/seeds/plump = 3) contraband = list(/obj/item/seeds/amanita = 2, /obj/item/seeds/glowshroom = 2, /obj/item/seeds/liberty = 2, /obj/item/seeds/nettle = 2, - /obj/item/seeds/plump = 2, /obj/item/seeds/reishi = 2, /obj/item/seeds/cannabis = 3, /obj/item/seeds/starthistle = 2, diff --git a/code/modules/vending/nutrimax.dm b/code/modules/vending/nutrimax.dm index 1849750d3fce..0aaa47461406 100644 --- a/code/modules/vending/nutrimax.dm +++ b/code/modules/vending/nutrimax.dm @@ -15,8 +15,7 @@ /obj/item/storage/bag/plants = 5, /obj/item/cultivator = 3, /obj/item/shovel/spade = 3, - /obj/item/plant_analyzer = 4) - contraband = list( + /obj/item/plant_analyzer = 4, /obj/item/reagent_containers/glass/bottle/ammonia = 10, /obj/item/reagent_containers/glass/bottle/diethylamine = 5) refill_canister = /obj/item/vending_refill/hydronutrients diff --git a/code/modules/vending/plasmaresearch.dm b/code/modules/vending/plasmaresearch.dm index 650d9878ad36..a638bfc81d8a 100644 --- a/code/modules/vending/plasmaresearch.dm +++ b/code/modules/vending/plasmaresearch.dm @@ -10,7 +10,7 @@ /obj/item/assembly/timer = 6, /obj/item/assembly/signaler = 6, /obj/item/assembly/prox_sensor = 6, - /obj/item/assembly/igniter = 6) - contraband = list(/obj/item/assembly/health = 3) + /obj/item/assembly/igniter = 6, + /obj/item/assembly/health = 3) default_price = 400 extra_price = 600 diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 0141967beff3..95afc6f2eb92 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -14,8 +14,7 @@ /obj/item/flashlight/seclite = 4, /obj/item/ammo_box/c9mm/rubbershot = 3, /obj/item/ammo_box/c9mm = 1, - /obj/item/stock_parts/cell/gun = 3) - contraband = list( + /obj/item/stock_parts/cell/gun = 3, /obj/item/clothing/glasses/sunglasses = 2) premium = list( /obj/item/storage/belt/security/webbing = 5, diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm index 0785df82f14d..d0130d7358fc 100644 --- a/code/modules/vending/snack.dm +++ b/code/modules/vending/snack.dm @@ -14,8 +14,7 @@ /obj/item/reagent_containers/food/snacks/no_raisin = 6, /obj/item/reagent_containers/food/drinks/dry_ramen = 3, /obj/item/storage/box/gum = 3, - /obj/item/reagent_containers/food/snacks/energybar = 6) - contraband = list( + /obj/item/reagent_containers/food/snacks/energybar = 6, /obj/item/reagent_containers/food/snacks/syndicake = 6, /obj/item/reagent_containers/food/snacks/candy/bronx = 1) refill_canister = /obj/item/vending_refill/snack diff --git a/code/modules/vending/sovietsoda.dm b/code/modules/vending/sovietsoda.dm index f9eff36e5e6c..213a3d01df0a 100644 --- a/code/modules/vending/sovietsoda.dm +++ b/code/modules/vending/sovietsoda.dm @@ -4,8 +4,9 @@ icon_state = "sovietsoda" light_mask = "soviet-light-mask" product_ads = "Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." - products = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/soda = 30) - contraband = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola = 20) + products = list( + /obj/item/reagent_containers/food/drinks/drinkingglass/filled/soda = 30, + /obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola = 20) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/sovietsoda default_price = 1 diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm index c86049ab75ef..8fefa1015536 100644 --- a/code/modules/vending/toys.dm +++ b/code/modules/vending/toys.dm @@ -16,11 +16,10 @@ /obj/item/toy/foamblade = 10, /obj/item/toy/balloon/syndicate = 10, /obj/item/clothing/suit/syndicatefake = 5, - /obj/item/clothing/head/syndicatefake = 5) - contraband = list( + /obj/item/clothing/head/syndicatefake = 5, /obj/item/gun/ballistic/shotgun/toy/crossbow = 10, - /obj/item/gun/ballistic/automatic/smg/c20r/toy = 10, - /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy = 10, + /obj/item/gun/ballistic/automatic/smg/c20r/toy = 5, + /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy = 5, /obj/item/toy/katana = 10, /obj/item/dualsaber/toy = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 933c54f64602..bbc53154aac6 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -417,7 +417,6 @@ /obj/item/storage/backpack/satchel/chem = 2, /obj/item/clothing/accessory/armband/engine = 4, /obj/item/storage/bag/chemistry = 2) - contraband = list(/obj/item/reagent_containers/spray/syndicate = 2) refill_canister = /obj/item/vending_refill/wardrobe/chem_wardrobe /obj/item/vending_refill/wardrobe/chem_wardrobe machine_name = "ChemDrobe" @@ -555,7 +554,7 @@ /obj/item/clothing/suit/armor/vest/bulletproof = 3, /obj/item/clothing/suit/armor/riot/clip = 3, - /obj/item/clothing/suit/space/hardsuit/security/independent/clip = 3, + /obj/item/clothing/suit/space/hardsuit/clip_patroller = 3, /obj/item/clothing/suit/space/hardsuit/clip_spotter = 3, /obj/item/clothing/head/helmet/bulletproof/x11/clip = 3, diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm index 6e75c75c7eae..98a5331b2744 100644 --- a/code/modules/vending/youtool.dm +++ b/code/modules/vending/youtool.dm @@ -15,8 +15,9 @@ /obj/item/flashlight/glowstick = 3, /obj/item/flashlight/glowstick/red = 3, /obj/item/flashlight = 3, - /obj/item/clothing/ears/earmuffs = 1) - contraband = list(/obj/item/clothing/gloves/color/fyellow = 2) + /obj/item/clothing/ears/earmuffs = 1, + /obj/item/clothing/gloves/color/fyellow = 2 + ) premium = list(/obj/item/storage/belt/utility = 2, /obj/item/multitool = 2, /obj/item/weldingtool/hugetank = 1, diff --git a/html/changelogs/archive/2024-04.yml b/html/changelogs/archive/2024-04.yml index ba2c25540f6b..ac70dad771a3 100644 --- a/html/changelogs/archive/2024-04.yml +++ b/html/changelogs/archive/2024-04.yml @@ -137,3 +137,10 @@ - rscdel: Removed clumsy checks on guns cuddleandtea: - admin: adds color type to variables +2024-04-25: + Gristlebee: + - bugfix: Model H and Prototype Gauss Rifle mags are no longer invisible +2024-04-27: + Sadhorizon: + - tweak: Replaced standard syndicate outfits with NGR outfits on the Hyena. + - rscadd: Added NGR-specific CE and Assistant outfits. diff --git a/html/changelogs/archive/2024-05.yml b/html/changelogs/archive/2024-05.yml new file mode 100644 index 000000000000..9e6c28996774 --- /dev/null +++ b/html/changelogs/archive/2024-05.yml @@ -0,0 +1,186 @@ +2024-05-02: + thgvr: + - imageadd: Nanotrasen outfits have a new coat of paint +2024-05-04: + Apogee-dev: + - bugfix: fixed missing object descriptions on nanotrasen uniforms +2024-05-06: + Anticept: + - tweak: intercomms, widebands, and headsets default speaker on again. Handhelds + remain off by default. + - balance: pure soulus dust now makes 20u per reaction, and system cleaner is not + required. + Martinpachu: + - balance: The detective's revolver is now priced at 600 credits instead of 1000. + - balance: The detective's revolver size is now Small. + - rscadd: The Candor may now be bought from the outpost. + PositiveEntropy: + - rscdel: Removes the Arrhythmic Knife. + SomeguyManperson: + - tweak: match rounds will no longer consider the person firing them as a viable + target when ricocheting + SuhEugene: + - admin: made invisimin admins invisible for HUDs and ghosts + Sun-Soaked: + - bugfix: weird uncertainty around the name of EXOCOM. EXOCON is not real. +2024-05-09: + PositiveEntropy: + - rscadd: The HP Firebrand, HP Scout, HP Contender, .38 Derringer and Double Barrel + Shotgun are now purchasable in the outpost store. + - bugfix: The Disposable Gun crate is now granularized. + - rscdel: The Scarborough Revolver is no longer purchasable in the outpost store. +2024-05-10: + meemofcourse: + - rscadd: Helmets now have a small, two-item storage. You can put goggles in there, + and it might overlay them. +2024-05-14: + Gristlebee: + - rscadd: Elzu rooting + - tweak: Max age for elzu characters can be 300. + Martinpachu: + - tweak: Riot shield crates now contain only one shield but are priced at 600 credits. + MassiveMen: + - rscadd: Hawaiian Shirt is now in loadout + - tweak: Hawaiian Shirt is now Floral Shirt + - tweak: New item description teehee + SomeguyManperson: + - bugfix: static anomalies can now be safely approached if mindshielded, wearing + a research scanner, or deaf, not all three at the same time +2024-05-16: + FleetingExpertise: + - rscadd: Added new sprites for the plunger, rolling pin and push broom by FleetingExpertise + - rscadd: Most knifes in the game have been resprited! +2024-05-18: + spookypineapple: + - imageadd: Snowy grass, suit storage units, bookcases, and chem machines have been + resprited +2024-05-20: + MarkSuckerberg: + - rscadd: Autowiki generated reagents list page +2024-05-21: + Apogee-dev: + - tweak: Made the Delta more obviously affiliated with N+S Logistics + FalloutFalcon: + - balance: some xeno stuff needed nerfs + - bugfix: fixed a bunch of xeno issues + - rscdel: deleted some bad recipes like a golden horn, black carpet, aitater, and + legion staff + - code_imp: organized recipe files + Gristlebee: + - rscadd: A bunch of new items for the Black Market catalogue + - rscadd: Two new Black Market Tabs, Explosives and Emergency + - rscadd: Sawn off Illestren typepath + - rscdel: Black Market Teleportation + - rscdel: Space Ninja mask and Clown Tears from Black Market + - tweak: Black Market Uplink uses a micro laser instead of an ansible for crafting + - tweak: Black Market descriptions and examines + - tweak: Black Market Uplinks link directly to a specific LTSRBT + - balance: Black Market item price and stock adjusted + - balance: LTSRBT is faster + - code_imp: pair_item var for Black Market items + Martinpachu: + - rscdel: Removed the bible from loadout, as well as the religion and deity names + because god is dead. Clown and mime names too. + - balance: The civilian etherbor weapons have been made larger (the SG-8 being normal + sized and the BG-12 being bulky sized) + Sadhorizon: + - tweak: Sarathi max age is now 175. + SomeguyManperson: + - rscadd: you can now attach plungers to people by hand, rather than throwing + Sun-Soaked: + - rscadd: Volumetric storage on backpacks. + - rscadd: trash bags now have more storage space, but only make a small amount of + their contents accessible at any given time. + Zevotech: + - rscadd: Remaps lavaland_surface_biodome_winter.dmm + - rscdel: Removes the "Undead Eskimo" mob + generalthrax: + - rscadd: Add mood-boosting vivifier cybernetic implants to boost your mood to Cybernetic + Implants node. Preservation of the sense of taste not included + - rscadd: Adds a hacked variant of the above (not yet obtainable) to give terrible + mood to those installed with it! + meemofcourse: + - rscadd: Tortuga-class. + - rscadd: Brawler-class. + - rscdel: Ember-class. + - rscdel: Scar suit. + - tweak: Frontiersmen outfits start with less stuff. + retlaw34: + - rscdel: Vela-class, is this even player facing? + - rscadd: Variants of clip outfits + - rscdel: reinforced trapper hat + - rscadd: resprites the indie sec suit and it's clip variant + - tweak: Some extremely minor code tweaks + - rscadd: adds support to make adding species variants easier, jesus christ it was + bad before. + - rscadd: snouted variant support for sprites +2024-05-22: + Zevotech: + - rscadd: rockplanet_shippingdock.dmm and associated code +2024-05-25: + FalloutFalcon: + - rscdel: Removed comms consoles from ruins and ships + PositiveEntropy: + - imageadd: Computers now look sleeker! + SomeguyManperson: + - bugfix: mech laser cargo crate is no longer unbuyable + Zevotech: + - rscdel: Plastic flaps no longer block atmos +2024-05-28: + Anticept: + - tweak: All pacman and its variants now have the same sheet burn times. Superpacmans + are no longer the vastly inferior generator. + Gristlebee: + - rscadd: Generic Ammo Boxes, printable in the autolathe + - rscadd: Ammo cans are printable in the autolathe + - bugfix: Ammo boxes sometimes not properly updating their materials + - rscdel: Elzu can no longer change their color with the multitool or emag. + Martinpachu: + - rscadd: Double bedsheets, fit for double beds, are now craftable via cloth. + Mirag19: + - bugfix: Fix revolver ammo check + Skies-Of-Blue: + - bugfix: fbp and rilena hoodies now work as intended + SomeguyManperson: + - bugfix: melee hermits now pull from the "survivor" loot variant rather than no + loot variant + - bugfix: hermits can no longer commit mitosis + - tweak: hermit loot has been compactified, defaults are now declared in the object + rather than initialize, and variant-specific loot now uses a switch statement + - bugfix: all hermits now have pocket loot randomized as intended + - tweak: reduces the cash bundle melee hermits can drop from a medium random (500-3000) + to small random (100-500) bundle since they are quite common + - bugfix: prismwine's burn resistance can no longer end up stacking + Spyroshark, Sun-Soaked: + - rscadd: A movable physics subsystem, deployed using a component. + - rscadd: Bullet casings now drop using movable physics + - code_imp: ports NO_PIXEL_RANDOM_DROP from TG. + Thera-Pissed: + - tweak: SSUs draw power to decontaminate + - balance: lights no longer take 60% of a ships power, machines use more to account + for this. + - code_imp: added standardized defines for power usage + Zevotech: + - rscdel: Clown and mime fan quirks have been removed + - rscdel: Removes the clown and mime fan pins +2024-05-29: + Apogee-dev: + - tweak: Syndicate mobs have been renamed to Ramzi Clique mobs. New sprites will + come later. + Gristlebee: + - rscadd: Holopads now display the location of the last holopad that called them + on examine. + - code_imp: Span macros for hologram.dm + - rscadd: Autolathe can print holofield controllers. + - rscadd: You can sync blastdoors and holofields to a controller in a button with + a multitool + - code_imp: span macros for blast doors, buttons and holofields +2024-05-30: + PositiveEntropy: + - rscadd: Solarian Marine Bi-ologists now have proper representation in the form + of a cute cloak! +2024-05-31: + Gristlebee: + - bugfix: Auto unloading for gate loaded revolvers + INFRARED_BARON, PositiveEntropy: + - imageadd: Resprites nearly every mech! diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml new file mode 100644 index 000000000000..b6d113723f62 --- /dev/null +++ b/html/changelogs/archive/2024-06.yml @@ -0,0 +1,120 @@ +2024-06-01: + FalloutFalcon: + - rscadd: Added new more varied legion corpses + - rscdel: Removed lot of the crappy legion corpses + - balance: rebalanced most of the old legion corpses + - refactor: moved most legion corpse loot behavior to outfits + - tweak: tweaked the new ore + Gristlebee: + - rscadd: Suit Storage Unit construction + - rscadd: Added suit storage unit circuit boards to industrial engineering tech + - tweak: Suit storage unit examines + - tweak: span class to span macros in suit_storage.dm + INFRARED_BARON: + - imageadd: All mechs have been successfully resprited, including the Mauler, Marauder + and Seraph now! + Skies-Of-Blue: + - tweak: mugs referencing an ancient terran empire have been confiscated by the + confederation. Please enjoy your complementary, generic mug in compensation + - bugfix: rds based delusions now pass without the player having to relog, thank + god + - bugfix: rds can once again be treated with mindbreaker toxin (hopefully) + - tweak: the pool of possible delusions has been changed to better reflect shiptest's + narrative + - rscadd: a base ramzi sprite to simple_human.dmi to be used in the changed delusion + pool + - rscdel: chat warning message for rds users not to grief. Just be cool about it, + okay? + SomeguyManperson: + - bugfix: fueled thruster throttling now works right + Sun-Soaked: + - rscadd: World icon element. + - rscadd: World icons for combat knives. + thgvr: + - rscadd: Roundstart ships no longer spawn +2024-06-02: + Skies-Of-Blue: + - rscdel: removes the roundjoin "welcome to /tg/ station" audio clip + SomeguyManperson: + - bugfix: black market secret documents are no longer default documents + - balance: the shoddy survivor suits found on hermits are now actually worse than + the EXOCOM explorer suits +2024-06-03: + Apogee-dev: + - balance: security belts and webbings can no longer store bulk ammo boxes, only + magazines + - tweak: Ship-specific access restrictions have been enabled. + - tweak: Pirate ships no longer spawn docked to the outpost. + FalloutFalcon: + - bugfix: Fixed plant analyzer examine block styling + - tweak: rewrites trickwine for brewers + - rscadd: You can trip landmines with a well placed throw + - rscadd: New interaction with throwing things at bottles, lights, and bear traps + - bugfix: The end of finalize no longer gets called twice and targeting items seems + like an intended behavior that was lost + - rscdel: Removed goofball legion disease + - refactor: spawning guns without mags are handled with a define + - refactor: refactored hostile humans + - bugfix: fixed free smart fridge circuit board from drying rack + - rscadd: Smokers rejoice! You can now pick your favorite type of nicotine delivery + system. + - rscadd: Smokers have a choice between most brands of cigarette, cigars, a vape, + or a pipe! + - code_imp: sorted code owner stuff and added me to some files + - bugfix: fixed create and destroy test fail + - tweak: tweaked id card examine information and formating + - bugfix: human examine bug when middle aged + - rscdel: Removed moths getting one shot by a flyswatter + - code_imp: camera/autoname/LateInitialize() optimization + - tweak: granularizes a handful of tool and machine supply packs! + - admin: Improved the silly little menu, HA HA I have messed up your muscle memory!! + u + Gristlebee: + - tweak: Defib crate now contains a single defib, priced 750 + - tweak: Granularizes mech equipment + - tweak: mech cargo pack descs + - rscadd: Asteroid ore veins + Hardly: + - rscadd: Added some style to the flavor text popup + - bugfix: Fixed flavor text not accepting certain characters or new lines + - tweak: Changed up Flavor Text editing text a bit + - tweak: Flavor text's max length has been chopped from 4096 to 1024 + Sadhorizon: + - tweak: Moved most of contraband items out of vendor contraband. + - rscadd: Added DromaderyCo packets to the cigarette vendors. + - tweak: Increased nicotine amount to three in the cigarette vendors. + Skies-Of-Blue: + - balance: chemical mindbreaker is now ten times as potent! Be gay, do crime, and + hallucinate in the process + SomeguyManperson: + - bugfix: hallucination anomalies now trigger if you aren't wearing proper protection + (as opposed to only triggering if you are) + - bugfix: gun sawing can now only be done with proper equipment (usually a saw)) + - bugfix: bandoliers now hold the correct amount of bullets (several more) + - balance: the brimstone can now be pumped faster. Enjoy your rilena. + Sun-Soaked: + - bugfix: shoutgun casing bounce sfx now plays as intended. oopsies. + - rscdel: Removes sexy clown costumes from spawners + - config: tweak option removed from changelog template + Zevotech: + - rscdel: Removed nonfunctioning coffee machines and their cargo packs + - rscadd: Adds the Elzuose color salve, a product that allows Elzuose to change + their glow color upon application. + '[Watermelon914](https://github.com/Watermelon914)': + - code_imp: ports little itty bitty sendsignal optimization from tg + meemofcourse: + - balance: The Elder's Illesterns and Arrows are now factory-variant. + - bugfix: The Runner should be able to dock now. + rkz, Benjamin(benbot16), Rohesie, Qustinnus, jlsnow301: + - refactor: refactored do_afters to use timed_action_flags for unique args + - code_imp: centralized do_mob and do_atom into do_after +2024-06-05: + FalloutFalcon: + - rscdel: Trophies can no longer be used in crushers + - bugfix: fixed CODEOWNERS, i hope + SomeguyManperson: + - bugfix: The shadow's gunslinger buff now properly provides an AP bonus + - balance: Rollerbeds stop broken bone damage ticks from occurring while buckled +2024-06-06: + SomeguyManperson: + - bugfix: melee hermits have had their immortal snail deals revoked diff --git a/icons/effects/ore_visuals.dmi b/icons/effects/ore_visuals.dmi index 1353a2d814ad..b64b8f0427e2 100644 Binary files a/icons/effects/ore_visuals.dmi and b/icons/effects/ore_visuals.dmi differ diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index 1e03d316c2e3..60ada01078d7 100644 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/icons/hud/screen_gen.dmi b/icons/hud/screen_gen.dmi index cad55a6ea290..b26bc7375dbb 100644 Binary files a/icons/hud/screen_gen.dmi and b/icons/hud/screen_gen.dmi differ diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi index 08f0c94505ee..b894d9191225 100644 Binary files a/icons/mecha/mecha.dmi and b/icons/mecha/mecha.dmi differ diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index 398d4589ad71..f334af20104e 100644 Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi index 6b27c56c8b35..bc048fc920c9 100644 Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ diff --git a/icons/mob/clothing/faction/clip/head.dmi b/icons/mob/clothing/faction/clip/head.dmi index 2122a9a2f328..71edbf436e96 100644 Binary files a/icons/mob/clothing/faction/clip/head.dmi and b/icons/mob/clothing/faction/clip/head.dmi differ diff --git a/icons/mob/clothing/faction/clip/mask.dmi b/icons/mob/clothing/faction/clip/mask.dmi index a46424e63096..81e70c7f036f 100644 Binary files a/icons/mob/clothing/faction/clip/mask.dmi and b/icons/mob/clothing/faction/clip/mask.dmi differ diff --git a/icons/mob/clothing/faction/clip/suits.dmi b/icons/mob/clothing/faction/clip/suits.dmi index f7a64dc8b320..785040d022fe 100644 Binary files a/icons/mob/clothing/faction/clip/suits.dmi and b/icons/mob/clothing/faction/clip/suits.dmi differ diff --git a/icons/mob/clothing/faction/clip/uniforms.dmi b/icons/mob/clothing/faction/clip/uniforms.dmi index 71ad9e1b6a3e..436c00d77554 100644 Binary files a/icons/mob/clothing/faction/clip/uniforms.dmi and b/icons/mob/clothing/faction/clip/uniforms.dmi differ diff --git a/icons/mob/clothing/faction/clip/vox.dmi b/icons/mob/clothing/faction/clip/vox.dmi new file mode 100644 index 000000000000..882e41864ea0 Binary files /dev/null and b/icons/mob/clothing/faction/clip/vox.dmi differ diff --git a/icons/mob/clothing/faction/nanotrasen/back.dmi b/icons/mob/clothing/faction/nanotrasen/back.dmi new file mode 100644 index 000000000000..37224655d088 Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/back.dmi differ diff --git a/icons/mob/clothing/faction/nanotrasen/belt.dmi b/icons/mob/clothing/faction/nanotrasen/belt.dmi new file mode 100644 index 000000000000..17b681a959af Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/belt.dmi differ diff --git a/icons/mob/clothing/faction/nanotrasen/feet.dmi b/icons/mob/clothing/faction/nanotrasen/feet.dmi new file mode 100644 index 000000000000..71bb4a38f372 Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/feet.dmi differ diff --git a/icons/mob/clothing/faction/nanotrasen/hands.dmi b/icons/mob/clothing/faction/nanotrasen/hands.dmi new file mode 100644 index 000000000000..37224655d088 Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/hands.dmi differ diff --git a/icons/mob/clothing/faction/nanotrasen/head.dmi b/icons/mob/clothing/faction/nanotrasen/head.dmi new file mode 100644 index 000000000000..41aa213cec89 Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/head.dmi differ diff --git a/icons/mob/clothing/faction/nanotrasen/neck.dmi b/icons/mob/clothing/faction/nanotrasen/neck.dmi new file mode 100644 index 000000000000..21a4c3992681 Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/neck.dmi differ diff --git a/icons/mob/clothing/faction/nanotrasen/suits.dmi b/icons/mob/clothing/faction/nanotrasen/suits.dmi new file mode 100644 index 000000000000..279485b7e86e Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/suits.dmi differ diff --git a/icons/mob/clothing/faction/nanotrasen/uniforms.dmi b/icons/mob/clothing/faction/nanotrasen/uniforms.dmi new file mode 100644 index 000000000000..ddad36218b5f Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/uniforms.dmi differ diff --git a/icons/mob/clothing/faction/ngr/belt.dmi b/icons/mob/clothing/faction/ngr/belt.dmi new file mode 100644 index 000000000000..5ec3ffa92932 Binary files /dev/null and b/icons/mob/clothing/faction/ngr/belt.dmi differ diff --git a/icons/mob/clothing/faction/ngr/eyes.dmi b/icons/mob/clothing/faction/ngr/eyes.dmi new file mode 100644 index 000000000000..197e2d68c9cd Binary files /dev/null and b/icons/mob/clothing/faction/ngr/eyes.dmi differ diff --git a/icons/mob/clothing/faction/ngr/head.dmi b/icons/mob/clothing/faction/ngr/head.dmi new file mode 100644 index 000000000000..08af6ee9ba08 Binary files /dev/null and b/icons/mob/clothing/faction/ngr/head.dmi differ diff --git a/icons/mob/clothing/faction/ngr/mask.dmi b/icons/mob/clothing/faction/ngr/mask.dmi new file mode 100644 index 000000000000..0baead0a39b1 Binary files /dev/null and b/icons/mob/clothing/faction/ngr/mask.dmi differ diff --git a/icons/mob/clothing/faction/ngr/neck.dmi b/icons/mob/clothing/faction/ngr/neck.dmi new file mode 100644 index 000000000000..9f8d3855b059 Binary files /dev/null and b/icons/mob/clothing/faction/ngr/neck.dmi differ diff --git a/icons/mob/clothing/faction/ngr/suits.dmi b/icons/mob/clothing/faction/ngr/suits.dmi new file mode 100644 index 000000000000..ac4fceb11cae Binary files /dev/null and b/icons/mob/clothing/faction/ngr/suits.dmi differ diff --git a/icons/mob/clothing/faction/ngr/uniforms.dmi b/icons/mob/clothing/faction/ngr/uniforms.dmi new file mode 100644 index 000000000000..9eccbe4bfe54 Binary files /dev/null and b/icons/mob/clothing/faction/ngr/uniforms.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 0cef6fb347d0..721de12b60b6 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/head/armor.dmi b/icons/mob/clothing/head/armor.dmi new file mode 100644 index 000000000000..4cec91ad0110 Binary files /dev/null and b/icons/mob/clothing/head/armor.dmi differ diff --git a/icons/mob/clothing/head/spacesuits.dmi b/icons/mob/clothing/head/spacesuits.dmi new file mode 100644 index 000000000000..12923a0e281c Binary files /dev/null and b/icons/mob/clothing/head/spacesuits.dmi differ diff --git a/icons/mob/clothing/helmet_overlays.dmi b/icons/mob/clothing/helmet_overlays.dmi new file mode 100644 index 000000000000..1c41c357a42a Binary files /dev/null and b/icons/mob/clothing/helmet_overlays.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index d705fb48c01f..2b54aa38a584 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index 9443ebfbc615..a22e958effd8 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/clothing/suits/armor.dmi b/icons/mob/clothing/suits/armor.dmi index 5c13c3f615ea..d64a4cbbf04f 100644 Binary files a/icons/mob/clothing/suits/armor.dmi and b/icons/mob/clothing/suits/armor.dmi differ diff --git a/icons/mob/clothing/suits/spacesuits.dmi b/icons/mob/clothing/suits/spacesuits.dmi index 2876cd8cdfed..ee9896871a91 100644 Binary files a/icons/mob/clothing/suits/spacesuits.dmi and b/icons/mob/clothing/suits/spacesuits.dmi differ diff --git a/icons/mob/clothing/under/command.dmi b/icons/mob/clothing/under/command.dmi index 9e62d273cc3d..6ed86df85dab 100644 Binary files a/icons/mob/clothing/under/command.dmi and b/icons/mob/clothing/under/command.dmi differ diff --git a/icons/mob/clothing/under/medical.dmi b/icons/mob/clothing/under/medical.dmi index f33ff2da88f2..0032f9fc2ec8 100644 Binary files a/icons/mob/clothing/under/medical.dmi and b/icons/mob/clothing/under/medical.dmi differ diff --git a/icons/mob/inhands/equipment/custodial_lefthand.dmi b/icons/mob/inhands/equipment/custodial_lefthand.dmi index 2c9f34af2e1d..9d7b64b16d52 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 f166ba6076bd..cc411eb21963 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/inhands/equipment/kitchen_lefthand.dmi b/icons/mob/inhands/equipment/kitchen_lefthand.dmi index 428960e90086..d60c9bf8f476 100644 Binary files a/icons/mob/inhands/equipment/kitchen_lefthand.dmi and b/icons/mob/inhands/equipment/kitchen_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/kitchen_righthand.dmi b/icons/mob/inhands/equipment/kitchen_righthand.dmi index f0c1682b68ed..b0a0f6c475bd 100644 Binary files a/icons/mob/inhands/equipment/kitchen_righthand.dmi and b/icons/mob/inhands/equipment/kitchen_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/tools_lefthand.dmi b/icons/mob/inhands/equipment/tools_lefthand.dmi index 7d66b946aa1f..772b67e7449d 100644 Binary files a/icons/mob/inhands/equipment/tools_lefthand.dmi and b/icons/mob/inhands/equipment/tools_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/tools_righthand.dmi b/icons/mob/inhands/equipment/tools_righthand.dmi index 1b5a50042923..f48c4df6895a 100644 Binary files a/icons/mob/inhands/equipment/tools_righthand.dmi and b/icons/mob/inhands/equipment/tools_righthand.dmi differ diff --git a/icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi b/icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi new file mode 100644 index 000000000000..1843cefb3898 Binary files /dev/null and b/icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi differ diff --git a/icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi b/icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi new file mode 100644 index 000000000000..25fa251955c1 Binary files /dev/null and b/icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi differ diff --git a/icons/mob/inhands/misc/sheets_lefthand.dmi b/icons/mob/inhands/misc/sheets_lefthand.dmi index 8a5431217705..4d7c351d35f9 100644 Binary files a/icons/mob/inhands/misc/sheets_lefthand.dmi and b/icons/mob/inhands/misc/sheets_lefthand.dmi differ diff --git a/icons/mob/inhands/misc/sheets_righthand.dmi b/icons/mob/inhands/misc/sheets_righthand.dmi index 24256299f2e8..c19a179e689b 100644 Binary files a/icons/mob/inhands/misc/sheets_righthand.dmi and b/icons/mob/inhands/misc/sheets_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index ef1b09fccc53..d356f95fd272 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index 827bd71ad50e..b69fb6ff8f74 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/knifes_lefthand.dmi b/icons/mob/inhands/weapons/knifes_lefthand.dmi new file mode 100644 index 000000000000..01f5fd3185c9 Binary files /dev/null and b/icons/mob/inhands/weapons/knifes_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/knifes_righthand.dmi b/icons/mob/inhands/weapons/knifes_righthand.dmi new file mode 100644 index 000000000000..d9803bd40a6e Binary files /dev/null and b/icons/mob/inhands/weapons/knifes_righthand.dmi differ diff --git a/icons/mob/simple_human.dmi b/icons/mob/simple_human.dmi index 8cbc0f841bcb..133544acc999 100644 Binary files a/icons/mob/simple_human.dmi and b/icons/mob/simple_human.dmi differ diff --git a/icons/mob/species/kepori/onmob_feet_kepori.dmi b/icons/mob/species/kepori/onmob_feet_kepori.dmi index f352a422378a..7af39a1f676d 100644 Binary files a/icons/mob/species/kepori/onmob_feet_kepori.dmi and b/icons/mob/species/kepori/onmob_feet_kepori.dmi differ diff --git a/icons/mob/species/misc/digitigrade.dmi b/icons/mob/species/misc/digitigrade.dmi index 57d70696b850..8736b8057f14 100644 Binary files a/icons/mob/species/misc/digitigrade.dmi and b/icons/mob/species/misc/digitigrade.dmi differ diff --git a/icons/mob/species/misc/digitigrade_shoes.dmi b/icons/mob/species/misc/digitigrade_shoes.dmi index 9ad6cc1827ed..9d08980b1e58 100644 Binary files a/icons/mob/species/misc/digitigrade_shoes.dmi and b/icons/mob/species/misc/digitigrade_shoes.dmi differ diff --git a/icons/mob/species/misc/digitigrade_suits.dmi b/icons/mob/species/misc/digitigrade_suits.dmi index 31dd9ad9c8e6..8bdb115b0370 100644 Binary files a/icons/mob/species/misc/digitigrade_suits.dmi and b/icons/mob/species/misc/digitigrade_suits.dmi differ diff --git a/icons/mob/species/vox/onmob_back_vox.dmi b/icons/mob/species/vox/onmob_back_vox.dmi index d8b23da46543..953ff24a290e 100644 Binary files a/icons/mob/species/vox/onmob_back_vox.dmi and b/icons/mob/species/vox/onmob_back_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_feet_vox.dmi b/icons/mob/species/vox/onmob_feet_vox.dmi index fc17db0fc122..0b06074851aa 100644 Binary files a/icons/mob/species/vox/onmob_feet_vox.dmi and b/icons/mob/species/vox/onmob_feet_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_hands_vox.dmi b/icons/mob/species/vox/onmob_hands_vox.dmi index e1527c62b702..ff5c1a11df61 100644 Binary files a/icons/mob/species/vox/onmob_hands_vox.dmi and b/icons/mob/species/vox/onmob_hands_vox.dmi differ diff --git a/icons/mob/species/vox/onmob_suit_vox.dmi b/icons/mob/species/vox/onmob_suit_vox.dmi index 298f46032ab1..7b2ee1c8d1c9 100644 Binary files a/icons/mob/species/vox/onmob_suit_vox.dmi and b/icons/mob/species/vox/onmob_suit_vox.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 8bbcb7817714..6fac77253d60 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi deleted file mode 100644 index 2dd57cfc6237..000000000000 Binary files a/icons/obj/chemical.dmi and /dev/null differ diff --git a/icons/obj/chemical/beakers.dmi b/icons/obj/chemical/beakers.dmi new file mode 100644 index 000000000000..db43d392960d Binary files /dev/null and b/icons/obj/chemical/beakers.dmi differ diff --git a/icons/obj/Chem_jug.dmi b/icons/obj/chemical/chem_jug.dmi similarity index 100% rename from icons/obj/Chem_jug.dmi rename to icons/obj/chemical/chem_jug.dmi diff --git a/icons/obj/chemical/chem_machines.dmi b/icons/obj/chemical/chem_machines.dmi new file mode 100644 index 000000000000..09e41e9f6ac4 Binary files /dev/null and b/icons/obj/chemical/chem_machines.dmi differ diff --git a/icons/obj/chemical/grenade.dmi b/icons/obj/chemical/grenade.dmi new file mode 100644 index 000000000000..af748c687089 Binary files /dev/null and b/icons/obj/chemical/grenade.dmi differ diff --git a/icons/obj/chemical/hypovial.dmi b/icons/obj/chemical/hypovial.dmi new file mode 100644 index 000000000000..608af9f77bb3 Binary files /dev/null and b/icons/obj/chemical/hypovial.dmi differ diff --git a/icons/obj/chemical/medicine.dmi b/icons/obj/chemical/medicine.dmi new file mode 100644 index 000000000000..34b332d0178f Binary files /dev/null and b/icons/obj/chemical/medicine.dmi differ diff --git a/icons/obj/chemical/misc.dmi b/icons/obj/chemical/misc.dmi new file mode 100644 index 000000000000..4afacabfe286 Binary files /dev/null and b/icons/obj/chemical/misc.dmi differ diff --git a/icons/obj/chemical/mortar.dmi b/icons/obj/chemical/mortar.dmi new file mode 100644 index 000000000000..e47543454f9d Binary files /dev/null and b/icons/obj/chemical/mortar.dmi differ diff --git a/icons/obj/clothing/cloaks.dmi b/icons/obj/clothing/cloaks.dmi index 48f09da9a178..4e863875c47f 100644 Binary files a/icons/obj/clothing/cloaks.dmi and b/icons/obj/clothing/cloaks.dmi differ diff --git a/icons/obj/clothing/faction/clip/head.dmi b/icons/obj/clothing/faction/clip/head.dmi index 3982f324b9a2..b98ec00ea8e8 100644 Binary files a/icons/obj/clothing/faction/clip/head.dmi and b/icons/obj/clothing/faction/clip/head.dmi differ diff --git a/icons/obj/clothing/faction/clip/suits.dmi b/icons/obj/clothing/faction/clip/suits.dmi index 16390028fee7..81e6ee001a2b 100644 Binary files a/icons/obj/clothing/faction/clip/suits.dmi and b/icons/obj/clothing/faction/clip/suits.dmi differ diff --git a/icons/obj/clothing/faction/nanotrasen/head.dmi b/icons/obj/clothing/faction/nanotrasen/head.dmi new file mode 100644 index 000000000000..f1de235c57f5 Binary files /dev/null and b/icons/obj/clothing/faction/nanotrasen/head.dmi differ diff --git a/icons/obj/clothing/faction/nanotrasen/neck.dmi b/icons/obj/clothing/faction/nanotrasen/neck.dmi new file mode 100644 index 000000000000..ff9e1c4e77b7 Binary files /dev/null and b/icons/obj/clothing/faction/nanotrasen/neck.dmi differ diff --git a/icons/obj/clothing/faction/nanotrasen/suits.dmi b/icons/obj/clothing/faction/nanotrasen/suits.dmi new file mode 100644 index 000000000000..cc87542cf6c7 Binary files /dev/null and b/icons/obj/clothing/faction/nanotrasen/suits.dmi differ diff --git a/icons/obj/clothing/faction/nanotrasen/uniforms.dmi b/icons/obj/clothing/faction/nanotrasen/uniforms.dmi new file mode 100644 index 000000000000..fb4bd1b11c04 Binary files /dev/null and b/icons/obj/clothing/faction/nanotrasen/uniforms.dmi differ diff --git a/icons/obj/clothing/faction/ngr/belt.dmi b/icons/obj/clothing/faction/ngr/belt.dmi new file mode 100644 index 000000000000..d88e67d332ba Binary files /dev/null and b/icons/obj/clothing/faction/ngr/belt.dmi differ diff --git a/icons/obj/clothing/faction/ngr/eyes.dmi b/icons/obj/clothing/faction/ngr/eyes.dmi new file mode 100644 index 000000000000..8359963e7212 Binary files /dev/null and b/icons/obj/clothing/faction/ngr/eyes.dmi differ diff --git a/icons/obj/clothing/faction/ngr/head.dmi b/icons/obj/clothing/faction/ngr/head.dmi new file mode 100644 index 000000000000..822766336620 Binary files /dev/null and b/icons/obj/clothing/faction/ngr/head.dmi differ diff --git a/icons/obj/clothing/faction/ngr/mask.dmi b/icons/obj/clothing/faction/ngr/mask.dmi new file mode 100644 index 000000000000..c867f6f569d7 Binary files /dev/null and b/icons/obj/clothing/faction/ngr/mask.dmi differ diff --git a/icons/obj/clothing/faction/ngr/neck.dmi b/icons/obj/clothing/faction/ngr/neck.dmi new file mode 100644 index 000000000000..3da79f8da04b Binary files /dev/null and b/icons/obj/clothing/faction/ngr/neck.dmi differ diff --git a/icons/obj/clothing/faction/ngr/suits.dmi b/icons/obj/clothing/faction/ngr/suits.dmi new file mode 100644 index 000000000000..49344c553e03 Binary files /dev/null and b/icons/obj/clothing/faction/ngr/suits.dmi differ diff --git a/icons/obj/clothing/faction/ngr/uniforms.dmi b/icons/obj/clothing/faction/ngr/uniforms.dmi new file mode 100644 index 000000000000..e1b5e1faf5e8 Binary files /dev/null and b/icons/obj/clothing/faction/ngr/uniforms.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index a2e35c6c5070..fb23d4bc2afe 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/head/armor.dmi b/icons/obj/clothing/head/armor.dmi new file mode 100644 index 000000000000..c6792be933fc Binary files /dev/null and b/icons/obj/clothing/head/armor.dmi differ diff --git a/icons/obj/clothing/head/spacesuits.dmi b/icons/obj/clothing/head/spacesuits.dmi new file mode 100644 index 000000000000..5c2351c7489f Binary files /dev/null and b/icons/obj/clothing/head/spacesuits.dmi differ diff --git a/icons/obj/clothing/suits/hooded.dmi b/icons/obj/clothing/suits/hooded.dmi index 06d98acf2358..5b04aa13aaa7 100644 Binary files a/icons/obj/clothing/suits/hooded.dmi and b/icons/obj/clothing/suits/hooded.dmi differ diff --git a/icons/obj/clothing/suits/spacesuits.dmi b/icons/obj/clothing/suits/spacesuits.dmi index a8d7782b37e4..c86acdcbf3e5 100644 Binary files a/icons/obj/clothing/suits/spacesuits.dmi and b/icons/obj/clothing/suits/spacesuits.dmi differ diff --git a/icons/obj/clothing/under/medical.dmi b/icons/obj/clothing/under/medical.dmi index 8c3c6917319f..dce9b20106f3 100644 Binary files a/icons/obj/clothing/under/medical.dmi and b/icons/obj/clothing/under/medical.dmi differ diff --git a/icons/obj/dyespray.dmi b/icons/obj/dyespray.dmi index eb056036799a..1d1813f38c50 100644 Binary files a/icons/obj/dyespray.dmi and b/icons/obj/dyespray.dmi differ diff --git a/icons/obj/flora/snowflora.dmi b/icons/obj/flora/snowflora.dmi index 002fd90c9fcd..74a1f6dabaf0 100644 Binary files a/icons/obj/flora/snowflora.dmi and b/icons/obj/flora/snowflora.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 690ed5d86d2f..9068f301647f 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/item/knife.dmi b/icons/obj/item/knife.dmi new file mode 100644 index 000000000000..aebfb617ed34 Binary files /dev/null and b/icons/obj/item/knife.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index dff68c8d4482..f3b4d79436ef 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index a0bbca6bff9e..5818b7a55d81 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 40e1dfbabdd3..7c31b8ac45f9 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/machines/coffeemaker.dmi b/icons/obj/machines/coffeemaker.dmi deleted file mode 100644 index 246159f1c54f..000000000000 Binary files a/icons/obj/machines/coffeemaker.dmi and /dev/null differ diff --git a/icons/obj/machines/computer.dmi b/icons/obj/machines/computer.dmi index 908304d40b02..2e102cda95ad 100644 Binary files a/icons/obj/machines/computer.dmi and b/icons/obj/machines/computer.dmi differ diff --git a/icons/obj/machines/suit_storage.dmi b/icons/obj/machines/suit_storage.dmi index cf0edd2e8fdc..a40d04f500c6 100644 Binary files a/icons/obj/machines/suit_storage.dmi and b/icons/obj/machines/suit_storage.dmi differ diff --git a/icons/obj/nanotrasen_floor.dmi b/icons/obj/nanotrasen_floor.dmi new file mode 100644 index 000000000000..1e7dc7821a6f Binary files /dev/null and b/icons/obj/nanotrasen_floor.dmi differ diff --git a/icons/obj/nanotrasen_logos.dmi b/icons/obj/nanotrasen_logos.dmi new file mode 100644 index 000000000000..27d1bd6194fb Binary files /dev/null and b/icons/obj/nanotrasen_logos.dmi differ diff --git a/icons/obj/ores.dmi b/icons/obj/ores.dmi index f3451a8432dd..1e6c41a90c05 100644 Binary files a/icons/obj/ores.dmi and b/icons/obj/ores.dmi differ diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi index 0989e1834f70..80350d2bfaa3 100644 Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ diff --git a/icons/obj/structures/signs/sign.dmi b/icons/obj/structures/signs/sign.dmi index e5ff1a7cf19e..523953b599c7 100644 Binary files a/icons/obj/structures/signs/sign.dmi and b/icons/obj/structures/signs/sign.dmi differ diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi index 4fefb4a22bfc..a9f32f001798 100644 Binary files a/icons/obj/watercloset.dmi and b/icons/obj/watercloset.dmi differ diff --git a/icons/obj/world/melee.dmi b/icons/obj/world/melee.dmi new file mode 100644 index 000000000000..ff8e2114e827 Binary files /dev/null and b/icons/obj/world/melee.dmi differ diff --git a/icons/turf/decals.dmi b/icons/turf/decals.dmi index 9fb84aa888c2..a62024cc8e0e 100644 Binary files a/icons/turf/decals.dmi and b/icons/turf/decals.dmi differ diff --git a/icons/turf/walls/bananium_wall.dmi b/icons/turf/walls/bananium_wall.dmi deleted file mode 100644 index 48a58fe20619..000000000000 Binary files a/icons/turf/walls/bananium_wall.dmi and /dev/null differ diff --git a/shiptest.dme b/shiptest.dme index d89b0c12c2b1..b8df46bc4017 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -52,6 +52,7 @@ #include "code\__DEFINES\directional.dm" #include "code\__DEFINES\diseases.dm" #include "code\__DEFINES\DNA.dm" +#include "code\__DEFINES\do_afters.dm" #include "code\__DEFINES\dye_keys.dm" #include "code\__DEFINES\economy.dm" #include "code\__DEFINES\events.dm" @@ -136,11 +137,13 @@ #include "code\__DEFINES\statpanel.dm" #include "code\__DEFINES\status_effects.dm" #include "code\__DEFINES\stock_parts.dm" +#include "code\__DEFINES\storage.dm" #include "code\__DEFINES\subsystems.dm" #include "code\__DEFINES\tgs.config.dm" #include "code\__DEFINES\tgs.dm" #include "code\__DEFINES\tgui.dm" #include "code\__DEFINES\time.dm" +#include "code\__DEFINES\timed_action.dm" #include "code\__DEFINES\tools.dm" #include "code\__DEFINES\traits.dm" #include "code\__DEFINES\turfs.dm" @@ -281,6 +284,7 @@ #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_objects.dm" #include "code\_onclick\hud\screentip.dm" +#include "code\_onclick\hud\storage.dm" #include "code\_onclick\hud\swarmer.dm" #include "code\controllers\admin.dm" #include "code\controllers\controller.dm" @@ -375,6 +379,7 @@ #include "code\controllers\subsystem\processing\fastprocess.dm" #include "code\controllers\subsystem\processing\fluids.dm" #include "code\controllers\subsystem\processing\instruments.dm" +#include "code\controllers\subsystem\processing\movable_physics.dm" #include "code\controllers\subsystem\processing\nanites.dm" #include "code\controllers\subsystem\processing\networks.dm" #include "code\controllers\subsystem\processing\obj.dm" @@ -500,6 +505,7 @@ #include "code\datums\components\material_container.dm" #include "code\datums\components\mirv.dm" #include "code\datums\components\mood.dm" +#include "code\datums\components\movable_physics.dm" #include "code\datums\components\nanites.dm" #include "code\datums\components\ntnet_interface.dm" #include "code\datums\components\orbiter.dm" @@ -540,7 +546,12 @@ #include "code\datums\components\crafting\crafting.dm" #include "code\datums\components\crafting\guncrafting.dm" #include "code\datums\components\crafting\recipes.dm" -#include "code\datums\components\crafting\tailoring.dm" +#include "code\datums\components\crafting\recipes\clothing.dm" +#include "code\datums\components\crafting\recipes\drink.dm" +#include "code\datums\components\crafting\recipes\misc.dm" +#include "code\datums\components\crafting\recipes\robot.dm" +#include "code\datums\components\crafting\recipes\tribal.dm" +#include "code\datums\components\crafting\recipes\weapon.dm" #include "code\datums\components\fantasy\_fantasy.dm" #include "code\datums\components\fantasy\affix.dm" #include "code\datums\components\fantasy\prefixes.dm" @@ -551,6 +562,7 @@ #include "code\datums\components\plumbing\reaction_chamber.dm" #include "code\datums\components\plumbing\splitter.dm" #include "code\datums\components\storage\storage.dm" +#include "code\datums\components\storage\ui.dm" #include "code\datums\components\storage\concrete\_concrete.dm" #include "code\datums\components\storage\concrete\bag_of_holding.dm" #include "code\datums\components\storage\concrete\bluespace.dm" @@ -605,7 +617,6 @@ #include "code\datums\diseases\advance\symptoms\itching.dm" #include "code\datums\diseases\advance\symptoms\nanites.dm" #include "code\datums\diseases\advance\symptoms\narcolepsy.dm" -#include "code\datums\diseases\advance\symptoms\necropolis.dm" #include "code\datums\diseases\advance\symptoms\oxygen.dm" #include "code\datums\diseases\advance\symptoms\sensory.dm" #include "code\datums\diseases\advance\symptoms\shedding.dm" @@ -645,6 +656,7 @@ #include "code\datums\elements\update_icon_blocker.dm" #include "code\datums\elements\update_icon_updates_onmob.dm" #include "code\datums\elements\waddling.dm" +#include "code\datums\elements\world_icon.dm" #include "code\datums\elements\decals\_decals.dm" #include "code\datums\elements\decals\blood.dm" #include "code\datums\helper_datums\events.dm" @@ -1674,7 +1686,6 @@ #include "code\modules\antagonists\cult\rune_spawn_action.dm" #include "code\modules\antagonists\cult\runes.dm" #include "code\modules\antagonists\devil\devil.dm" -#include "code\modules\antagonists\devil\devil_helpers.dm" #include "code\modules\antagonists\devil\imp\imp.dm" #include "code\modules\antagonists\devil\sintouched\objectives.dm" #include "code\modules\antagonists\devil\sintouched\sintouched.dm" @@ -1813,6 +1824,7 @@ #include "code\modules\atmospherics\machinery\portable\scrubber.dm" #include "code\modules\autowiki\autowiki.dm" #include "code\modules\autowiki\pages\base.dm" +#include "code\modules\autowiki\pages\reactions.dm" #include "code\modules\autowiki\pages\reagents.dm" #include "code\modules\autowiki\pages\ships.dm" #include "code\modules\autowiki\pages\techweb.dm" @@ -1855,8 +1867,8 @@ #include "code\modules\buildmode\submodes\map_export.dm" #include "code\modules\buildmode\submodes\outfit.dm" #include "code\modules\buildmode\submodes\proccall.dm" -#include "code\modules\buildmode\submodes\throwing.dm" #include "code\modules\buildmode\submodes\relocate_to.dm" +#include "code\modules\buildmode\submodes\throwing.dm" #include "code\modules\buildmode\submodes\tweakcomps.dm" #include "code\modules\buildmode\submodes\variable_edit.dm" #include "code\modules\cargo\bounty.dm" @@ -1876,6 +1888,8 @@ #include "code\modules\cargo\blackmarket\blackmarket_uplink.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\clothing.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\consumables.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\emergency.dm" +#include "code\modules\cargo\blackmarket\blackmarket_items\explosives.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\misc.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\tools.dm" #include "code\modules\cargo\blackmarket\blackmarket_items\weapons.dm" @@ -1949,6 +1963,8 @@ #include "code\modules\clothing\ears\_ears.dm" #include "code\modules\clothing\factions\clip.dm" #include "code\modules\clothing\factions\gezena.dm" +#include "code\modules\clothing\factions\nanotrasen.dm" +#include "code\modules\clothing\factions\ngr.dm" #include "code\modules\clothing\factions\suns.dm" #include "code\modules\clothing\glasses\_glasses.dm" #include "code\modules\clothing\glasses\engine_goggles.dm" @@ -2168,7 +2184,6 @@ #include "code\modules\food_and_drinks\food\snacks\dough.dm" #include "code\modules\food_and_drinks\food\snacks\meat.dm" #include "code\modules\food_and_drinks\kitchen_machinery\big_mortar.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\coffeemaker.dm" #include "code\modules\food_and_drinks\kitchen_machinery\cutting_board.dm" #include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" #include "code\modules\food_and_drinks\kitchen_machinery\food_cart.dm" @@ -2406,6 +2421,7 @@ #include "code\modules\mining\equipment\regenerative_core.dm" #include "code\modules\mining\equipment\resonator.dm" #include "code\modules\mining\equipment\survival_pod.dm" +#include "code\modules\mining\equipment\trophies.dm" #include "code\modules\mining\equipment\wormhole_jaunter.dm" #include "code\modules\mining\laborcamp\laborstacker.dm" #include "code\modules\mining\lavaland\ash_flora.dm" @@ -2693,13 +2709,10 @@ #include "code\modules\mob\living\simple_animal\hostile\bear.dm" #include "code\modules\mob\living\simple_animal\hostile\bees.dm" #include "code\modules\mob\living\simple_animal\hostile\carp.dm" -#include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm" #include "code\modules\mob\living\simple_animal\hostile\clown.dm" #include "code\modules\mob\living\simple_animal\hostile\cockroach.dm" -#include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm" #include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm" #include "code\modules\mob\living\simple_animal\hostile\faithless.dm" -#include "code\modules\mob\living\simple_animal\hostile\frontiersman.dm" #include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" #include "code\modules\mob\living\simple_animal\hostile\goose.dm" #include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" @@ -2710,26 +2723,26 @@ #include "code\modules\mob\living\simple_animal\hostile\mecha_pilot.dm" #include "code\modules\mob\living\simple_animal\hostile\mimic.dm" #include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" -#include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm" #include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" -#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" #include "code\modules\mob\living\simple_animal\hostile\regalrat.dm" -#include "code\modules\mob\living\simple_animal\hostile\skeleton.dm" #include "code\modules\mob\living\simple_animal\hostile\space_dragon.dm" #include "code\modules\mob\living\simple_animal\hostile\statue.dm" -#include "code\modules\mob\living\simple_animal\hostile\stickman.dm" -#include "code\modules\mob\living\simple_animal\hostile\survivors.dm" -#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm" #include "code\modules\mob\living\simple_animal\hostile\tree.dm" #include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" -#include "code\modules\mob\living\simple_animal\hostile\wizard.dm" #include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm" -#include "code\modules\mob\living\simple_animal\hostile\zombie.dm" #include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm" -#include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm" #include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" #include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" #include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" +#include "code\modules\mob\living\simple_animal\hostile\human\cat_butcher.dm" +#include "code\modules\mob\living\simple_animal\hostile\human\frontiersman.dm" +#include "code\modules\mob\living\simple_animal\hostile\human\human.dm" +#include "code\modules\mob\living\simple_animal\hostile\human\nanotrasen.dm" +#include "code\modules\mob\living\simple_animal\hostile\human\pirate.dm" +#include "code\modules\mob\living\simple_animal\hostile\human\skeleton.dm" +#include "code\modules\mob\living\simple_animal\hostile\human\survivors.dm" +#include "code\modules\mob\living\simple_animal\hostile\human\syndicate.dm" +#include "code\modules\mob\living\simple_animal\hostile\human\zombie.dm" #include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" #include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" #include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" @@ -2753,6 +2766,7 @@ #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goldgrub.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord_outfits.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice demon.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice whelp.dm" @@ -2993,6 +3007,7 @@ #include "code\modules\projectiles\ammunition\special\syringe.dm" #include "code\modules\projectiles\boxes_magazines\_box_magazine.dm" #include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm" +#include "code\modules\projectiles\boxes_magazines\generic_ammo_box.dm" #include "code\modules\projectiles\boxes_magazines\external\gauss.dm" #include "code\modules\projectiles\boxes_magazines\external\grenade.dm" #include "code\modules\projectiles\boxes_magazines\external\lmg.dm" @@ -3245,6 +3260,7 @@ #include "code\modules\ruins\icemoonruin_code\library.dm" #include "code\modules\ruins\icemoonruin_code\wrath.dm" #include "code\modules\ruins\lavalandruin_code\biodome_clown_planet.dm" +#include "code\modules\ruins\lavalandruin_code\biodome_winter.dm" #include "code\modules\ruins\lavalandruin_code\codelab.dm" #include "code\modules\ruins\lavalandruin_code\elephantgraveyard.dm" #include "code\modules\ruins\lavalandruin_code\pizzaparty.dm" @@ -3262,7 +3278,6 @@ #include "code\modules\ruins\spaceruin_code\crashedclownship.dm" #include "code\modules\ruins\spaceruin_code\crashedship.dm" #include "code\modules\ruins\spaceruin_code\deepstorage.dm" -#include "code\modules\ruins\spaceruin_code\DJstation.dm" #include "code\modules\ruins\spaceruin_code\forgottenship.dm" #include "code\modules\ruins\spaceruin_code\hellfactory.dm" #include "code\modules\ruins\spaceruin_code\hilbertshotel.dm" diff --git a/sound/machines/coffeemaker_brew.ogg b/sound/machines/coffeemaker_brew.ogg deleted file mode 100644 index a8e25c09867a..000000000000 Binary files a/sound/machines/coffeemaker_brew.ogg and /dev/null differ diff --git a/sound/voice/ApproachingTG.ogg b/sound/voice/ApproachingTG.ogg deleted file mode 100644 index 3f8bc1c48801..000000000000 Binary files a/sound/voice/ApproachingTG.ogg and /dev/null differ diff --git a/tgui/yarn.lock b/tgui/yarn.lock index c71f2a55d264..17de1b885e24 100644 --- a/tgui/yarn.lock +++ b/tgui/yarn.lock @@ -6586,6 +6586,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + "minizlib@npm:^2.0.0, minizlib@npm:^2.1.1": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -8474,16 +8481,16 @@ resolve@^2.0.0-next.3: linkType: hard "tar@npm:^6.0.2, tar@npm:^6.1.0": - version: 6.1.11 - resolution: "tar@npm:6.1.11" + version: 6.2.1 + resolution: "tar@npm:6.2.1" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 - minipass: ^3.0.0 + minipass: ^5.0.0 minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: a04c07bb9e2d8f46776517d4618f2406fb977a74d914ad98b264fc3db0fe8224da5bec11e5f8902c5b9bcb8ace22d95fbe3c7b36b8593b7dfc8391a25898f32f + checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c languageName: node linkType: hard diff --git a/tools/UpdatePaths/Scripts/2972_human_hostile.txt b/tools/UpdatePaths/Scripts/2972_human_hostile.txt new file mode 100644 index 000000000000..297ba2df7bb9 --- /dev/null +++ b/tools/UpdatePaths/Scripts/2972_human_hostile.txt @@ -0,0 +1,7 @@ +/mob/living/simple_animal/hostile/pirate/@SUBTYPES: /mob/living/simple_animal/hostile/human/pirate/@SUBTYPES {@OLD} +/mob/living/simple_animal/hostile/frontier/@SUBTYPES: /mob/living/simple_animal/hostile/human/frontier/@SUBTYPES {@OLD} +/mob/living/simple_animal/hostile/nanotrasen/@SUBTYPES: /mob/living/simple_animal/hostile/human/nanotrasen/@SUBTYPES {@OLD} +/mob/living/simple_animal/hostile/skeleton/@SUBTYPES: /mob/living/simple_animal/hostile/human/skeleton/@SUBTYPES {@OLD} +/mob/living/simple_animal/hostile/asteroid/whitesands/@SUBTYPES: /mob/living/simple_animal/hostile/human/hermit/@SUBTYPES {@OLD} +/mob/living/simple_animal/hostile/cat_butcherer/@SUBTYPES: /mob/living/simple_animal/hostile/human/cat_butcherer/@SUBTYPES {@OLD} +/mob/living/simple_animal/hostile/syndicate/@SUBTYPES:: /mob/living/simple_animal/hostile/human/syndicate/@SUBTYPES {@OLD}